第七章 Git操作7.3记录对存储库的更改

记录对存储库的更改

  • git status

输出非常全面

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
  • git status -s或者git status --short从命令中得到的输出要简单得多:
$ git status -s
 M README
MM Rakefile
A  lib/git.rb              //已添加到暂存区域的新文件
M  lib/simplegit.rb       //已修改的文件
?? LICENSE.txt        //未跟踪的

A: 增加的文件.
C: 文件的一个新拷贝.
D: 删除的一个文件.
M: 文件的内容或者mode被修改了.
R: 文件名被修改了。
T: 文件的类型被修改了。
U: 文件没有被合并(你需要完成合并才能进行提交)
X: 未知状态。(很可能是遇到git的bug了,你可以向git提交bug report)

忽略文件(.gitignore)

# ignore all .a files
*.a

# but do track lib.a, even though you're ignoring .a files above
!lib.a

# only ignore the TODO file in the current directory, not subdir/TODO
/TODO

# ignore all files in any directory named build
build/

# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt

# ignore all .pdf files in the doc/ directory and any of its subdirectories
doc/**/*.pdf

查看分阶段和非分阶段的更改

$ git status
$ git diff
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 8ebb991..643e24f 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -65,7 +65,8 @@ branch directly, things can get messy.
 Please include a nice description of your changes when you submit your PR;
 if we have to read the whole diff to figure out why you're contributing
 in the first place, you're less likely to get feedback and have your change
-merged in.
+merged in. Also, split your changes into comprehensive chunks if your patch is
+longer than a dozen lines.

 If you are starting to work on a particular area, feel free to submit a PR
 that highlights your work in progress (and note in the PR title that it's

该命令将工作目录中的内容与暂存区中的内容进行比较。结果告诉您尚未上演的更改。
如果您想查看下一次提交的阶段,可以使用git diff --staged。此命令将您分阶段的更改与上一次提交进行比较:

$ git diff --staged
diff --git a/README b/README
new file mode 100644
index 0000000..03902a1
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+My Project

重要的是要注意,git diff它本身并不会显示自上次提交以来所做的所有更改-仅显示尚未暂存的更改。如果您已上演所有更改,git diff则不会输出任何信息。

暂存修改

$ git add CONTRIBUTING.md

提交更改

$ git commit

删除文件

$ rm PROJECTS.md  //只是删除本地仓库工作目录中的文件,远程仓库不变
$ git rm PROJECTS.md   //分阶段删除文件,下次提交时,文件将消失并且不再被跟踪,
												//远程仓库和本地仓库都删除

如果您忘记向.gitignore文件中添加某些内容并意外地将其暂存,例如大型日志文件或一堆.a编译文件,则此功能特别有用。为此,请使用以下–cached选项:

$ git rm --cached README//删除 暂存区或分支上 的文件, 但本地又需要使用, 只是不希望这个文件被版本控制,下次commit的时候会修改git仓库,但是本地的文件还是保留

文件重命名

$ git mv file_from file_to

等效于:

$ mv README.md README
$ git rm README.md
$ git add README
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值