Git分支仍然与主

时间:2017-06-05 05:34:40

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

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

enter image description here

enter image description here

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

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

我对git仍然相当新,所以它的一些基础仍然让我困惑。

2 个答案:

答案 0 :(得分:6)

似乎你对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"

现在,如果您使用相同的工具查看您的仓库,您应该只看到一行,如下所示: same line

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

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

现在你会看到每个分支都有你想要的自己的行,如下所示:enter image description here

答案 1 :(得分:0)

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

在任何情况下,如果您有疑问,可以直接从Git bash查看这些内容。