两次在git中,我打算从master分支,但是不小心从我当前的分支中分支出来。这意味着我的第二个分支的请求包括第一个分支中的所有提交,这些提交还没有被合并。避免从git中的分支跳转
有没有一种方法可以在从非主分支分支之前再次检查确认?
两次在git中,我打算从master分支,但是不小心从我当前的分支中分支出来。这意味着我的第二个分支的请求包括第一个分支中的所有提交,这些提交还没有被合并。避免从git中的分支跳转
有没有一种方法可以在从非主分支分支之前再次检查确认?
为什么不提供第二个参数来git checkout -b
:
$ git checkout -b newbranch master
第二个参数是从哪里分支。
如果您运行
git branch
你得到的东西是这样的:
branch1
branch2
* master
和分支在您当前所在的星痕。
是的,我知道 - 事情是我只是在不考虑它的情况下运行'git checkout -b'。我想要一个自动警告在从分支退房时闪烁。 – 2012-01-08 09:46:32
啊,对不起。 – BananaNeil 2012-01-08 12:33:29
你可以编写bash脚本,而不是git。
在创建新分支时,它会检查你是否在主人。 如果没有,它就会停止(或请您继续),如果是,它会执行真正的Git
例如,你可以把它称呼gitcheckout
假设你正在使用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
不会提供正确的信息。
不错。当然,你也可以修改它,这样它只会在当前分支!= master时提示。 – Avi 2012-01-08 12:36:28
将$(__git_ps1)
添加到您的命令提示符(您的shell rc文件中的PS1
变量),并且您将始终看到您当前的分支是什么。
+1。直截了当,利用现有机制,切中要害。 – fge 2012-01-08 17:22:19