2011-09-28 49 views
30

由於在我的項目中使用了子模塊,我經常在「(不分支)」上找到自己。正如我還將代碼添加到我在那裏承諾的子模塊中。當我然後想要推動這些子模塊時,我需要成爲一個分支。因此,我的問題:Git:將分支設置爲當前參考

是否有混帳(命令行)的方式/快捷方式到本地分支設置爲當前提交/ HEAD無

git checkout the_branch 
git reset --hard <previous commit-ish> 

的彎路更確切地說,我的真正的問題與上述「繞道」是我暫時離開原來的頭與結帳命令。這可以通過git branch -f命令來避免(感謝CharlesB)。

回答

39

簽出與-B分支:這將重置分支到HEAD,這是當前裁判。

git checkout -B <branch> 

docs

如果-B給出,如果不存在則創建; 否則,它被重置。這是

$ git branch -f <branch> [<start point>] 
$ git checkout <branch> 

事務相當於也就是說,分支不復位/創建除非「混帳 結賬」是成功的。

+3

我現在意識到「branch -f」命令就是我正在尋找的東西,因爲我真正的問題是我不想「離開」我目前正在使用的提交。謝謝。 –

+1

官方文檔鏈接:https://git-scm.com/docs/git-checkout#git-checkout-emgitcheckoutem-b-Bltnewbranchgtltstartpointgt –

16
git checkout -B the_branch HEAD 

這將籤the_branch在提交HEAD,即使the_branch指出別的地方了。它是在最近的幾個git發行版中添加的,所以你可能沒有它。替代路線將是git branch -D the_branch && git checkout -b the_branch

+0

我使用的是git 1.7.0.4版,並且checkout -B尚不存在。但很高興看到它將在未來。 –