2010-01-18 50 views
20

我目前正在開發的功能比預期的要大,所以最好創建一個分支來處理它。所以我需要從當前工作目錄創建一個新的分支,並將主分支重置爲當前的HEAD,以便可以完成對生產環境的一些修復。從當前工作樹創建分支並重置爲HEAD

不知何故,這聽起來像一個簡單的任務,但我無法弄清楚。可能是由於我缺乏睡眠。

回答

20

所以,創建工作的分支:

git checkout -b working_branch 

提交或藏匿更改

git add <files> 
git commit -m "message" 

OR

git stash 

回去掌握

git checkout master 
git reset HEAD 
+2

在checkout後立即執行'git reset HEAD'沒有意義。索引中不會有任何更改,檢查分支會更新檢出分支的索引。 – 2010-01-18 23:19:31

+0

這有點矯枉過正,假設你在新分支中提交,工作樹應該是乾淨的。 – 2010-01-19 03:08:03

+0

'git checkout -b working_branch'如果您有未提交/未變更的更改,這將失敗。 – user1712447 2018-01-07 19:25:39

13

如果你還沒有提交,那麼你不需要移動master,它已經在當前的HEAD。你可以用checkout -b結賬一個新的分支,它不需要你的工作樹是乾淨的。

E.g.

git checkout -b newtopic 

你現在已經在newtopic可以在這裏提交你的工作樹的變化。 master不需要移動。