lifecycle
lifecycle.png文件 .gitignore 的格式规范如下:
- 所有空行或者以 # 开头的行都会被 Git 忽略。
- 可以使用标准的 glob 模式匹配。
- 匹配模式可以以(/)开头防止递归。
- 匹配模式可以以(/)结尾指定目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
git diff:
命令 | 说明 |
---|---|
git diff | 工作目录中工作区和暂存区域快照之间的差异 |
git diff --cached / git diff --staged(推荐) | 暂存区和版本库之间的差异 |
移除文件
普通删除:
git rm <filename> # 本地和git均会被删除
git commit # 将删除消息推送给版本库
已经提交到暂存区之后删除,用 -f :
这是一种安全特性,用于防止误删还没有添加到快照的数据,这样的数据不能被 Git 恢复。
git rm -f <filename> # 本地删除
git commit # 将删除消息推送给版本库
只删除暂存区,工作区保留,用--cached :
当你想让文件保留在磁盘,但是并不想让 Git 继续跟踪。
当你忘记添加 .gitignore 文件,不小心把一个很大的日志文件或一堆 .a 这样的编译生成文件添加到暂存区时,这一做法尤其有用。
git rm --cached <filename> # 只删除缓存区,本地保留
git commit # 将删除消息推送给版本库
也可以使用 glob 模式
git rm log/\*.log
注意到星号 * 之前的反斜杠 \, 因为 Git 有它自己的文件模式扩展匹配方式,所以我们不用 shell 来帮忙展开。 此命令删除 log/ 目录下扩展名为 .log 的所有文件。 类似的比如:
git rm \*~
该命令为删除以 ~ 结尾的所有文件。
移动文件
git mv file_from file_to
它会恰如预期般正常工作。 实际上,即便此时查看状态信息,也会明白无误地看到关于重命名操作的说明:
git mv README.md README
git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: README.md -> README
其实,运行 git mv 就相当于运行了下面三条命令:
mv README.md README
git rm README.md
git add README
网友评论