团队内有人如是说:工具不一致会导致代码冲突...
1
1024MB 2018-10-25 11:25:31 +08:00 1
躺着看,要么忍,要么滚,先不讨论是否会导致代码冲突,大部分公司要的不是你的特立独行,而是,一头领头母猪跳下河里后,虽然你知道跳下去的后果,你也得跟着跳.
|
2
xcstream 2018-10-25 11:27:17 +08:00 2
git bash 一知半解的人容易瞎提交
|
3
lihongjie0209 2018-10-25 11:29:08 +08:00 3
难道你提交的时候还会附带工具信息? 如果没有, 随便用
|
4
ifconfig 2018-10-25 11:32:55 +08:00 6
同意楼上,瞎提交。
我就是强制要求团队用 SourceTree,除非能力牛逼到熟练各种分支 rebase cheout tag 解决冲突等命令,那不管。 举个例子:很多新手刚开始接触 git 就知道 git add -A,结果莫名其妙报错了,才知道把没改完的文件也提交了 |
5
yhxx 2018-10-25 11:33:48 +08:00 2
我很好奇他怎么知道你用什么提交的?
|
6
calpamomo 2018-10-25 11:36:07 +08:00 2
+1 好奇:如何知道用什么工具提交
|
7
liwufan 2018-10-25 11:40:37 +08:00 4
|
8
current 2018-10-25 11:48:15 +08:00 2
用 source tree 也没啥不好的,始终实时可见的 git status,轻松愉快的分 hunk 提交,轻松愉快的具名 stash,更加漂亮的 commit graph,及其漂亮好用的 diff。
对小白可以大幅减少错误操作的可能性,对熟手也可以大幅降低心智负担。除了 windows 版 ui 做的太烂几乎没缺点。 以及同上,如果你是一个 git 熟手,用 bash 反正其他人也看不出来, |
9
wlsnx 2018-10-25 11:57:12 +08:00
我很好奇“工具不一致会导致代码冲突”这个结论是怎么来的。
|
10
rockyou12 2018-10-25 11:59:20 +08:00 via Android
就是怕团队有人不熟乱提交呗,我真的很理解。
我司有个仓库 master 上所有文件的换行符都从 win 的搞成 unix 的,但我司主要都是用 win 的。每次合并到 master 那叫一个痛苦... |
11
learnshare 2018-10-25 12:09:54 +08:00 1
经常搞不清楚换行符,以及 UTF8 bom 的人,统一工具和配置会很轻松
|
12
geelaw 2018-10-25 12:10:28 +08:00
SourceTree 我目前发现有两个有毒的地方:
1. 会反复弹窗口问你的 credential 来 fetch,我至今没弄明白它的 credential 存在哪里;当然有些 repo 我必须换一个账户才能用,所以这个也很烦 2. 安装之后会“好心帮你”把 core.autocrlf 修改成 true,我在 Windows 上都是手工控制换行风格的 其他都挺好的。我经常切换工具,如果有分行提交的话就会用 SourceTree,如果要 interactive rebase 就会用 VS Code 编辑 git-rebase-todo,其他的随心情。 @rockyou12 #10 应该检查是不是 SourceTree 帮你干的“好事”。 |
13
int64ago 2018-10-25 12:20:19 +08:00 via Android
我看了三遍标题,确定你不是把顺序说反了
|
14
Cbdy 2018-10-25 12:26:22 +08:00
半吊子观点,SourceTree 也只是把你的点点点操作翻译成 git 命令去执行的
那你们团队有没有统一键盘,统一输入法?不然也有可能“工具不一致会导致代码冲突”😄 |
15
but0n 2018-10-25 12:36:42 +08:00 via iPhone
我有个项目 TortoiseGit 和 git bash 的 git status 不一致 不知道什么原因
|
16
xuboying 2018-10-25 12:39:53 +08:00
忍着,等到哪天他们 merge 出问题了你再亮出 git bash,写脚本检查 repo,吊打 sourcetree
啊,你不会吊打 sourcetree,那还是乖乖听头头的吧 |
17
yuanfnadi 2018-10-25 12:41:49 +08:00 via iPhone
gaa
gmm 感觉这样比点鼠标不知道快了多少。 |
18
sutra 2018-10-25 12:45:19 +08:00 1
+1 我很好奇他怎么知道你用什么提交的?
|
19
Lullaby OP |
20
lihongjie0209 2018-10-25 12:59:00 +08:00
@Lullaby 难道他二十四小时看着你提交? 工具随便用就是了
|
24
sutra 2018-10-25 13:09:58 +08:00
结果一致(比如换行符号到底是 \n 还是 \r\n、git log author 等容易忽略的地方)就行,管我用什么工具呢,我觉得命令行效率高,就命令行呀,你觉得点鼠标快你就点鼠标嘛。
|
25
current 2018-10-25 13:32:51 +08:00
@Lullaby 我也没说你用 bash 会出问题不是。我只是说使用 source tree 即使对于熟手也可以降低心智负担
|
26
Jeri 2018-10-25 13:37:12 +08:00
我站 source tree:有更直观、更方便的图形可视化工具,我选择优先用工具。
|
27
tulong 2018-10-25 13:42:01 +08:00
sourcetree 很好。git 除非玩的超级溜,不然纯属浪费时间。
|
28
newtype0092 2018-10-25 13:46:19 +08:00
sourcetree 来来回回用了几次最后都放弃了,总是搞不清我点了某个按钮它给我执行什么命令或者加了什么乱七八糟的参数。。。
|
29
Exceptions 2018-10-25 13:53:58 +08:00 1
就我一个用命令的吗...表示用工具很害怕一个按钮下来给你执行的什么命令...
|
30
nekoyaki 2018-10-25 14:02:44 +08:00
@Exceptions
我也是,而且我还怕的不是自己,是团队里其他人…… 可能是我司招人的时候对 git 有倾向,从我司的结果看提交提出过问题的,尤其是提出了问题自己发现不了或者不知道怎么解决的,都是用图形工具的; 用命令出问题的少,而且出了问题这些人也知道怎么解决。 说工具可以防止小白乱提交,我不知道是不是没见过真正的小白……有些人真的是不看提示就瞎点,点不进去换按钮硬点。 |
31
zhuziyi 2018-10-25 14:09:29 +08:00
用什么都行,但出了问题能即时解决,如果解决不了即时背锅。
|
32
deepdark 2018-10-25 14:28:33 +08:00 via Android
@Exceptions 坚持用命令+1,感觉一直用 GUI 会生疏
|
33
eloah 2018-10-25 15:02:33 +08:00
没有 linux 版本啊,最大的问题是......
|
34
abelmakihara 2018-10-25 15:13:26 +08:00
反正我是不够熟
用 GUI 好歹还能 cherrypick 之类的 敲命令真的不敢乱动 |
35
junjieyuanxiling 2018-10-25 15:24:33 +08:00 via Android
@rockyou12 我记得 vim 可以用 ff 改换行方式,其他编辑器 /IDE 应该有类似功能的插件吧。
|
36
catinred 2018-10-25 15:36:21 +08:00
#29 +1 SourceTree 的某些按钮有毒
|
37
sagaxu 2018-10-25 15:40:34 +08:00 via Android
禁用 forcepush,订好内部规范,然后谁出错罚谁,管它用哪个工具
|
38
sagaxu 2018-10-25 15:43:09 +08:00 via Android 3
忍不住说一句,菜鸡屁事多,尤其是当了小作坊技术领导的菜鸡,歪理比民科还多
|
39
yc8332 2018-10-25 15:54:14 +08:00 1
git 学习 /使用不都是用命令行吗?难道不会命令行还敢说你会用 git ?
|
40
lancelock 2018-10-25 15:54:14 +08:00
sourcetree 我真的用不会,那密密麻麻的按钮、设置看到就发憷
|
41
jin5354 2018-10-25 16:04:25 +08:00 1
从刚开始学 git 就是命令行开始的
后来第一次操作 sourcetree 时看到那一堆按钮被唬住了,吓的我感觉点击 “命令行模式” |
42
janxin 2018-10-25 16:15:26 +08:00
跟工具有什么关系?
|
43
GeruzoniAnsasu 2018-10-25 16:25:40 +08:00
sourcetree 我就只用两个功能。。一个是看本地的分支树,这个在命令行下没法看,另一个是分块提交,gui diff 还是比命令行看方便太多了,不过要编辑的话会用 jb 系自带,sourcetree 只用来检查回滚被误格式化没必要提交的行
pick 我也用命令行,先 sourcetree 看一眼图要 pick 哪些东西,然后复制 hash pick,冲突用 vscode 解决 |
44
meepo3927 2018-10-25 16:45:07 +08:00
如何看待?
嗯……像看菜鸡一样看待 |
45
anonymous256 2018-10-25 16:49:13 +08:00
有人用 GitKraken 吗? 用这个很舒服.
|
46
x7395759 2018-10-25 17:22:21 +08:00
🙈
|
47
Lpl 2018-10-25 17:57:11 +08:00
用 Git 命令多爽,只要你不开保护分支,git add/commit/push -f 一把梭让你爽翻天
|
48
rockyou12 2018-10-25 17:57:44 +08:00
@junjieyuanxiling 所有编辑器或者 ide 都有这个功能,但人家都 push 上去了你再改一次,commit 里面的文件简直不能看……
|
50
chenuu 2018-10-25 18:21:17 +08:00
命令+gitk
|
51
bigjack 2018-10-25 18:23:03 +08:00
早走早幸福
|
52
fulvaz 2018-10-25 18:30:22 +08:00
还行啊...工程的本质就是降低门槛啊, 没啥毛病
|
53
Wicked 2018-10-25 18:32:20 +08:00 via iPhone
@ifconfig 花点时间写个教程开个讲座,把新手培养起来吧,source tree 就不会瞎提交了么… 一天就能学会,一个月就能熟练的工具,真视为洪水猛兽的话,干脆用 svn 好了
|
54
hanxiV2EX 2018-10-25 18:41:18 +08:00 via Android
把开发的主分支设为保护就行了,其他乱搞是因为没学会,gui 也会有乱搞得人,教几次就行了,学不会就辞退吧。
|
56
littlebaozi 2018-10-25 19:33:14 +08:00
你可以打开 sourcetree,然后点击命令行模式。小孩才做选择,大人全都要会。
|
57
SsuchingYu 2018-10-25 19:37:39 +08:00 via Android 1
羡慕 macOS 和 Windows 上有 SourceTree。
Linux 上没有 SourceTree,只能 git 命令才能维持生活这样子。 |
58
guog 2018-10-25 19:46:50 +08:00 via Android
@GeruzoniAnsasu 你需要 tig 😀
|
59
mritd 2018-10-25 19:53:58 +08:00 via iPhone
不好意思,自己写工具走 git flow
|
61
dingyaguang117 2018-10-25 23:00:44 +08:00
一般情况下用 sourcetree 出了各种疑难杂症用 git bash
|
62
bumz 2018-10-25 23:17:42 +08:00 1
@SsuchingYu #57 linux 上有 sublime merge 等一堆 git 工具
|
63
bumz 2018-10-25 23:19:01 +08:00
|
64
kiwi95 2018-10-25 23:19:37 +08:00 via Android
从有 git 开始就一直用 git bash
|
65
bumz 2018-10-25 23:20:55 +08:00
bitbucket 有 branch permissions,github 有 proteted branch,都可以禁止 force push
不 -f 问题其实不大 |
66
SsuchingYu 2018-10-25 23:22:02 +08:00
@bumz #62 看起来很好啊,如果能开源就更好了。
|
67
DaraW 2018-10-25 23:49:57 +08:00 via iPhone
把 master 锁了,不接受 push master,禁止在多人协作的分支上 force push。
小白操作错了就操作错了,失误个几次很正常,吃过亏就长记性了,别影响到别人就行。 另外不会就学,遇到自己不学还不让别人用的,赶紧跑路吧。 |
68
nooper 2018-10-26 00:20:26 +08:00 via iPad
我感觉奇葩太多,愿意用啥用啥呗,管那么多事情。
|
69
msg7086 2018-10-26 01:36:52 +08:00
我们的开发风格是,允许 Force push,包括 master 和 release 分支。
鼓励频繁 Rebase,鼓励使用 GUI。 用 Git bash 主要是误操作可能性太高。图形界面发明出来是有道理的,比如 Git 的图形界面里,可以更直观地了解 Repo 当前的状况(比如 HEAD、本地分支、远程分支各自指向的提交节点),甚至就算是误删除了某个 commit,看 ref log 的时候都要远比命令行来得直观。 PS: SourceTree 我是真用不惯…… |
70
20015jjw 2018-10-26 03:52:40 +08:00 via Android
乱提交 code review 不给过就行了啊 这不很简单
|
71
NeoChen 2018-10-26 07:27:41 +08:00 3
一伙人造房子,工头对大伙说,请大家都用 sourcetree 牌手枪钻拧螺丝,一个小伙子跳出来说,我用手就能拧…
其实没必要讨论工具的好坏,在工程思维中,服从也是一条优秀的品质,当然质疑也不可或缺。但是就楼主的问题,我觉得并不需要质疑,统一工具可以减少因为工具不一致带来的不确定因素,这在团队合作时是非常重要的,团队需要尽可能消除个体差异,这也是为什么团队要统一代码风格。 楼主如果从一个团队管理者角度出发,应该就能明白了。 |
72
ech0x 2018-10-26 07:33:09 +08:00 via iPhone
我用 tig
|
73
chenchangjv 2018-10-26 07:54:02 +08:00 via iPhone
我昨天用 source tree commit push 一通操作,代码丢了
|
74
mengzhuo 2018-10-26 08:04:29 +08:00 via Android
所以可以用 tig 啊~
|
75
dangyuluo 2018-10-26 08:06:15 +08:00
@20015jjw 一般有这种需求(统一 git GUI 工具)的公司,估计大家都在 master 上干活,没有 code review 阶段。你在硅谷这边么?
|
76
Sharuru 2018-10-26 08:23:50 +08:00 via Android
嗯...每次这种话题总有工具优越党 ORZ。
大概想了想,Git 工具不一样导致冲突的可能...我想到一个,比如换行符( 有些 GUI 针对 repository 会有不同的预设 说回正题,对于大致 Git 操作流程,或者从 SVN 转过来的开发来说,GUI 点点点更容易接受。CLI 敲半天命令,tab 敲一万年补完路径啥的个人觉得不友好,也蛋疼。 几年前,我们一个团队从 SVN 转 Git 的时候,有个比较有脾气的技术就天天说 GUI 土,Bash 秒天秒地。后来不多久,文件,分支之多了以后,就天天说 GUI 真香了( doge ),一方面是因为他已经了解大部分 Git 的操作手法了,在用 GUI 在大部分情况下,明显便利不少。 题外话,比起 Source Tree 我喜欢 GitExtension,糙快猛。 |
77
j717273419 2018-10-26 08:30:15 +08:00 via Android
你用 bash 提交也没人看得出来吧。
|
78
hasbug 2018-10-26 09:05:04 +08:00
这种公司呢 和你三观不合,一般就是要么忍 要么走人。
|
79
passerbytiny 2018-10-26 09:05:05 +08:00 1
趁早走。
“工具不一致会导致代码冲突...”,能说出这种话的团队,肯定有这些特点:没有新员工培训、质量控制、技术委员会等等;领导特别怕麻烦,怕到本来该指挥机器自动化干的事,让人手工处理。 总之,公司 Low、团队 Low、领导 Low,趁早走。 |
80
skywalkerfc 2018-10-26 09:19:47 +08:00
@anonymous256 +1,表示 gitkraken 看起来比较舒服
|
81
HuHui 2018-10-26 09:23:49 +08:00 via Android
目前经历的来看,非必要强制比较多的团队大多数都是傻逼比较多的,建议走。
|
82
WayneLau 2018-10-26 09:34:16 +08:00
表示只会用 git 命令,反而各种 git 的 gui 工具弄得我晕头转向,有些 IDE 也带一个 git 前端;所以只用 git 命令保持统一
|
84
xuan_lengyue 2018-10-26 09:48:58 +08:00
有些操作还是 GUI 比较直观,比如看 diff 之类的,喜欢用哪个就用哪个。
|
85
Govda 2018-10-26 09:53:37 +08:00
不会用 gui 怎么办
|
86
jobscolin 2018-10-26 10:02:30 +08:00
+1 我很好奇他怎么知道你用什么提交的?
|
87
zongren 2018-10-26 10:02:46 +08:00
sourcetree 能解决代码冲突?没用过
|
88
gesse 2018-10-26 10:05:12 +08:00
git push -f 解决一切 ;)
|
89
amenging 2018-10-26 10:09:05 +08:00
感觉命令行更直接诶,GUI 不怎么会用,可能学的时候看的教程都是 bash 吧,用 bash 的话,感觉脑子里的结构会很清晰,GUI 有点莫名其妙的(´・_・`)
|
90
1217950746 2018-10-26 10:27:29 +08:00
我也不知道人家怎么提交了,代码被同一个人覆盖了两次,代码被覆盖到了一个多月前的版本
|
91
liubo 2018-10-26 10:37:58 +08:00
看来要下个 sourcetree 体验一下了
|
92
junbaor 2018-10-26 10:38:07 +08:00
对 sourcetree 无感,感觉最好用的 git 客户端就是 jetbrains 家 IDE 自带的。
|
93
undeflife 2018-10-26 10:53:28 +08:00
提这个的肯定没踩过 sourcetree 的坑, 我曾经碰到过, A 用 git bash,但是某个较低版本, B 用 sourcetree 最新, 某些原因导致 sourcetree 无法正常 commit, 一顿操作后, sourcetree 可以提交了,只不过全是--force ...
|
94
littlewing 2018-10-26 11:56:08 +08:00
离职吧,如果说限制只能用 git bash 可以理解,限制只能用 GUI 工具就不能理解了
|
95
nidengxiajiuaida 2018-10-26 16:44:51 +08:00
路芭比,来我们公司吧。SVN 欢迎你。
|
96
nidengxiajiuaida 2018-10-26 16:55:39 +08:00
git 设置了 alias 后,那是其他客户端所不能比的
|
97
nidengxiajiuaida 2018-10-26 16:56:02 +08:00
离职吧
|
98
raphaelsoul 2018-10-26 16:57:54 +08:00
自从开始用 idea 内置的 git GUI 以后就不怎么用 source tree 了
|
99
dajj 2018-10-26 17:48:03 +08:00
linux 没有 sourcetree 怎么办
|
100
blacklee 2018-10-26 18:14:25 +08:00
这种规定还好,没什么值得辩驳的,仅仅是改一个小习惯。如果在这种事情上面也要扭捏的话,未免太过矫情。
git bash 没什么不好的,但 source tree 同样没什么不好的。 这个规定应该做的唯一更改,大概是「你们这些用 git bash 的异教徒,如果在这件事上出了差错的话,那要么改用 sourcetree,要么滚蛋」,这样爱用 bash 的继续用 bash 就是了。 |