我在git树中发生了意想不到的事情。我已经创建了一个master的分支,但是当我在新分支上执行提交时,看起来好像这些代码行发生在与master相同的代码行中...
正如你所看到的,在左边是master的代码行(深蓝色),在顶部我们可以看到Sprint_15,它是从master获取的分支,似乎在同一行上提交。 ..我不确定为什么会这样。我希望看到代码分成新的一行,因为功能被合并到Sprint_15而不是主...
我的想法是,通过将Sprint_14和Sprint_15合并在一起,这对历史做了一些时髦的事情,但我不确定为什么。
我对git仍然相当新,所以它的一些基础仍然让我困惑。
答案 0 :(得分:6)
似乎你对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"
现在,如果您使用相同的工具查看您的仓库,您应该只看到一行,如下所示:
现在回到主分支并再次提交:
$ git checkout master
### make another change to testFile.txt
$ git add -A
$ git commit -m "second commit on master"
答案 1 :(得分:0)
这是一个推测,但我建议您当前的功能分支与master
位于同一行的原因是因为当前该分支直接位于master
之前的一些提交。要对此进行测试,请尝试对最新的master
分支进行拉取。如果这改变了您的配置,Sprint_15
显示为一个单独的行,那么我的预感是正确的。
在任何情况下,如果您有疑问,可以直接从Git bash查看这些内容。