1. 程式人生 > 其它 >Git的一些不常用但必須知道的操作

Git的一些不常用但必須知道的操作

1、本地分支怎麼掛接遠端分支?

git push --set-upstream origin 分支名稱
執行此命令後,當前你所在的分支將會掛接上origin源中【分支名稱】這個遠端分支
git branch -vv # 可以通過此命令檢視本地分支與遠端分支的掛接關係

2、在已經修改程式碼的分支上,如果想基於修改前拉取新分支,怎麼做?

將修改用git stash暫存,然後用git branch建立新分支,並用git push提交新分支
擴充套件:如果想基於已經修改的程式碼建立新分支,必須先提交工作區的程式碼,然後再基於當前分支建立新分支

3、怎麼給當前分支重新命名?

$ git branch -m branch_old branch_new
$ git push origin branch_old
$ git push --set-upstream origin branch_new

4、.gitignore規則不生效

.gitignore只能忽略那些原來沒有被track的檔案,如果某些檔案已經被納入了版本管理中,則修改.gitignore是無效的。解決方法就是先把本地快取刪除(改變成未track狀態),然後再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'

5、怎麼能做到將A分支的修改帶到B分支,且A分支不保留這些修改

需求:比如我在A分支做了一些修改,現在由於某種原因(如A分支已經合併到master)不能把A分支上修改的東西保留下來但是需要把A分支上修改的東西繼續在新分支繼續修改。那麼現在我們可以有兩種簡單的做法完成這一需求。
第一種方法
我們不需要在A分支做commit,只需要在A分支新建B分支,然後切換過去。這個時候你會發現修改的東西在A,B分支都有。這個時候在B分支commit,那麼這些修改保留在B分支上,再切換到A分支上會發現修改都沒有保留下來。
第二種方法
使用git stash 將A分支暫存起來,然後在某一個分支(如master分支)新建一個分支B,然後在B分支上使用git stash pop 將修改彈出到B分支上,然後這些修改就在B分支上了。然後我們又可以愉快的玩耍了~

6、怎麼強制拉取程式碼與強制提交程式碼?

強制拉取:
git fetch --all
git reset --hard origin/master
git pull
強制提交:
git push ... --force-with-lease
做強制拉取與提交前,三思而後行。