多人开发时使用 git,能使用“git add . ”这个命令吗?

2015-04-26 12:36:33 +08:00
 kidneyband
我从事ios开发接近两个月了,代码管理使用的是git,我添加代码时都是使用git add . ,ios开发的同事看到后说不能这样添加,说容易出问题,请问各位是这样吗?我觉得git add . 之后commit的时候自然会显示文件的改变情况,和一个一个添加并没有什么区别。可是同事老揪着这个不放。烦
15545 次点击
所在节点    iDev
59 条回复
avtester
2015-04-27 01:01:02 +08:00
通常都是commit -am
ETiV
2015-04-27 03:22:16 +08:00
不建议LZ跟同事搞的关系很僵,免得日后你真add了不必要的文件进去,别人还会来揪你辫子…

就比如我身边的,有把“上刑(行)带宽”读成“上杭带宽”的,也有非把 /git/ 读成 /jit/的。
对我来说毫无影响,不影响交流就好。

我又不是你老师,没责任改变你的认知。
cute
2015-04-27 08:07:07 +08:00
@ETiV 原来我一直读错啊。
zog
2015-04-27 08:18:17 +08:00
gitx逐行提交一下。做好code review
armysheng
2015-04-27 08:34:23 +08:00
实习的时候,第一次多人开发,以前都是git add . 然后commit,后来把自己的IDE配置文件也提交上去了,给队友们引起不少麻。当然.ignore 没有配置好也是原因之一。
sarices
2015-04-27 08:37:01 +08:00
自己知道哪些文件就好,有问题也可以reset嘛,只要你还没有push
exch4nge
2015-04-27 08:48:07 +08:00
感谢 @vvtommy 懂了什么叫湿猴理论。

发现使用git上的常见问题是,工作目录不干净,工作目录不干净就有可能操作失误,pull的时候也不允许工作目录不干净。然后经常误操作提交一些不需要版本控制的文件(如编译中间文件、编译产出文件、log文件等等)。

其实只要配置好了.gitignore,上面问题都(部分)解决了,git add . 也没什么大问题。
old9
2015-04-27 09:34:23 +08:00
我觉得 add . 的主要问题不是误添加了垃圾文件,如前面各位所说,垃圾文件可以 ignore 解决,它主要的问题是:容易导致你的提交违背原子性原则。

谁都很难保证自己一段时间的修改都是相关的,所以才会有 index,index 的存在很大程度上就是让你雕琢 commit 的,如果动不动 add . 甚至 commit -a 那还要 index 干什么呢?

反正我个人是极少使用 add . 的,有各种潜在风险却没什么好处。



P.S.
由于楼主只说了“我添加代码时都是使用git add . ”,没提接下来的其他的操作,以上观点基于对楼主工作流的以下假设:
1. add 到 index 区的内容就是要准备 commit 的——而不是说你 add . 了之后还会再回头 unstage。
2. commit 的内容就是要 push 的——而不是说你 push 之前还会用 rebase 之类的重新调整 commit。
zhujinliang
2015-04-27 09:36:45 +08:00
特么恼了直接 git add -A
old9
2015-04-27 09:38:07 +08:00
如果楼主只是觉得一条一条 add 比较麻烦所以选择去 add .,那可以考虑借助 GUI 工具,或者,如果是 Sublime Text 用户的话,我给你安利一下 GitSavvy 插件。
nellace
2015-04-27 10:26:27 +08:00
@zhujinliang 太残暴了。。。。。我都是要先git status一下。。。
a591826944
2015-04-27 10:31:12 +08:00
同上 我一般 都是 gst 看一下 都是我要提交的 就直接 ga .
chmlai
2015-04-27 10:34:21 +08:00
git commit -a :)
chilaoqi
2015-04-27 10:57:07 +08:00
用的熟了,那管那么多。
千人千面,只要不影响别人工作,出错了能负责任的补救就行了。

非要“推荐|强迫”别人用一种工具,一种方法这不有病么?

我从来不用git GUI,add . add single file 都随意了。
doublleft
2015-04-27 11:04:32 +08:00
看实际场景需求嘛,如果git add . 是做了同一件事情就可以做一个commit。

但如果做了很多件事情,修了很多bug,加了很多功能,git add . 确实方便,但是怎么写commit log?会被老司机骂的。
iugo
2015-04-27 11:48:05 +08:00
我使用 gitg + terminal 来完成.

gitg 不够好, 有时需要 terminal 来完成.
xavierchow
2015-04-27 19:26:11 +08:00
这么多回帖的,没人提过 `git add -u`?
我都是git add -u 然后再git status检查一下是否需要单独add untracked file.
banxi1988
2015-04-28 09:43:37 +08:00
碰到,需要选择多个需要提交的文件的情况:
我都是打开Vim, 调出 fugitive 出来. 然后 : Gstatus 非常方便
laucie
2015-09-22 13:41:29 +08:00
git add -A stages All
git add . stages new and modified, without deleted
git add -u stages modified and deleted, without new

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

https://yangjunhui.monster/t/186418

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

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

© 2021 V2EX