Git Add
用了一个星期的git add,直到今天才意识到它的用途比想象中更广。
Git Add 是一个多功能命令行。
用途
1. 开始跟踪新文件(begin tracking)
文件会有两种状态,一种是未跟踪的untracked,表明Git并不知道它的存在;另一种是tracked,是Git知道它的存在的。而已经tracked 的文件又可以有其他三种状态:未修改unmodified,已修改modified 和已暂存staged。
2. 将已跟踪文件放到暂存区(stage file)
3. 合并时将有冲突的文件标记为已解决的状态。
其中第1点直接被我忽视,主要是没有理解清楚文件的状态。第3点目前还未接触到相关的案例来实现这个功能。
注意事项:
运行git add 后又修改了的文件,会在git status中同时显示两种状态,to be commited 还有unstaged。需要重新运行git add 将修改提交,否则commit后只能显示上次修改的结果,而不是最新修改的结果。
假如文件已经被追踪过,然后又修改了,可以跳过staged区,可以一步到位committed。但是容易将不必要的文件一并添加,需要谨慎使用:
git commit -a -m "备注信息"
Git Rm
本质:将文件从暂存区移除,不再被Git跟踪。
用途:
1.手动删除目录中的一份文件后,需要将它从Git的已跟踪清单中移除,即在Git的工作目录中删除指定文件,不会出现在未跟踪清单中。
#手动删除后,会在unstage中出现
rm file1
#利用git删除后会在to be commited中出现
git rm file1
2.将文件从git 仓库中删除,即暂存区移除,但仍保留在当前工作目录中,即仍保留在磁盘中,不被Git继续跟踪。
git rm --ached file1
3. 删除文件/目录名称
比如删除log目录下的拓展名为 .log的文件,注意反斜杠\是Git自己特有的文件模式拓展匹配方式
git rm log/\*.log
比如删除当前目录下的以~结尾的文件
git rm \*~