git 单人开发更新冲突

2019-11-24 00:25:12 +08:00
 sytnishizuiai

我一个人本地 phpstorm 开发,用 ide 自带 ssh git 上传,有时用终端上传,但有时再服务器 git pull origin master 的时候,会冲突,这是为什么呢? 以前用 git 没发生过,就这个项目老是碰到这问题。

3712 次点击
所在节点    git
9 条回复
Girlphobia
2019-11-24 01:37:55 +08:00
思路:
首先排查自己的工作流程中是否有 rebase/commit --amend 之类修改提交历史的操作
其次在服务器上 git fetch 并 merge --no-ff --no-commit (具体的 pull 对应命令我记不清了)查看是哪个提交或者文件有冲突,然后理解这个修改冲突是什么造成的。
sytnishizuiai
2019-11-24 01:41:06 +08:00
@Girlphobia 谢谢。

我重新描述下,服务器 git pull origin master,当前被更新的文件会出现 error 提示。我先按照你的试试,下次更新在报错,我贴下报错内容吧,突然发现自己也没仔细看。。。
jinliming2
2019-11-24 01:41:50 +08:00
很简单,就是本地分支与远程不一致,本地 git log 看看和远程的 commits 对比一下区别在哪,再分析产生区别的原因是什么?
Girlphobia
2019-11-24 01:53:47 +08:00
@sytnishizuiai 你问题中描述的冲突我默认为 git merge 里的 CONFLICT (CONTENT or whatever) 了。如果是错误,一种我见过的情况是文件在 repo 里已经存在但并未 track (因此 working copy 是视为无更改的),同时远程分支机里有这个文件的 tracking version,任何试图处理远程分支的操作会因为无法创建文件而失败。这种情况还需要排查 .gitignore。
0xABCD
2019-11-24 13:11:30 +08:00
贴报错日志吧,你的描述并不能表达清楚你的问题
sytnishizuiai
2019-11-24 13:52:47 +08:00
![WX20191124-133940@2x.png]( https://i.loli.net/2019/11/24/In5NZAuevwYiotQ.png)

我在服务器上 git status 发现这个问题,服务器从来不上传的(有时会有临时修改,但这次提交没有)。
关于报错,因为不是每次都出现,所以没法重现,等我下次再出现的时候,根据各位的方式再测试下,截图出来。谢谢。
jeffh
2019-11-24 16:22:42 +08:00
gitk --all 看一下哪里分叉了
find456789
2019-11-24 19:30:24 +08:00
可以考虑用工具 比如 sourcetree 在工具上操作, 不容易出错
sytnishizuiai
2019-12-27 23:19:11 +08:00
@Girlphobia
@jinliming2
@0xABCD
@jeffh
@find456789
感谢大家的建议,我之后一直用的 sourcetree,就没出现过这个问题了。
Ps: sourcetree 之前我一直用,后来出问题,老是弹框就不用了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/622520

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX