我在git的常规一向很简单,我没有得到任何冲突,没有我的许可,它强制更新我的本地副本。沿着这些线:'2个文件改变,2个插入(+),6个删除( - )'。但就我而言,冲突不应该从简单的合并中解决,而应该从我这边要求手动解决冲突。为什么git不让我去做手动冲突解决?提前致谢! 注意:我的git命令都没有强制选项-fGit是没有显示任何冲突,并覆盖我的本地副本
2
A
回答
5
git pull
没有参数或多或少相当于git fetch && git merge origin/<upstream_branch>
。通过使用pull
而不是fetch
和merge
,您允许git尝试合并到您的本地分支。如果合并发生时没有冲突,那么您的本地将显示“强制更新”,因为它能够在您的干预下理清远程文件版本与您自己的文件之间的差异。
调试发生了什么是那种很难没有看到你的代码,但试试这个:
git fetch ;# fetch the remote changes
git diff HEAD origin/<branch> ;# diff your local branch with the remote's copy of <branch>
输出从git diff
应该线索你到发生了什么。如果您想更进一步,请尝试git merge --no-commit origin/<branch>
,然后发出git diff --cached
。这会告诉你到底git自动合并了哪些更改,并且应该允许你确定什么是什么。
0
如果git
设法解决git pull
期间的所有冲突,那么它将进行提交。这并不意味着它一定是正确的。正如你已经注意到的,根据你的变化,你可能需要做一些手动修复。
要做到这一点,请在拉出后在工作树中进行更正,然后对其进行分级(例如,使用git add -u
),并使用git commit --amend
修改合并提交。
这将创建一个新的合并提交,它会替换git用包含更正的git所做的合并提交。
然后,您可以像往常一样推送结果。
相关问题
- 1. SVN覆盖XML文件的本地副本而不是显示冲突
- 2. Git合并覆盖而不是冲突
- 3. 版本冲突错误显示,显然没有版本冲突
- 4. 当本地没有更改时,git工作副本如何冲突?
- 5. 突出显示cursorcolumn覆盖任何现有突出显示
- 6. 没有覆盖的Gradle副本
- 7. PhpStorm&SVN:如何获取远程副本并覆盖本地副本
- 8. Git ID没有显示任何二进制文件冲突
- 9. GIT - 将现有本地副本与克隆副本合并
- 10. git:如何覆盖合并的所有本地更改?
- 11. 覆盖已显示的本地通知
- 12. Git pull只覆盖冲突文件
- 13. Git:如何覆盖本地更改?
- 14. Android - 突出显示文本和副本
- 15. 的Git命令签出任何分支,覆盖本地修改
- 16. SVN没有本地副本
- 17. 如何覆盖本地副本上的更改
- 18. 没有合并的Git rebase冲突?
- 19. git:如何获取冲突文件的副本?
- 20. 本地更改覆盖Maven依赖关系时发生冲突
- 21. 覆盖Git中的本地更改
- 22. Git:防止文件的本地和远程副本互相覆盖
- 23. Git子模块拉覆盖/丢弃任何本地更改
- 24. 突出显示对中的副本
- 25. Git从主合并到阶段覆盖冲突
- 26. Git rebase - 合并冲突时强行覆盖
- 27. Git Pull覆盖本地更改
- 28. 用本地(Git)覆盖主机
- 29. 意外的颠覆冲突行为(冲突没有冲突)
- 30. 冲突使用Ipaddress:显示而不是本地主机
'git'没有这样做(以我的经验),所以你可能会忘记一些看似情况的信息。也许你有一个错误的石器时代版本的'git'? 'git --version'告诉你什么? – bitmask 2012-07-06 19:56:41
尝试'git fetch'然后'git merge'(查找命令行)。默认情况下'git pull'会自动尝试“冲突”解决方案,并且根据我的经验,如果算法放弃了冲突,则不会这样做。 – Robert 2012-07-06 20:06:50
@Robert:但是这与'git pull'没有什么不同? – 2012-07-06 22:33:19