一位同事通过从gitlab下载项目而不是进行结帐,开始在我们的git存储库中工作。我想提交/推送他的修改,但这是有问题的,我不确定最好的做法是什么(我也不是git专家)。
git status
显示每个文件已修改,因为权限不同。 git config core.filemode false
确实对此有所帮助git commit -a
似乎可以正常工作,但推送被拒绝,“远程包含您在本地没有的工作” git pull
导致许多冲突“都已修改” git merge -Xours
给我“无法合并,因为您有未合并的文件” git checkout --ours -- .
摆脱了<<<<但随后git status
仍显示文件“已修改”,我无法提交。我不确定在此阶段要做什么并推动所有“我们的”
答案 0 :(得分:2)
尝试git format-patch
“复制”每个提交到正确克隆的存储库。
将其视为手动采摘樱桃。
答案 1 :(得分:1)
您正在列出尝试解决该问题的内容,但似乎您没有适当地中止git pull
所导致的合并,因此,进一步的尝试均无效。首先git merge --abort
,然后您可以尝试其他合并或其他任何操作。
评论后编辑:
然后确定。所以在--abort
之后,去
git merge -s ours <branch>
...如果您确实只希望接管一部分,则覆盖另一侧的所有更改,或者替代地
git merge -Xours <branch>
保留双方的修改,但始终在冲突的部分选择“我们的”一方。
(但是,我建议您首先进行常规合并,并手动解决冲突,除非您真的确定想要的结果。)