避免在git中从分支分支

时间:2012-01-08 09:40:20

标签: git

现在两次在git中,我的意思是从master那里分支,但是意外地从我当前的分支分支。这意味着我来自第二个分支的pull请求包括第一个分支中尚未合并的所有提交。

有没有办法可以在从非主分支分支之前仔细检查确认?

5 个答案:

答案 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