【问题标题】:Git branch is still on same line as masterGit 分支仍与 master 在同一行
【发布时间】:2017-11-05 20:00:10
【问题描述】:

我在 git 树中发生了一些意想不到的事情。我已经从 master 创建了一个分支,但是当我在新分支上执行提交时,看起来好像这些都发生在与 master 相同的代码行中......

如您所见,最左侧是 master 的代码行(深蓝色),在顶部右侧我们可以看到 Sprint_15,它是从 master 获取的一个分支,似乎在同一行有提交。 ..我不确定为什么会这样。我希望看到代码分流成新行,因为功能正在合并到 Sprint_15 而不是主...

我的想法是,通过将 Sprint_14 和 Sprint_15 合并在一起,这对历史产生了一些奇怪的影响,但我不知道为什么。

我对 git 还很陌生,所以它的一些基础仍然让我感到困惑。

【问题讨论】:

    标签: git branch git-flow feature-branch branching-strategy


    【解决方案1】:

    看来你对 git 的工作方式有点误会(这很正常,因为你说你是 git 新手)

    每个分支不一定都有自己的行。如果您的分支Sprint_15 的基础为masterSprint_15master 之前的任意数量的提交,那么它们将共享同一行。只要master 得到一个新的提交,我想你就会看到你所期望的。

    你可以像这样在一个单独的 git repo 中测试它。

    $ mkdir testing && cd testing
    $ git init  # should put you on master branch by default
    $ touch testFile.txt
    $ git add -A
    $ git commit -m "initial commit"
    $ git branch newBranch
    $ git checkout newBranch # switch from master to newBranch
    
    ### modify the testFile.txt in some way and then...
    $ git add -A
    $ git commit -m "first commit on newBranch"
    

    现在,如果您使用相同的工具查看您的 repo,您​​应该只会看到一行,如下所示:

    现在回到主分支并再次提交:

    $ git checkout master
    ### make another change to testFile.txt
    $ git add -A
    $ git commit -m "second commit on master"
    

    现在您将看到每个分支都有自己的行,就像您期望的那样:

    【讨论】:

    • 这似乎是正确的答案,感谢您的解释!
    • 我很好奇,有什么方法可以强制 Git(或 GUI 工具)将新分支(而不是主分支)显示为直线?因为有时我想看到整棵树,但保留一个特定的分支作为我的“兴趣线”,其他所有东西都应该围绕它分开。
    • @JustAMartin 我认为这取决于您使用的 GUI 工具。在 SourceTree 中,您可以选择 Current Branch,而不是显示 All Branches。 GitKraken 有类似的东西,他们称之为Soloing 一个分支。也许这将接近您正在寻找的内容。
    【解决方案2】:

    这是一个推测,但我建议您当前的功能分支似乎与master 在同一行的原因是因为当前该分支直接领先于master 一些提交。要对此进行测试,请尝试拉动最新的 master 分支。如果这会更改您的配置,使Sprint_15 显示为单独的行,那么我的预感是正确的。

    无论如何,如果您有疑问,可以随时直接从 Git bash 中检查这些内容。

    【讨论】:

      猜你喜欢
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      • 2012-05-22
      相关资源
      最近更新 更多