2012-01-08 58 views
1

兩次在git中,我打算從master分支,但是不小心從我當前的分支中分支出來。這意味着我的第二個分支的請求包括第一個分支中的所有提交,這些提交還沒有被合併。避免從git中的分支跳轉

有沒有一種方法可以在從非主分支分支之前再次檢查確認?

回答

7

爲什麼不提供第二個參數來git checkout -b

$ git checkout -b newbranch master 

第二個參數是從哪裏分支。

+0

+1。直截了當,利用現有機制,切中要害。 – fge 2012-01-08 17:22:19

0

如果您運行

git branch 

你得到的東西是這樣的:

branch1 
    branch2 
* master 

和分支在您當前所在的星痕。

+0

是的,我知道 - 事情是我只是在不考慮它的情況下運行'git checkout -b'。我想要一個自動警告在從分支退房時閃爍。 – 2012-01-08 09:46:32

+0

啊,對不起。 – BananaNeil 2012-01-08 12:33:29

0

你可以編寫bash腳本,而不是git。

在創建新分支時,它會檢查你是否在主人。 如果沒有,它就會停止(或請您繼續),如果是,它會執行真正的Git

例如,你可以把它稱呼gitcheckout

2

假設你正在使用Unix類型的外殼,這就是你能適應一個簡單的函數:

function git() { 
    if [ $# -eq 3 -a "$1" = "checkout" -a "$2" = "-b" ] ; then 
     curbranch=$(git name-rev --name-only HEAD) 
     if [ "$curbranch" != "master" ] ; then 
      echo "You're on branch $curbranch." 
      echo "Confirm new branch creation? [yn]" 
      read a 
      if [ "$a" != "y" ] ; then 
       echo Aborted. 
       return 1 
      fi 
     fi 
    fi 
    /usr/bin/git [email protected] 
} 

只會在git checkout -b one_other_param觸發。

注意:如果您處於「分離頭部」狀態,這可能無法按預期工作。我相信git name-rev不會提供正確的信息。

+0

不錯。當然,你也可以修改它,這樣它只會在當前分支!= master時提示。 – Avi 2012-01-08 12:36:28

1

$(__git_ps1)添加到您的命令提示符(您的shell rc文件中的PS1變量),並且您將始終看到您當前的分支是什麼。