0
点赞
收藏
分享

微信扫一扫

[003]深入理解Git 子命令 | GitGuide

1kesou 2022-02-14 阅读 52
gitgithub

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 \*~

举报

相关推荐

0 条评论