在我苦苦挣扎于SVN时,有人告诉我应该尝试GIT,因为分支对我想要实现的工作流非常理想。我一直在摸索中,并且现在认为我已经掌握了GIT的基础知识。
我们基本上有一个中央框架,一些客户使用它,我想拥有一个主干/主分支,并像往常一样使用分支进行开发/尝试新功能,但我还想为每个客户创建一个分支,以便我可以针对代码进行特定于客户的更改。这些分支将始终是分支,永远不会合并回主干/主分支。
我尝试实现的主要目标是,我可以轻松地将所有来自主干/主分支的更改合并到各个客户分支中,但我对是否需要合并或变基感到困惑。 所以我的问题是... 我应该总是使用变基吗?如果是这样,为什么?(因为我想在每个分支中保留单独的提交记录吗?) 编辑,所以我创建了一个存储库,在该存储库中我有一个名为file.php的文件,其中包含
我们基本上有一个中央框架,一些客户使用它,我想拥有一个主干/主分支,并像往常一样使用分支进行开发/尝试新功能,但我还想为每个客户创建一个分支,以便我可以针对代码进行特定于客户的更改。这些分支将始终是分支,永远不会合并回主干/主分支。
我尝试实现的主要目标是,我可以轻松地将所有来自主干/主分支的更改合并到各个客户分支中,但我对是否需要合并或变基感到困惑。 所以我的问题是... 我应该总是使用变基吗?如果是这样,为什么?(因为我想在每个分支中保留单独的提交记录吗?) 编辑,所以我创建了一个存储库,在该存储库中我有一个名为file.php的文件,其中包含
$x = 1
- 我将其提交到主干
- 我创建了一个名为client1的分支
- 在client1中,我添加了一个新文件并提交
- 在client1中,我更改了file.php,使
$x = 2
- 在主干中,我更改了file.php,但这是一行新内容,$x仍然是
$x=1
- 在client1中,我合并了master并在
$x
上得到冲突。
是因为我在与$x
相邻的位置添加了新行,导致了冲突吗?
$x
行还是其附近的行?我没有看到Git覆盖任何内容,相反它告诉你两个分支都触及了文件的同一区域,并且不知道你想要哪一个分支。由你决定哪个更改属于客户端分支。 - cdhowie$x
没有改变,我只是在分支中进行了更改,然后合并了,然后最初的预分支主提交与更近期的分支提交发生了冲突。 - Horsegit log --pretty=oneline --abbrev-commit --graph --decorate --all
的输出,确保提交图是你所期望的。 - cdhowie