zoukankan      html  css  js  c++  java
  • git杂记-记录每次更新到仓库

    1. git status 和 git diff的运用
      1. git status 记录的是关于仓库文件是否有变更,例如是否被修改,是否被添加到暂村区。至于文件更改了什么内容该命令并不关心;
      2. git status -s 输出简短信息;
      3. git diff 记录的是文件到底修改了哪些内容,用来作比较用;
      4. git diff 比较尚未暂存的文件更新了哪些部分;
      5. git diff --cached(1.6.1版本以下)  或  git diff --staged(更高版本) 比较的是暂存区的文件更新了哪些信息;
    2. 忽略文件
      1. 一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。所以要定义一个配置文件告诉git哪些文件不用跟踪;
      2. 配置文件被定义为.gitignore文件;
      3. 规则如下:
        1. 所有空行或者以  开头的行都会被 Git 忽略。  
        2. 可以使用标准的 glob 模式匹配。
        3. 匹配模式可以以(/)开头防止递归。
        4. 匹配模式可以以(/)结尾指定目录。
        5. 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
      4. 例子
        # 文件名后缀为a的文件被忽略
        *.a
        
        # 即使你忽略文件名后缀为a的文件,但是要跟踪lib.a
        !lib.a
        
        # 只忽略当前目录中的TODO文件,subdir / TODO文件将不被忽略
        /TODO
        
        # 忽略build目录下的所有文件
        build/
        
        # 忽略doc / notes.txt,doc / server / arch.txt将不被忽略
        doc/*.txt
        
        # 忽略doc目录下的所有.pdf文件
        doc/**/*.pdf
    3. 提交文件
      1. 每次提交文件是先用git status或git status -s查看一下版本库中的哪些文件被修改过,必要时再用git diff 或 git diff --staged比较一下被修改的文件到底改了哪些部分。
      2. 我们都知道以下命令只会把暂存区的文件快照提交,未纳入暂存区的文件都不会被提交。
        git commit -m "哈哈哈,我要被提交了"
      3. 如果对自己的修改自行失足并想快速地提交(当然这并不提倡),可以用以下命令跳过暂存区进行提交
        git commit -a -m '哈哈哈,我直接提交的。我不用进入暂存区哦'
    4. 移除文件
      1. 正常删除
        git rm 文件名
      2. 如果删除之前修改过并且已经放到暂存区域的话,用暴力删除(force)
        git rm -f 文件名
      3. 如果只想删除暂存区和版本库的数据,而在本地保留。用--cached选项
        git rm --cached 文件名
      4. 匹配删除(glob 模式)
        git rm log/*.log
    5. 文件更名
      1. 命令
        git mv file_from file_to
      2. 相当于
        mv README.md README
        git rm README.md
        git add README
  • 相关阅读:
    C++ map详解
    C++ vector和list的区别
    C++静态存储,动态存储
    C++文件输入和输出
    C/C++数组名与指针的区别详解
    C++运算符重载详解
    poj3177Redundant Paths tarjan缩点
    C++编译过程与内存空间
    [JAVA · 0基础]:19.容器类
    FFmpeg总结(六)AV系列结构体之AVPacket
  • 原文地址:https://www.cnblogs.com/oufeng/p/6656640.html
Copyright © 2011-2022 走看看