Git add回退 與 切換分支提交 與reset commitID 與 cherry-pick重複提交 與 fork代碼

一、add的回退操作

當我們有時候運行 add . 之後,發現自己的分支不對,需要進行撤銷操作,這時候使用git reset HEAD,即可以把暫存區的修改取消掉,這時看你的代碼,依然是修改後的狀態,等待你重新提交。

 

二、利用緩存區切換分支提交

上一篇我們說了Git提交代碼的流程,但是有時候我們發現我們想把代碼提交到另外一個遠端的分支上,你在A 分支做的修改,你想把修改提交到B分支上,這時候不能直接切換分支,需要將你做的修改存儲起來,切換分支後提取出來,在提交合並:

1、git stash   --將本地代碼暫存到棧中  (git stash list --查看棧中的內容)

2、切換分支 (git checkout 分支名)

3、git stash pop --恢復棧中的代碼到本地

4、然後在新分支進行提交合並

5、當然提交合並完成後需要清空棧中的緩存 (git stash drop --清空棧)

 

-----(查看分支  git branch 與 git branch -a )

 

三、使代碼回到任意一個commit ID

git reset commitID  (可以查看歷史的提交找到提交ID,有些文件名的變動與文件夾的變動無法變動需要手動刪除)

 

 

 

四、我們剛提交了代碼,但是發現這些代碼需要提交到另一個分支上面

可以用git cherry-pick commitID 來操作

1、立即使用git log命令查看剛剛提交的commitID

2、然後切換到想再次提交的分支上面,運行git cherry-pick命令來提交到新分支上,再次之前可以更新一下保證分支最新代碼

3、這種操作和stash pop有異曲同工之處,stash pop是未提交時候使用,然而這種是commit之後來操。(git stash緩存有時間限制)

以下是我們提交代碼的流程圖:

 

五、fork代碼,有時候我們一套代碼要給兩個不同的部門開發,兩個部門之間的代碼是兩套獨立的git,但是代碼是一樣的

有時候我們在A部門開發的代碼,需要同步到B部門,則需要將A的代碼fork到B中,一下是具體操作

1、切換到B部門的git倉庫中(相應項目的相應分支上(例如item服務的release分支)),運行git remote -v 可以看到有一個遠端庫(這個origin遠端庫就是你每次將代碼push到的地方,現在我們需要一個遠端的庫來將遠端的代碼拉倒你本地,也就是拉倒你的B倉庫中)

2、運行git remote add upstream 【注意此處要寫上A項目的git倉庫地址】

3、此刻再運行git remote -v你可以看到多了一個遠端庫,不過這個庫看起來稍微有點不同,是以upstream開頭

4、然後運行git fetch upstream 將A的提交拉倒B中

5、然後運行git rebase upstream/release 將拉過來的提交與你本地的release代碼合併 

6、然後運行git push origin release 將合併後最新的release代碼push到遠端 (當然你需要有將代碼push到遠端release的權限)

發佈了26 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章