git 的正确使用姿势是怎么样的?和另一个同事修改同一个文件(不同的行)时, git pull 老是失败

2022-04-22 10:33:35 +08:00
 itechnology

我是写 Java 的,经常在和另一个同事同时修改一个文件,但改的是不同的方法时,如果其中一个人提交了代码,另一个人 git pull 一定会失败

4835 次点击
所在节点    程序员
41 条回复
unco020511
2022-04-22 12:01:24 +08:00
补充一下,正常来说你一般不和同事在一个分支开发呀,当然如果是两个人开发同一个功能除外
weichengwu
2022-04-22 12:03:00 +08:00
看一下 git 入门教程
itechnology
2022-04-22 12:13:11 +08:00
@unco020511 我和同事开发同一个页面的不同接口,我们把这些接口都写在同一个文件里面了
msaionyc
2022-04-22 12:32:13 +08:00
你先明确一下“一定会失败”是什么意思,不然很难得到你想要的答案
nothingistrue
2022-04-22 12:44:19 +08:00
git 修改同一个文件,不一定总是冲突,但大概率冲突,这要看 git 能否自动将两个人的修改合并成一个。所以尽量避免修改同一个文件。

如果不能避免,那也不是啥大问题。pull 之后用新提交解决冲突,或者先 rebase 解决冲突再 push ,都可以,但是以上的前提是:**********先提交*********。

pull 失败跟冲突是两码事,本地工作空间没内容时,pull 只会产生冲突不会失败。本地工作空间有内容,并且预期还会产生冲突(实际上是 Git 无法自动解决冲突),才会 pull 失败。

使用 Git 时切记,先提交后 pull (如果暂时还不想提交就 stash ),不要像 SVN 那样先更新后提交。如果是想获取线性提交历史,那么使用 pull --rebase 即可,但本地还是要先提交。
chiu
2022-04-22 12:56:02 +08:00
失败的错误信息是什么?
zamaojava
2022-04-22 13:09:23 +08:00
idea 应该提示很好啊,从来没打过命令,idea 无脑支持。
ClericPy
2022-04-22 14:25:07 +08:00
大项目参考一下 git flow?

十人以下的考虑 Github flow?

尽量避免不同的人开发同一个文件 /模块, 是不是底层抽象的不彻底
dddd1919
2022-04-22 14:32:18 +08:00
结对编程,一个人改
zooeymango
2022-04-22 14:35:30 +08:00
git 对比的是文件的那一行进行了修改, 虽然你觉得你们写的是不一样的代码, 但是对 git 来说你们的改动冲突了
wolfie
2022-04-22 14:40:53 +08:00
这水平还是用 svn 好。
xcsoft
2022-04-22 14:43:36 +08:00
出现冲突了吧
624144061
2022-04-22 15:08:36 +08:00
都是老实人,我建议 git push -f
deplivesb
2022-04-22 15:11:36 +08:00
https://learngitbranching.js.org/?locale=zh_CN
建议你去跟这这个学一学
CodeCodeStudy
2022-04-22 15:20:19 +08:00
你让他不要动
拆分大文件,每个人负责某个文件不就好了
gzyguy
2022-04-22 19:19:12 +08:00
这种协作用 git flow ➕ code review 好些
mkmoon
2022-04-22 19:23:31 +08:00
commit 后,也可以先 git fetch ,再在本地 git merge ,最后再 push 就行
yeqizhang
2022-04-22 21:06:11 +08:00
用 idea 用习惯的我,都是没 commit 先 pull 来合并别人的提交的🐶
magicls
2022-04-23 16:42:27 +08:00
push 之前先 git pull --rebase ,有冲突解冲突,解了再重新 git add; git commit 。

你要知道,git 的冲突是你一定会遇到的,一定要面对的,一定要会解的,而不是说想办法不要有冲突,如果你那样想那就错了。
tooya
2022-07-18 17:34:50 +08:00
@yeqizhang idea 的 pull 实际上就是做了 git stash 、git pull 、git stash pop 三步

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

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

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

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

© 2021 V2EX