因为 git pull 和同事闹僵了。

2019-05-18 01:48:08 +08:00
 codetnci

同事:(idea)你要先点击项目目录,右键-git-commit directory,然后右键-git-pull。理由,避免冲突,避免覆盖代码。

我: 经常是没有 commit 就 pull,而且不是用(idea)右键项目根目录来 pull,有时是用(idea)vcs 窗口中的命令行(git pull)来 pull,有时用工具栏上的 pull 按钮。理由右键项目使用 git 效率慢

被他一直说,因为我屡教不改,最后他发脾气了。

我没有 commit 就 pull 的理由如下。 1 我这边只是改动属于我自己功能的模块,代码基本在自己的 service 类里,base,commom 等方法我基本也不会去动,所以大概率不会和他的代码冲突,或者要 pull 的代码有冲突。 2 有时我代码一点改动都没有,就只剩下一两个文件,一个是我本地的 java test 类,一个是自己新建的 bean 类。我就没有 commit 直接 pull。 3 我觉得没改好的代码不好随便 commit,而且他的操作是 commit directory,(不是什么东西都 commit 上去了?) 4 (我心里想)就算是冲突或者覆盖也只会影响到我,也不会影响其他人啊?即使我的代码被覆盖或者出现冲突了,我可以回退啊(所以我心里潜台词的就是我不 commit 就更新关你毛事啊)

和同事冲突的原因: 他说他这样做避免代码冲突和覆盖,我一直不照着他说的方法去做(理由在上面),教多几次后他就受不了发脾气了。

另外: 1 他 commit 很随意,我看到他把 idea 文件夹下面的一个文件也提交了。 2 另外一个同事也很随意,很经常 git add . 然后 git commit -msg "code" 。 3 我看到过不知道是谁把 log 文件也提交上去了,更新冲突,我把我本地的 log 文件删了才 pull 成功,我在想谁那么有才啊? 4 我个人对 git 命令行不太熟,用的最多的就是 git clone。其他都是用 sourcetree 来提交和更新的。有点讨厌命令行,特别是 add 文件的时候。所以也不怎么研究命令行。 5 我在上家公司的基本上是各做各的,所以冲突不多,要合作的时候也是在同一个分支的基础上建立一个子分支,所以冲突不多。 6 我现在的情况是我们所有开发全在一个分支下工作,也没有创建个人的子分支。

想让各位评论评论,不求对错。只想知道你们的看法,求 git 正确使用方法

15562 次点击
所在节点    职场话题
80 条回复
yhxx
2019-05-18 22:21:20 +08:00
先不说什么团队规范,你怎么 pull 关他什么事。。。为什么他能发现你 pull 的方式不合他心意?
又不是 push
Cbdy
2019-05-18 22:39:26 +08:00
提交代码发 pr 多简单
yidinghe
2019-05-18 23:11:05 +08:00
先 pull 再 commit 这是有礼貌的表现,就是不管什么锅我先背了,冲突我来处理。
liukanshan
2019-05-19 00:07:09 +08:00
这种情况还和别人理论什么 你去争你就是傻逼 他说的一切都对 也麻烦不要去纠正。
exonuclease
2019-05-19 00:31:14 +08:00
先 git stash 再 git pull
oneisall8955
2019-05-19 01:35:13 +08:00
git 不太会用,用 idea 只是简单的 Ctrl K 选 push,自动 merge,有冲突手动合并,最后自动 stash 提交到主分支。。。
passerbytiny
2019-05-19 08:25:32 +08:00
恕我愚钝,不知道为什么先 commit 会避免冲突,要不楼主把同事叫过来问一下。
@bjjvvv #28
@watzds #30
@pkookp8 #33
你们 commit 的信息怎么写?还是你们觉得修改历史后再 push -force 更不容易出问题。
kran
2019-05-19 09:27:11 +08:00
@passerbytiny 并不能避免冲突,昨天看这个帖子我想的是,他同事说的可能不是主贴上的问题
zqx
2019-05-19 09:55:05 +08:00
如果用 git 不用 git 最佳实践,不如不用 git,换 svn
bjjvvv
2019-05-19 11:04:12 +08:00
@passerbytiny #67 提交了 commit 你的代码才算进了 git 的仓库。你合并代码也好,其他什么切分支也好,反正遇到到了什么问题,你想回滚的时候,发现自己代码根本就没被 git 记录就蛋疼了。
siteshen
2019-05-19 11:58:13 +08:00
只要你不搞坏别人的东西,怎么操作都没问题。如果用自己的流程,搞出问题(或者要麻烦别人),就别怪别人发飙。
pkookp8
2019-05-19 12:33:53 +08:00
@passerbytiny 我没说 commit 可以避免冲突,我是说我的意思是 commit 之后代码就被 git 管理了,即使有什么操作导致你的代码丢失,只要不是整个仓库被删,都能恢复。冲突也可以在 commit+pull 之后解决
反之如果先 pull,解决冲突过程出了点意外,代码可能就没了。所以对方的想法并不是没有道理的
楼上很多人说可以用 git 的分支开发,我想说 svn 其实也支持分支开发模式,如今 svn 和 git 一样是差异存储。但是很多人认为 svn 一份分支就是一份存储,可能是以前的模式误导了吧。
commit 信息怎么写: 你改什么写什么。一两句话简单描述一下就行了。反正我是不会用 code 或者 update 之类的一个单词的描述
hellomsg
2019-05-19 13:44:44 +08:00
发帖子的时间可以去练一练 git 怎么用
du5t6reak
2019-05-19 15:10:58 +08:00
git add . 我也是醉了,在我们 team 这么玩儿要被骂死的,个人配置文件也 push 有病吧
luozic
2019-05-19 15:59:49 +08:00
找个 github flew 练习一下不就行了,三个都在哪胡搞,都还有理了。
dNib9U2o8x
2019-05-19 16:25:42 +08:00
建议你们使用更加强制化的流程, upstream/master 分支禁止 push,只允许从 pull request merge,这样你们本地愿意怎么玩就怎么玩
moxiaonai
2019-05-19 18:39:16 +08:00
流程有问题,不是操作的问题
corningsun
2019-05-20 09:05:23 +08:00
楼主是否 pull 后把别人的提交覆盖了?

上你们 git 提交历史图吧,看结果才能让大家评理。
bdnet
2019-05-20 11:10:38 +08:00
Gitflow、GitHub flow、Gitlab flow

更重要的是约定一个开发流程吧,至于操作方式,不需要定这么死。有人喜欢点鼠标,有人喜欢命令行,还有人直接快捷方式搞定。
l00t
2019-05-20 13:18:39 +08:00
菜鸡互啄

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

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

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

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

© 2021 V2EX