[英]Avoid branching from a branch in git
現在兩次在git中,我打算從master分支,但是意外地從我當前的分支分支。 這意味着我來自第二個分支的pull請求包括第一個分支中的所有提交,這些提交尚未合並。
有沒有辦法可以在從非主分支分支之前仔細檢查確認?
為什么不向git checkout -b
提供第二個參數:
$ git checkout -b newbranch master
第二個參數是從哪里分支。
假設你使用的是Unix類型的shell,這里有一個你可以適應的簡單函數:
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 $@
}
只會在git checkout -b one_other_param
上觸發。
注意:如果您處於“獨立頭”狀態,這可能無法按預期工作。 git name-rev
不會提供我認為的正確信息。
將$(__git_ps1)
添加到命令提示符(shell rc文件中的PS1
變量),您將始終看到當前分支是什么。
如果你跑
git branch
你得到這樣的東西:
branch1
branch2
* master
並且星標記了您當前所在的分支。
您可以編寫bash腳本,您將使用而不是git。
在創建新分支時,它將檢查您是否在主人。 如果不是,它將停止(或要求您繼續),如果是,它將執行真正的git
例如,您可以將其命名為gitcheckout
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.