比如我想 git 跟踪目录内所有文件,在修改多个文件后只需要 git commit 一次就行了。
现在每次 git commit 前都要用 git add 添加下文件,太烦了吧。还要先 git status 查看下修改了哪些文件,又添加了几个文件。
又比如自动跟踪已 git add 过的文件,防止修改文件名后忘了 push 那个文件。
我刚开始学 git 遇到的问题有点多。
目前还不知道怎么查看仓库内的文件,百度找了半天没找到我要得。
比如我想 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 Jan 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
|