git常用命令備忘

一.基礎操作

0.基本概念

git持有三棵樹

  • 工作目錄持有實體文件
  • 暫存區(qū),緩沖改動
  • Head 指向最后一次提交結果

1.初始化本地項目

git init

2.檢出項目

git clone <server|path>

3.添加和提交

git add <單文件>
git add * 
git commit -m ""  # 添加注釋并提交到HEAD

4.本地倉庫與遠端建立|刪除聯(lián)系

git remote add origin <遠端倉庫地址>
git remote rm origin

5.推送提交的改動到遠程服務器

git push origin <branch>

6.分支檢出|刪除

  • 檢出
git checkout -b feature/test # 檢出新分支并跳轉
git checkout <切換分支>
  • 刪除
git branch -d <分支> #需要切換到其他分支
git push origin --delete <遠程分支名稱>

7.拉去遠程代碼變更

git pull

8.合并分支

git merge <branch>

9.查看分支差異

git diff <source_branch> <target_branch>

10.創(chuàng)建標簽

git tag <1.0.0|tag> <commit id>

11.查看提交歷史

git log
git log --author=bob # 指定提交人
git log --pretty=oneline # 沒個提交只占一行輸出
git log --graph --oneline --decorate --all 
git log --name-status # 改變的文件
git log --help # help doc

12.后悔藥

  • 使用Head區(qū)的代碼,替換掉本地文件的改動
git checkout -- <filename>
  • 將遠程的代碼拉取到本地,確認后手動合并
git fetch <origin>
  • 放棄本地所有提交
git reset --hard origin/master
  • 撤回commit修改,但是代碼不回滾
git reset --soft HEAD^ # HEAD^,HEAD~1 上次 , HEAD~2 兩次
  • 回滾版本,代碼回滾
git reset --hard HEAD^ #回退到上個版本
git reset --hard HEAD~3 #回退到前3次提交之前,以此類推,回退到n次提交之前
git reset --hard <commit_id> # 退到/進到 指定commit的sha碼

git push origin HEAD --force # 由于本地HEAD版本低于master版本提交需要強制才能成功

13.ignore文件
在根目錄下添加.gitignore文件

# 忽略*.o和*.a文件
 *.[oa]

# 忽略*.b和*.B文件,my.b除外
*.[bB]
!my.b

# 忽略dbg文件和dbg目錄
dbg

# 只忽略dbg目錄,不忽略dbg文件
dbg/

# 只忽略dbg文件,不忽略dbg目錄
dbg
!dbg/

# 只忽略當前目錄下的dbg文件和目錄,子目錄的dbg不在忽略范圍內
/dbg

# 以'#'開始的行,被視為注釋.
 * ?:代表任意的一個字符
    * *:代表任意數(shù)目的字符
    * {!ab}:必須不是此類型
    * {ab,bb,cx}:代表ab,bb,cx中任一類型即可
    * [abc]:代表a,b,c中任一字符即可
    * [ ^abc]:代表必須不是a,b,c中任一字符

二.git flow 工作流

1.初始化

git flow init
git flow init -f

2.特性|功能 feature - 可以有多個

  • 增加新特性- 基于develop分支創(chuàng)建一個feature/xxx
git flow feature start MYFEATURE
  • 完成新特性

合并 MYFEATURE 分支到 'develop'
刪除這個新特性分支
切換回 'develop' 分支

git flow feature finish MYFEATURE
  • 發(fā)布新特性 -推送到遠端
git flow feature publish MYFEATURE
  • 拉取功能分支
git flow feature pull origin MYFEATURE
git flow feature track MYFEATURE # 跟蹤
  1. 發(fā)布版本基于develop生產(chǎn)環(huán)境的release - 只能有一個
  • 創(chuàng)建
git flow release start RELEASE [BASE]
  • 完成
    歸并 release 分支到 'master' 分支
    用 release 分支名打 Tag
    歸并 release 分支到 'develop'
    移除 release 分支
git flow release finish RELEASE [BASE]
  • 發(fā)布
git flow release publish RELEASE 
  • 簽出
git flow release track RELEASE
  1. 緊急修復-hotfix-唯一
  • 創(chuàng)建補丁
git flow hotfix start VERSION [BASENAME] # [BASENAME]為finish release時填寫的版本號
  • 完成
    當完成緊急修復分支,代碼歸并回 develop 和 master 分支。
    master 分支打上修正版本的 TAG。
git flow hotfix finish VERSION
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Git常用命令備忘 git config --global user.name "robbin" git conf...
    Chting閱讀 230評論 0 0
  • Git配置 git config --global user.name "robbin"git config --...
    FiveStrong閱讀 279評論 0 1
  • Git命令 git init 在命令行輸入git init,會在當前的目錄創(chuàng)建新倉庫。 git clone 在命令...
    暮雨默默閱讀 347評論 0 1
  • 漸變的面目拼圖要我怎么拼? 我是疲乏了還是投降了? 不是不允許自己墜落, 我沒有滴水不進的保護膜。 就是害怕變得面...
    悶熱當乘涼閱讀 4,495評論 0 13
  • 感覺自己有點神經(jīng)衰弱,總是覺得手機響了;屋外有人走過;每次媽媽不聲不響的進房間突然跟我說話,我都會被嚇得半死!一整...
    章魚的擁抱閱讀 2,404評論 4 5

友情鏈接更多精彩內容