Git命令——修改和提交

用于修改和提交的Git命令主要有以下几个:

  1. $ git status      # 检查当前文件状态
  2. $ git add         # 跟踪/暂存文件
  3. $ git diff              # 查看变更内容
  4. $ git commit       # 提交更新
  5. $ git rm            # 移除文件
  6. $ git mv         # 修改文件名

 

1. $ git status

git status 命令可以查看当前工作区及暂存区域中文件的状态。 如果在克隆仓库后立即使用此命令,会看到类似这样的输出:

这说明你现在的工作目录相当干净。换句话说,所有已跟踪文件在上次提交后都未被更改过。 此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪状态的新文件,否则 Git 会在这里列出来。 最后,该命令还显示了当前所在分支,并告诉你这个分支同远程服务器上对应的分支没有偏离。

如果在工作目录下创建一个新文件,再运行git status命令,结果如下:

在状态报告中可以看到新建的文件出现在 Untracked files 下面。 未跟踪的文件意味着 Git 在之前的快照(提交)中没有这些文件;Git 不会自动将之纳入跟踪范围,除非你明明白白地告诉它“我需要跟踪该文件”, 这样的处理让你不必担心将生成的二进制文件或其它不想被跟踪的文件包含进来。

如果修改了工作目录中一个已被跟踪的文件但还未提交,执行git status的结果如下:

 

2. $ git add

git add 命令用于将内容从工作目录添加到暂存区(或称为索引(index)区),以备下次提交。也可以用于跟踪一个新文件,并将其添加到暂存区。git add命令的使用方法主要有以下两种:

(1)$ git add .  # 跟踪/暂存工作目录中所有新增和修改过的文件

在工作目录中添加一个新文件,并修改一个已被跟踪的文件后的状态为:

运行git add .命令后的状态为:

 

(2)$ git add <file>  # 跟踪/暂存工作目录中指定的文件

 

3. $ git diff 

当需要查看任意两棵树的差异时你可以使用 git diff 命令。 此命令可以查看工作目录与你的暂存区的差异(git diff 默认的做法),暂存区域与最后提交之间的差异(git diff --staged),或者比较两个提交记录的差异(git diff master branchB)。

3.1 $ git diff  # 比较的是工作目录中当前文件和暂存区域快照之间的差异

不加参数直接执行git diff命令,可以查看尚未暂存的文件更新了哪些部分,也就是修改之后还没有暂存起来的变化内容。


3.2 $ git diff --staged  # 比较已暂存的将要添加到下次提交里的内容

 

3.3 $ git diff <branch1> <branch2>  # 比较两个提交记录的差异

 

4. $ git commit

git commit 命令将所有通过 git add 暂存的文件内容在数据库中创建一个持久的快照,然后将当前分支上的分支指针移到其之上。每次准备提交前,先用 git status 看下,是不是所有需要提交的修改都已暂存起来了, 然后再运行提交命令 git commit。否则提交的时候不会记录这些还没暂存起来的变化, 这些修改过的文件只保留在本地磁盘。

若不加任何选项执行git commit命令,会启动文本编辑器以便输入本次提交的说明。

可以看到,默认的提交消息包含最后一次运行 git status 的输出,放在注释行里,另外开头还有一空行,供你输入提交说明。

你也可以在 git commit 命令后添加 -m 选项,将提交信息与命令放在同一行,如下所示:

可以看到,提交后它会告诉你,当前是在哪个分支(master)提交的,本次提交的完整 SHA-1 校验和是什么(463dc4f),以及在本次提交中,有多少文件修订过,多少行添加和删改过。

尽管使用暂存区域的方式可以精心准备要提交的细节,但有时候这么做略显繁琐。 Git 提供了一个跳过使用暂存区域的方式, 只要在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤。

 

有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令尝试重新提交:

  • $ git commit --amend

这个命令会将暂存区中的文件提交。 如果自上次提交以来你还未做任何修改(例如,在上次提交后马上执行了此命令),那么快照会保持不变,而你所修改的只是提交信息。文本编辑器启动后,可以看到之前的提交信息。 编辑后保存会覆盖原来的提交信息。例如,你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:

最终你只会有一个提交, 第二次提交将代替第一次提交的结果。

 

5. $ git rm

要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。

  • 格式:$ git rm <file>

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f(译注:即 force 的首字母)。 这是一种安全特性,用于防止误删还没有添加到快照的数据,这样的数据不能被 Git 恢复。

  • 格式:$ git rm -f <file>

如果我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。 换句话说,你想让文件保留在磁盘,但是并不想让 Git 继续跟踪,可以使用--cached 选项。

  • 格式:$ git rm --cached <file>

 

6. $ git mv 

运行 git mv 就相当于运行了下面三条命令(git mv README.md README):

 



 

转载于:https://www.cnblogs.com/shichangxing/p/11397331.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值