簡體   English   中英

避免在git中從分支分支

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM