美文网首页
Pro Git 学习笔记 (二, 提交)

Pro Git 学习笔记 (二, 提交)

作者: 冯斯特罗 | 来源:发表于2017-03-07 11:00 被阅读11次

    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
    

    相关文章

      网友评论

          本文标题:Pro Git 学习笔记 (二, 提交)

          本文链接:https://www.haomeiwen.com/subject/tahugttx.html