现在两次在git中,我的意思是从master那里分支,但是意外地从我当前的分支分支。这意味着我来自第二个分支的pull请求包括第一个分支中尚未合并的所有提交。
有没有办法可以在从非主分支分支之前仔细检查确认?
答案 0 :(得分:7)
为什么不向git checkout -b
提供第二个参数:
$ git checkout -b newbranch master
第二个参数是从哪里分支。
答案 1 :(得分:2)
假设你使用的是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
我不会提供正确的信息。
答案 2 :(得分:1)
将$(__git_ps1)
添加到命令提示符(shell rc文件中的PS1
变量)中,您将始终看到您当前的分支。
答案 3 :(得分:0)
如果你跑
git branch
你得到这样的东西:
branch1
branch2
* master
星星标记出你当前所在的分支。
答案 4 :(得分:0)
您可以编写bash脚本,而不是使用git。
在创建新分支时,它将检查您是否在主人。 如果不是,它将停止(或要求你继续),如果是,它将执行真正的git
例如,您可以将其命名为gitcheckout