由于我对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存储库上的提交日志,看到我所有的分支都已提交,最后一个也是。
有人可以告诉我我的步骤是否合适?
我对多个文件进行了100次更改,我无法手动检查代码的每一行是否应该在哪里。
答案 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 *
将一次性添加所有文件。