![](/img/trans.png)
[英]How to resolve conflicts with git merge without committing unwanted files?
[英]git: how to resolve merge conflicts without taking over 'blame'
对于我的github存档,我收到了一个合并请求,我想在合并之前先对其进行测试,因此使用了github推荐的命令行命令(contrib1代表贡献者的用户名,patch1代表合并请求的名称,并回购该名称存储库的)
git checkout -b contrib1-patch1 master
git pull https://github.com/contrib1/repo.git patch1
因为我已经进行了一些更改,所以解决了一个(简单的)合并冲突,我通过编辑file1解决了这个问题。 该补丁还包括对其他文件file2,...的无冲突更改。
然后我再次遵循github的建议:
git add file1
git checkout master
git merge --no-ff contrib1-patch1
git push origin master
merge命令产生一条消息“已经是最新的”,然后我发现我已经省略了首先提交,因此基本上重复了该过程:
git commit -m "Implements patch1 by contrib1" repo
git checkout master
git merge --no-ff contrib1-patch1
git push origin master
再次, git merge --no-ff
导致消息“已经是最新的”。 现在,该存储库是正确的,但是我责怪自己是所有文件中更改的发起者,而不仅仅是行之间的冲突,从为外部贡献者分配功劳的角度来看,我觉得这很糟糕。
问题是,下一次应避免使用哪种命令顺序来避免这种情况,并确保在“责备”或“历史记录”视图中显示补丁作者? 请注意,我不关心更改以上补丁的历史记录,我只想为下一个补丁做正确的事情。 如果我没有犯忘记commit
的错误(很明显是“本地”问题),那么很可能会出现相同的问题,但是如果它很重要,我觉得我应该报告它。
使用git rebase -i
然后通过以下方式设置提交的原始作者
git commit --amend --author "Original Author Name <email@address.com>"
有关如何更改作者的更多详细信息,请点击此处 。 从内存中可以跳过一些额外的循环来更改合并提交的作者身份,但是考虑到您进行了合并,这似乎还可以。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.