Git工作流和重基与合并问题

Git工作流和重基与合并问题

我和另一个开发人员在一个项目上使用Git已经有几个月了。我有几年的经验SVN所以我想我给这段感情带来了很多包袱。

我听说Git很适合分支和合并,到目前为止,我还没有看到它。当然,分支是非常简单的,但是当我试图合并的时候,一切都会变糟。现在,我已经习惯了svn的这种情况,但在我看来,我只是把一个低标准版本控制系统换成了另一个版本控制系统。

我的搭档告诉我,我的问题来自于我想要合并威利-尼利,而且在很多情况下,我应该使用重基而不是合并。例如,以下是他所确定的工作流:

clone the remote repository
git checkout -b my_new_feature
..work and commit some stuff
git rebase master
..work and commit some stuff
git rebase master
..finish the feature
git checkout master
git merge my_new_feature

本质上,创建一个特性分支,总是从主分支重基到分支,然后从分支合并回主分支。需要注意的是,分支机构始终保持本地状态。

下面是我开始使用的工作流

clone remote repository
create my_new_feature branch on remote repository
git checkout -b --track my_new_feature origin/my_new_feature
..work, commit, push to origin/my_new_feature
git merge master (to get some changes that my partner added)
..work, commit, push to origin/my_new_feature
git merge master
..finish my_new_feature, push to origin/my_new_feature
git checkout master
git merge my_new_feature
delete remote branch
delete local branch

有两个基本的区别(我认为):我总是使用合并而不是重基,我将我的特性分支(和我的特性分支提交)推到远程存储库。

我对远程分支的推理是,我希望在工作时备份我的工作。我们的存储库会自动备份,如果出了问题就可以恢复。我的笔记本电脑不是,或者不那么彻底。因此,我不喜欢在我的笔记本上有没有镜像的代码。

我对合并而不是重基的推理是,合并似乎是标准的,而重基似乎是高级特性。我的直觉是,我试图做的不是一个先进的设置,所以重新基地应该是不必要的。我甚至阅读了关于Git的新的实用编程书,它们广泛地介绍了合并,很少提到重基。

总之,我在最近的一个分支上跟随着我的工作流程,当我试图把它合并回主人那里时,一切都变糟了。与那些本应无关紧要的事情发生了大量的冲突。这些冲突对我来说毫无意义。我花了一天的时间整理好所有的东西,最后终于强迫我去找遥控器,因为我的本地师父已经解决了所有的冲突,但是遥控器还是不高兴。

对于这样的事情,什么是“正确的”工作流?GIT应该使分支和合并变得非常容易,而我只是没有看到。


蝴蝶刀刀
浏览 442回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP