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 [新的分支名]
將此提交版本固定到一個新分支上並切換到此分支