将多个分支合并到Master中时,这些步骤是否正确?

时间:2014-04-12 16:24:39

标签: git merge

由于我对Git很新(多年使用SVN),我搞砸了git存储库。我首先开始创建一个分支的一个用户,然后我切换到另一个用户完成该过程并添加一些分支。由于分支的逻辑对我来说是全新的,我最终将我的4个任务分布在4个分支中。

经过一整天的研究,我找到了一种如何将所有这些放在一起并与主人合并的方法。这些是我的步骤:

git branch #to see what branches I have and where I am currently in. it showed * master

git checkout master
git pull origin master
git merge task1

收到错误:自动合并失败;修复冲突,然后提交结果。

git add *
git commit -m "merging task1"
git merge task1

获取信息:已经是最新的。

git merge task2

收到错误:自动合并失败;修复冲突,然后提交结果。

git add *
git commit -m "merging task2"
git merge task3

收到错误:自动合并失败;修复冲突,然后提交结果。

同样的步骤直到合并所有4个任务。最后我通过

推送了代码
git push origin master

得到消息:

Counting objects: 156, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (96/96), done.
Writing objects: 100% (109/109), 259.73 KiB | 0 bytes/s, done.
Total 109 (delta 56), reused 0 (delta 0)
To git@git.assembla.com:xxxxxxx.git
226887d..4bfad08  master -> master

我访问了Assembla git存储库上的提交日志,看到我所有的分支都已提交,最后一个也是。

有人可以告诉我我的步骤是否合适?

我对多个文件进行了1​​00次更改,我无法手动检查代码的每一行是否应该在哪里。

1 个答案:

答案 0 :(得分:1)

由于您解决了所有合并提交,然后将更改推送到上游,因此您的所有代码都已完成,请检入存储库。

从您在第二步中重新合并分支Already up-to-date.时收到的task1消息中可以看出同样的情况 - task1的所有提交已经存在于master分支。


解析合并提交后,

git add conflict_file 要做的事情。

理想情况下,您应该在解析提交后添加已解析提交的单个文件,这样您就不会错误地提交未解决的冲突文件。

因此,解决file_1中的合并冲突,git add file_1,解决file_2中的合并冲突,git add file_2等等,最后进行提交。

这样您就可以跟踪所有添加的文件。

但是,由于您的案例中有100个文件,我认为您可以删除单独添加文件的冗余步骤 - git add *将一次性添加所有文件。