Git如果用不好,那种痛苦 ……,会天天被PM,团队成员各种刁,所以,还是要好好学好git。下面说几点初学者遇到的问题。
1,某些文件不想被git跟踪管理,比如.net开时的 bin,obj 等
场景一:项目首次加入git 时,如何忽略
首先如果你是新建项目,最好在项目的根目录下添加一个.gitignore文件,这个文件中定义规则,忽略不想被git跟踪的文件。那么问题来了,这个文件里边写什么?不要慌,已经有各种项目的模板了。下面是是git中模板的demo。
https://github.com/github/gitignore
从上图可以看出有很多项目的gitignore文件,选择自己项目匹配的gitignore文件,并下载粘贴到项目根目录下面,以vs为例,下载VisualStudio.gitignore文件,并重命名为.gitignore。如果你在window 下双击修改为.gitignore,那肯定会失败,window 会提示“必须键入文件名”,这个时候,可以打开命令行,并cd 到当前目录,用dos 命令更改名称。
rename VisualStudio.gitignore .gitignore
此时, 你已经添加了排除bin,obj,packages 等的.gitignore文件,这个时候,你执行git status,你就会发现git并没有把bin,obj,packages跟踪,只需要把代码push到你的分支上即可,如果你想要push 的远程分支是master,就执行如下命令:
git add .
git push origin master
到此,新建项目就可以排除你不想提交的文件了。
如果自己想添加其不想被git跟踪的文件,可以打开.gitignore编辑,把自己想要的文件加进去即可,至于规则,可以google一下,很简单的。
场景二:项目首次加入git时,忘记增加.gitignore文件,现在一些不想被跟踪的文件已经提交上去了。
对于已经被git 跟踪的文件,如果直接添加.gitignore文件,并在其中添加了排除规则,此时如果直接 提交,是没有效果的。
git add .
git commit -m"some comment"
那需要怎么做呢?
首先,还是添加.gitignore文件,并确认在排除规则内。
其次,要从缓存中清空,使用 下面的语句,清空所有缓存
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
最后,再提交上去了。
git add .
git commit -m"add .gitignore, and del bin,obj..."
2,我的文件已经全部commit 了,为什么有些还是红色感叹号呀?
这个时候,首先你用 git status 查看一下是否真的提交
如果确定是 "nothing to commit ,working tree clean"说明你真的是提交了。此时,咋整?非常简单,很可能是 可能是 缓存引起的。如果你用的客户端工具是TortoiseGit,那么你就打开window任务管理,找到这个进程,结束它,再到git文件夹下刷新一下就好了。