Git 學習歷程(二)Git分支操作

Git 學習歷程(二)Git分支操作

給命令設置別名

Git 可以對這些命令設置別名,如果原命令中有選項,需要加引號。

git config --global alias.[別名] [原命令]

例如:

git config --global alias.st status
git config --global alias.br 'branch -avv'
git config --global alias.com 'commit -m'

如果自己設置的命令,哪天忘記了,可以使用git config -l查詢,按q退出

Git分支操作

遠程分支

git fetch將遠程倉庫的分支信息下載到本地。下載好之後,可以使用git brach -avv查看。

值得注意的是,這個命令只是更新分支信息,並不會拉取最新的數據

例如:

# mrcangye @ mrcangye in ~/Documents/Github/MyNoteBook on git:master x [12:08:15] 
$ git branch -avv
* master                05f8502 [origin/master] add somethings
  remotes/origin/HEAD   -> origin/master
  remotes/origin/master 05f8502 add somethings

git pull拉取遠程倉庫的數據到本地,這個命令會拉取最新的數據到本地

# mrcangye @ mrcangye in ~/Documents/MyNoteBook on git:master x [12:20:46] 
$ git pull
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
展開對象中: 100% (3/3), 684 字節 | 228.00 KiB/s, 完成.
來自 https://github.com/mrcangye/MyNoteBook
   05f8502..4631b57  master     -> origin/master
更新 05f8502..4631b57
Fast-forward
 README.md | 2 ++
 1 file changed, 2 insertions(+)
 create mode 100644 README.md

git branch [分支名]可以創建新的分支

git checkout [分支名]切換到某個分支

比如我們創建一個testbranch分支,並轉到這個分支上

# mrcangye @ mrcangye in ~/Documents/Github/MyNoteBook on git:master x [12:23:56] 
$ git branch testbranch

# mrcangye @ mrcangye in ~/Documents/Github/MyNoteBook on git:master x [12:25:55] 
$ git checkout testbranch
D	"Linux/Git \345\255\246\344\271\240\345\216\206\347\250\213(\344\272\214)Git\347\256\200\345\215\225\344\275\277\347\224\250.md"
切換到分支 'testbranch'

git push [主機名] [本地分支名]:[遠程分支名] 將本地分支推送到遠程倉庫的分支中,通常冒號前後的分支名是相同的,如果是相同的,可以省略 :[遠程分支名]如果遠程分支不存在,會自動創建。

如果後面還是使用該分支,可以使用 git branch -u [主機名/遠程分支名] [本地分支名] 將本地分支與遠程分支關聯。這樣以後push就到該分支去了。取消的話 git branch -u [主機名/遠程分支名] [本地分支名]

如果想在推送時就跟蹤遠程分支:git push -u [主機名/遠程分支名] [本地分支名]

刪除遠程的分支:git push [主機名] :[遠程分支名]git push [主機名] --delete [遠程分支名]

刪除多個遠程分支:git push [主機名] :[遠程分支名] :[遠程分支名] :[遠程分支名]看代碼的格式就知道,所謂的刪除分支其實是將空分支推送到遠程分支,使得分支被刪除

本地分支刪除與改名

本地分支的刪除git branch -D [分支名]

本地分支的改名git branch -m [原分支名] [新分支名]

注意刪除的時候,不可以刪除自己現在在的分支。比如自己是testbranch分支就不可以刪除master分支,自殘是不允許的:

$ git branch -D testbranch 
error: 無法刪除檢出於 '/home/mrcangye/Documents/Github/MyNoteBook' 的分支 'testbranch'
$ git checkout master    
D	"Linux/Git \345\255\246\344\271\240\345\216\206\347\250\213(\344\272\214)Git\347\256\200\345\215\225\344\275\277\347\224\250.md"
切換到分支 'master'
您的分支與上游分支 'origin/master' 一致。

# mrcangye @ mrcangye in ~/Documents/Github/MyNoteBook on git:master x [12:27:49] 
$ git branch -D testbranch
已刪除分支 testbranch(曾爲 4631b57)。

標籤管理

git tag [標籤名] -m [備註信息] [提交版本號] 創建標籤。其中 -m [備註信息] 可以省略不寫,但建議不要省略。[提交版本號] 如果是給當前分支最新的提交創建標籤,則可以省略。

git tag顯示倉庫中的全部標籤列表

git show [標籤名]顯示標籤詳情

git tag -d [標籤名]刪除本地標籤

git push origin [標籤名]推送標籤到遠程倉庫

git push origin :refs/tags/[標籤名]刪除遠程倉庫裏的標籤

簽出版本

git checkout [標籤名] 切換到之前的某個提交版本

然後執行 git checkout -b [新的分支名] 將此提交版本固定到一個新分支上並切換到此分支

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章