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

Git 分支仍然与 master 在同一行-LMLPHP

Git 分支仍然与 master 在同一行-LMLPHP

如您所见,最左侧是 master 的代码行(深蓝色),在顶部我们可以看到 Sprint_15,它是从 master 中提取的分支,似乎在同一行上有提交......我不知道为什么会这样。由于功能正在 merge 到 Sprint_15 中而不是 master 中,我希望看到代码 fork 到一个新行中...

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

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

最佳答案

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

每个分支不一定有自己的线路。如果您的分支 Sprint_15 的基础是 master 并且 Sprint_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"

现在,如果您使用相同的工具查看您的存储库,您应该只会看到一行,如下所示:
Git 分支仍然与 master 在同一行-LMLPHP

现在回到 master 分支并再次提交:
$ git checkout master
### make another change to testFile.txt
$ git add -A
$ git commit -m "second commit on master"

现在您将看到每个分支都有自己的行,就像您期望的那样,如下所示:Git 分支仍然与 master 在同一行-LMLPHP

关于Git 分支仍然与 master 在同一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44362275/

10-15 14:05