
比如我想 git 跟踪目录内所有文件,在修改多个文件后只需要 git commit 一次就行了。
现在每次 git commit 前都要用 git add 添加下文件,太烦了吧。还要先 git status 查看下修改了哪些文件,又添加了几个文件。
又比如自动跟踪已 git add 过的文件,防止修改文件名后忘了 push 那个文件。
我刚开始学 git 遇到的问题有点多。
目前还不知道怎么查看仓库内的文件,百度找了半天没找到我要得。
1 dacapoday Jan 21, 2019 via iPhone 那就先用图形客户端呗,至少能熟悉功能。然后再看图形客户端的命令日志。 |
2 wuyuanwei Jan 21, 2019 |
3 frylkrttj OP @wuyuanwei “ git commit --all ”只能提交已“ git add ”过的文件呢。这样我目录内新添加的文件和修改文件名后的文件咋办呢。 |
6 besto Jan 21, 2019 首先 git add 是可以 add 目录的 其次 git add 之后 你可以再更改, 这个时候提交只会提交你 add 那个点的版本. 你这个需求明显不合理啊 |
7 rocksolid Jan 21, 2019 git add . 不就行了么 有什么麻烦的 |
8 rocksolid Jan 21, 2019 或者直接用 vscode |
9 ddddad Jan 21, 2019 lz 还没踩过提交错误的坑 |
10 hjq98765 Jan 21, 2019 我的感觉是,git 设置成这么个流程是有其中的深意的 |
11 frye Jan 21, 2019 git add . |
13 frylkrttj OP 现在好像只剩下,怎么实现自动跟踪文件名的问题了。 |
14 quinoa42 Jan 21, 2019 Untracked, stated 和 commited 是三种不同的状态,这么做自然有它的理由 不过关于楼主的问题,不少 IDE 是支持自动 track 的,比如 Intellij 但是我觉得这“智能”功能很烦,所以我一般都是关闭 IDE 的 git 相关功能的 |
15 passerbytiny Jan 21, 2019 @frylkrttj #13 文件名修改无解,必须 IDE 解决,纯命令行是 git rename,相当不方便,还容易漏(你要不用这命令,那文件改名后是 remove 和 add )。 |
16 hash Jan 21, 2019 按照楼主的描述似乎只需要写一个 alias? |
17 wuyuanwei Jan 21, 2019 @frylkrttj `git add .` 之前最好还是 `git status` 检查下状态,避免不必要的提交错误。通常我会配合 Facebook PathPicker 手动选择待暂存的文件。 |
18 V2exUser Jan 21, 2019 via Android idea 倒是会自动弹出是否自动加入 git 的窗口 |
19 ww23xx Jan 21, 2019 via Android (小姊姊我面向 V2EX 编程) |
20 chinvo Jan 21, 2019 不是,这些简单问题,你 Google 一下好么 再不济去微信上问那些大叔大爷啊 [:doge:] |
21 chinvo Jan 21, 2019 |
22 shuizhengqi Jan 21, 2019 一看就是年轻人,没写过大项目 |
23 stephen9357 Jan 21, 2019 无脑 git add .早晚出事,我还是习惯 git status,然后挨个 git add,起码心里有数。 |
24 hgjhgjgjhgjg Jan 21, 2019 alias grb="git rebase" alias gaa="git add -A" alias gs="git status" alias gm="git commit" gaa gmm -m "xxx" 楼主可以自定义一个 gam 试试看。 |
25 des Jan 21, 2019 via Android 不是 command + k,然后选自己要提交的文件和变化么? |
26 frankkai Jn 21, 2019 git ac |
27 zael Jan 21, 2019 via iPhone 我更想知道 git 提交怎么不用输入后面的-m 每次提交都要写一下-m "update" |
28 imherer Jan 21, 2019 用带图形界面的客户端,比如 SourceTree、Github Desktop 等都可以 但是建议楼主最好别这样做,不出事还好,出事就麻烦了 |
30 ooops Jan 21, 2019 多用用就没有这些问题了。建议从头到尾看看 Pro Git。有问题看到后面就慢慢懂了。我看了半天问题不知道楼主想干啥。 |
31 gesse Jan 21, 2019 你可能对 git 有什么误解 |
35 frylkrttj OP @stephen9357 我刚学 git 需要反复操作 正需要 git add . 编程做项目离我还远。 |
36 frylkrttj OP @hgjhgjgjhgjg #24 你这配置是写在那个文件的,gam 又是什么。 |
37 fan123199 Jan 21, 2019 git add folder/* && git commit -m "all file in folder updated" && git push 一条龙, 个人开发没问题。 |
40 frienmo Jan 21, 2019 @hgjhgjgjhgjg 握手 看我的 ##############Git############ #alias git='LANG=en_US git' alias gl='git log' alias gs='git status' alias gfp='git fetch -p' alias gcm='git checkout master' alias gc-='git checkout -' alias gcp='git cherry-pick' alias gau='git add -u' alias gpm='git pull origin master' alias gnb='function _gnb { gcm; gpm ; git checkout -b $1 ;echo $1;}; _gnb' alias amend='git add -u;git commit --amend --no-edit' alias gr='function _gr() { re='^[0-9]+$'; if [[ $1 =~ $re ]] ; then git rebase -i HEAD~$1; else git rebase -i $1; fi;};_gr' alias gz='git reset HEAD~1' alias delete-merged-branches='function _f { git checkout --quiet master && git branch --merged | grep --invert-match '\\*' | xargs -n 1 git branch --delete; git checkout --quiet @{-1}; }; _f' |
41 ynyounuo Jan 22, 2019 via iPhone 如果你的工作流只是 git add . git commit -m "{some_useless_info}" git push 那你基本就是在浪费时间骗自己在用 git 而已 建议 rm -rm .git/ 一劳永逸 |
42 ynyounuo Jan 22, 2019 via iPhone rf* |
43 SharkIng Jan 22, 2019 初学者这样用倒是可以,我以前也这么用,但是的确像楼上说的问题很多。当你真正做项目后,或者在公司里用的时候就会明白这样不行的。所以刚开始养好习惯比较好,不要怕麻烦。 |
47 Wolther47 Jan 22, 2019 via iPhone 我觉的楼上有几位言过了,一开始用 git,还是先以熟悉为目的,反正也不是非常重要的代码,翻车了才能更好的记住( |
48 hakono Jan 22, 2019 via Android 嘻嘻,等楼主开发程序后,试多用几次 git add *就会发现,咦,这次把一堆不在 ignore 名单里的临时文件提交了。 下次:卧槽把刚刚创建的带服务器帐号密码的配置文件一并提交 push 到 github 了。 然后楼主开始想着怎么回滚,怎么操作远程仓库,然后学会了 git push --force 然后把推送的坑也踩了一遍 233 |
49 james2013 Jan 22, 2019 直接用图形化工具 TortoiseGit. 丰富的功能,直接用鼠标点击就可以了. 1 个命令也不需要输入. |
50 dajj Jan 22, 2019 脚本。。。 |
51 des Jan 22, 2019 via Android |
52 hakono Jan 22, 2019 via Android @des 主要很无脑 add 的话,多时候都是 add commit push 三件套 然后回过头就才发现远程仓库已经塞入了多余的文件, 这时候操作远程对新手就是个大坑了,然后这时候通过各方百度,很大几率会学会 git rest --hard 和 git push --force 这两个命令。 |
53 ElfenSterben Jan 22, 2019 你把 gitignore 配置好然后 git add . 有什么问题么? |
54 flyingghost Jan 22, 2019 新手学习过程中看不到风险很正常。提出优化建议起码证明 lz 进一步思考了。 但 git 不这样设计不是因为 git 蠢,而是因为这样设计是错的:误提交实在是太多太多了。。。 亲身经历过同事误把 密钥.java.bak 提交进仓库,打包,发布,被竞争对手反编译,获取到公司通用算法和我部门密钥,暗搓搓上线我司在线服务的破解版,然后全部门在过年前一天飞机火车汽车逆流回司加班的壮丽事件。 日常岁月静好的代码仓库,也时不时会出现不应当提交的文件。所以需要 code review,需要服务端 commit 钩子,需要定期检查清理。 单就文件的尺度来说,git/svn 是允许你整体提交的,也就是说你无需手动一个个变更点看过来,一把梭提交整个文件。是不是和“提交整个目录”很像?所以 git 不是没想到,而是在方便和危险之间找到了平衡:文件粒度。 但我要求的最佳实践,依然是提交的时候检查精确到行,每个变更都确认需要提交。(你看我没有要求精确到字符已经很人性化很方便啦!) |
55 liu19931020 Jan 22, 2019 vscode+1 |
56 frylkrttj OP |
57 xxgirl2 Jan 22, 2019 先 status,然后 diff,检查文件、格式、修改无误后,再 add。 |
58 omph Jan 22, 2019 自己写个驻留程序 daemon,监控目录中文件变动,自动添加即可。当然最好支持过滤功能 |
59 libook Jan 22, 2019 用 Git 养成好习惯是头等重要的,用时的一点点麻烦,是为了避免解决问题时的恶心。 “自动跟踪”坑很多,比如提交了并不想提交的文件(临时测试修改的代码等),以后用用就知道还是老老实实 diff 再 add 最稳妥,版本控制工具使用来可靠控制代码版本的,不应该是累赘,觉得用起来很麻烦真不如不用。 团队合作使用 git commit -a 和 git push --force 等指令,会被人打死。 |
60 omph Jan 22, 2019 和通知功能 |
61 karllynn Jan 22, 2019 这种简单问题,你读一下 git 文档不就行了么。。。 |
62 xio Jan 22, 2019 ```bash function gitall() { git add . -A if [ -n "$1" ]; then git commit -m "$1" else git commit -m "update" fi git push } alias gacp="gitall" ``` |
63 weixiangzhe Jan 22, 2019 我一般快速提交是这样的 gaa && gc -m 'msg' |
64 gaby2018 Jan 22, 2019 楼主应该是 svn 用多了,git 区别还是挺大 |
65 halk Jan 22, 2019 git add -u |
66 msg7086 Jan 22, 2019 顺路说一句,学 Git (项目管理)和学 Git (命令行)是两回事。 你说你学 Git,可以先想想你要学其中的哪一个,还是两个都要。 我还是建议找个好点的 GUI。 |
68 guanhui07 Jan 23, 2019 git add . |
69 kaiser1992 Jan 23, 2019 git add -A |