Git 暂存和撤回文件

暂存和撤回文件
如果你在What now>的提示后输入2或者u,这个脚本会提示你那些文件你想要暂存:

Update>>

如果想暂存TODO和index.html,你可以输入相应的编号:

[code]Update>> 1,2
staged unstaged path

  • 1: unchanged +0/-1 TODO
  • 2: unchanged +1/-1 index.html
    3: unchanged +5/-1 lib/simplegit.rb
    Update>>[/code]

每个文件旁边的*表示选中的文件将被暂存。如果你在update>>提示后直接敲入回车,Git会替你把所有选中的内容暂存:

[code]Update>>
updated 2 paths

*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 1
staged unstaged path
1: +0/-1 nothing TODO
2: +1/-1 nothing index.html
3: unchanged +5/-1 lib/simplegit.rb[/code]

现在你可以看到TODO和index.html文件被暂存了同时simplegit.rb文件仍然未被暂存。如果这时你想要撤回TODO文件,就使用3或者r(代表revert,恢复)选项:

[code]*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 3
staged unstaged path
1: +0/-1 nothing TODO
2: +1/-1 nothing index.html
3: unchanged +5/-1 lib/simplegit.rb
Revert>> 1
staged unstaged path

  • 1: +0/-1 nothing TODO
    2: +1/-1 nothing index.html
    3: unchanged +5/-1 lib/simplegit.rb
    Revert>> [enter]
    reverted one path[/code]

再次查看Git的状态,你会看到你已经撤回了TODO文件

*** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> 1 staged unstaged path 1: unchanged +0/-1 TODO 2: +1/-1 nothing index.html 3: unchanged +5/-1 lib/simplegit.rb

要查看你暂存内容的差异,你可以使用6或者d(表示diff)命令。它会显示你暂存文件的列表,你可以选择其中的几个,显示其被暂存的差异。这跟你在命令行下指定git diff --cached非常相似:

[code]*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 6
staged unstaged path
1: +1/-1 nothing index.html
Review diff>> 1
diff --git a/index.html b/index.html
index 4d07108…4335f49 100644
— a/index.html
+++ b/index.html
@@ -16,7 +16,7 @@ Date Finder

...

-

contact : support@github.com

+
contact : email.support@github.com

[/code] 通过这些基本命令,你可以使用交互式增加模式更加方便地处理暂存区。 REF:[url]http://cwiki.ossez.com/pages/viewpage.action?pageId=7045534[/url]