Git 本地操作(高层命令)

1、跟踪新文件(暂存)

命令:git add 文件名

作用:跟踪一个新文件

再次运行 git status 命令,会看到 README 文件已被跟踪,并处于暂存 状态: Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: README

只要在 “Changes to be committed” 这行下面的,就说明是已暂存状态。 如果此时提交,那么该文件此时此刻的版本将被留存在历史记录中。在 git add 后面可以指明要跟踪的文件或目录路径。如果是目录的话,就说明要递归跟踪该目录下的所有文件。(译注:其实 git add 的潜台词就是把目标文件快照放入暂存区域,也就是 add file into staged area,同时未曾跟踪过的文件标记为已跟踪。)

2、暂存已修改文件

现在 README 文件都已暂存,下次提交时就会一并记录到仓库。假设此时, 你想要在 README 里再加条注释,重新编辑存盘后,准备好提交。不过且慢,再运行 git status 看看:

 On branch master 
 Changes to be committed:   
 (use "git reset HEAD <file>..." to unstage)         
 new file:   README 
 Changes not staged for commit:   
 (use "git add <file>..." to update what will be committed)   
 (use "git checkout -- <file>..." to discard changes in working directory)         
modified:   README 

README 文件出现了两次!一次算已修改,一次算已暂存,这怎么可能呢?

实际上 Git 只不过暂存了你运行 git add 命令时的版本,如果现在提交,那么提交的是添加注释前的版本,而非当前工作目录中的版本。所以,运行了 git add之后又作了修订的文件,需要重新运行 git add 把最新版本重新暂存起来:

$ git add README 
$ git status

On branch master
Changes to be committed: (use “git reset HEAD …” to unstage) new file: README

3、查看已暂存和未暂存的更新

实际上 git status 的显示比较简单,仅仅是列出了修改过的文件,如果要查看具体修改了什么地方,可以用 git diff 命令.这个命令它已经能解决我们两个问题了:当前做的哪些更新还没有暂存?有哪些更新已经暂存起来准备好了下次提交?

  1. 当前做的哪些更新还没有暂存?
    命令:git diff(不加参数直接输入 git diff)
  2. 有哪些更新已经暂存起来准备好了下次提交?
    命令:git diff –cached 或者 git diff –staged(1.6.1 以上)

4、提交更新

当暂存区域已经准备妥当可以提交时,在此之前,请一定要确认还有什么修改 过的或新建的文件还没有 git add 过,否则提交的时候不会记录这些还没暂存起来的变化。所以,每次准备提交前,先用 git status 看下,是不是都已暂存起来了, 然后再运行提交命令 git commit

命令:git commit

注意:这种方式会启动文本编辑器以便输入本次提交的说明,默认的提交消息包含最后一次运行 git status 的输出,放在注释行里,另外开头还有一空行,供你输入提交说明。完全可以去掉这些注释行, 不过留着也没关系,多少能帮回想起这次更新的内容有哪些。

另外也可以用 -m 参数后跟提交说明的方式,在一行命令中提交更新:
命令:git commit –m “message xxx”

提交时记录的是放在暂存区域的快照,任何还未暂存的仍然保持已修改状态, 可以在下次提交时纳入版本管理。每一次运行提交操作,都是对你项目作一次快照, 以后可以回到这个状态,或者进行比较

5、跳过使用暂存区域

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

git commit -a

6、移除文件

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

  1. 从工作目录中手工删除文件
git status 
On branch master 
Changes not staged for commit:   
(use "git add/rm <file>..." to update what will be committed)   
(use "git checkout -- <file>..." to discard changes in working directory)
deleted:    grit.gemspec 
no changes added to commit (use "git add" and/or "git commit -a")
  1. 再运行 git rm 记录此次移除文件的操作
git status
On branch master 
Changes to be committed:   
(use "git reset HEAD <file>..." to unstage)         
deleted:    grit.gemspec
  1. 最后提交的时候,该文件就不再纳入版本管理了

7、文件改名

git mv file.from file.to 
git status
On branch master 
Changes to be committed:   
(use "git reset HEAD <file>..." to unstage)         
renamed:    README.txt -> README 

其实,运行 git mv 就相当于运行了下面三条命令:

$ mv README.txt README 
$ git rm README.txt 
$ git add README

8、查看历史记录

git log  

在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。完成这个任务最简单而又有效的工具是git log 命令

默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上面。 正如你所看到的,这个命令会列出每个提交的 SHA-1 校验和、 作者的名字和电子邮件地址、提交时间以及提交说明。

git log 参数

git log --pretty=oneline 
git log --oneline 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玳宸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值