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

git杂记-记录每次更新到仓库的更多相关文章

  1. git学习——记录每次更新到仓库

    记录每次更新到仓库 工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪.已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或 ...

  2. 2.1获取Git仓库-2.2记录每次更新到仓库

    2.1 获取 Git 仓库 获取 Git 仓库通常有两种方式 将尚未进行版本控制的本地目录转换为 Git 仓库: 从其它服务器 克隆 一个已存在的 Git 仓库. 在已存在目录中初始化仓库 首先进入该 ...

  3. Git(6)-- 记录每次更新到仓库(git clone、status、add、diff、commit、rm、mv命令详解)

    @ 目录 1.克隆现有仓库:git clone 2.检查当前文件状态 :git status 3.跟踪新文件:git add 4.暂存已修改的文件:git add 5.状态简览: git status ...

  4. Git 系列教程(5)- 记录每次更新到仓库

    文件状态 你工作目录下的每一个文件只有两种状态:tracked 或 untracked tracked 已跟踪 tracked 的文件是指那些被纳入了版本控制的文件 在上一次快照中有它们的记录,在工作 ...

  5. git更新到仓库

    记录每次更新到仓库 现在我们手上已经有了一个真实项目的 Git 仓库,并从这个仓库中取出了所有文件的工作拷贝.接下来,对这些文件作些修改,在完成了一个阶段的目标之后,提交本次更新到仓库. 请记住,工作 ...

  6. Git 执行 「fork 出来的仓库」和「最新版本的原仓库」内容同步更新

    当我们在 GitHub 上 fork 出一个仓库后,如果原仓库更新了,此时怎样才能保证我们 fork 出来的仓库和原仓库内容一致呢?我们一般关注的是仓库的 master(主干分支)的内容,通过以下步骤 ...

  7. Git 提交更新到仓库(分布式版本控制系统)

    1.Git 文件生命周期 工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪. 已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改 ...

  8. Git学习记录--git仓库

    Git是一款强大的版本控制工具,与svn相比git的分布式提交,本地仓库等在使用时确实比较方便.当然两者之间各有优劣,我在这里不多做比较.由于之前少有接触git,只是零星大致地了解一点,所以找时间系统 ...

  9. git 学习记录—— git 中的仓库、文件状态、修改和提交操作等

    最近开始学习使用版本控制工具  git .学习方式主要通过阅读 git 网站上的 Pro git 和动手实践,使用的系统为 Ubuntu16.04LTS,以及 Windows 8.1. 本文主要关注 ...

随机推荐

  1. 各大浏览器相继发布声明将停止支持 TLS 1.0 和 TLS 1.1 !

    简评:TLS 1.0 发布至今已将近 20 周年即将寿终正寝,期间为我们保障了千亿次甚至万亿次的数据请求安全. TLS 工作组几个月前发布声明文件弃用 TLS 1.0 和 TLS 1.1. 昨天,包括 ...

  2. Oracle递归查询(start with)

    写代码时碰到要弄清楚Oracle的role之间的传递关系,就是有role A的话,可以通过grant A to B,把A赋予给B,又通过grant B to C .那我想知道所有role中,有哪些ro ...

  3. 机器学习笔记(四)--sklearn数据集

    sklearn数据集 (一)机器学习的一般数据集会划分为两个部分 训练数据:用于训练,构建模型. 测试数据:在模型检验时使用,用于评估模型是否有效. 划分数据的API:sklearn.model_se ...

  4. 实现函数 ToLowerCase()

    /** * 实现函数 ToLowerCase(),该函数接收一个字符串参数 str, 并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. * 输入: "Hello" * ...

  5. 多线程atomicInteger

    并发编程的3个重要概念 1.原子性: 一个操作或者多个操作,要么全部成功,要么全部失败 1.java中保证了基本数据类型的读取和赋值,保证了原子性,这些操作不可终端 a=10 原子性 b=a 不满足 ...

  6. [转] etcd 搭建与使用

    [From] https://blog.csdn.net/ShouTouDeXingFu/article/details/81167302 etcd 1.下载etcd二进制文件包         ht ...

  7. Mac无法将自定义图标添加到Launchpad的替代方案(桌面双击Shell运行)

    截止在几天之前的Mac OS版本都无法实现将自定义图标添加到Launchpad.我使用的是10.12. 替代的思路就是在桌面新建一个Shell文件,然后使软件在后台运行,最后就是双击Shell文件能自 ...

  8. Mac下在Shell终端下使用open快速打开窗口文件夹

    Ubuntu下可以使用nautilus打开,但是在Mac替代的是open. 打开当前路径的窗口 oepn . 打开其他窗口 open /dirname 其实open不只可以打开窗口,应用同样支持. 关 ...

  9. Visual Studio 跨平台開發實戰(4) - Xamarin Android 基本控制項介紹 (转帖)

    前言 不同於iOS, Xamarin 在Visual Studio中針對Android, 可以直接設計使用者介面. 在本篇教學文章中, 筆者會針對Android的專案目錄結構以及基本控制項進行介紹, ...

  10. Python中utf-8与utf-8-sig两种编码格式的区别

    As UTF-8 is an 8-bit encoding no BOM is required and anyU+FEFF character in the decoded Unicode stri ...