9

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

在此处输入图像描述

在此处输入图像描述

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

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

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

4

2 回答 2

15

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

每个分支不一定都有自己的线路。如果您的分支Sprint_15有它的基础,master并且Sprint_15是任意数量的提交,master那么它们将共享同一行。一旦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"

现在您将看到每个分支都有自己的行,就像您期望的那样,如下所示:在此处输入图像描述

于 2017-06-05T06:05:00.253 回答
0

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

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

于 2017-06-05T05:42:22.877 回答