可以看到这个命令以和平时非常不同的视图显示了暂存区,基本上与 git status 是相同的信息,但是更简明扼要一些,它将暂存的修改列在左侧,未暂存的修改列在右侧。在这块区域后是“Commands”命令区域,可以做一些工作,包括暂存文件、取消暂存文件、暂存文件的一部分、添加未被追踪的文件、显示暂存内容的区别。
二、暂存与取消暂存文件
如果在 What now> 提示符后键入 u 或 2(更新),它会问我们想要暂存哪个文件:
What now> u
staged unstaged path
1: unchanged +0/-1 TODO
2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
Update>>
diff --git a/lib/simplegit.rb b/lib/simplegit.rb
index dd5ecc4..57399e0100644--- a/lib/simplegit.rb
+++ b/lib/simplegit.rb
@@ -22,7+22,7 @@ class SimpleGit
end
def log(treeish ='master')-command("git log -n 25 #{treeish}")-command("git log -n 30 #{treeish}")
end
def blame(path)
Stage this hunk [y,n,a,d,/,j,J,g,e,?]?
这时有很多选项,输入 ? 显示所有可以使用的命令列表:
Stage this hunk [y,n,a,d,/,j,J,g,e,?]??
y - stage this hunk
n -do not stage this hunk
a - stage this and all the remaining hunks in the file
d -do not stage this hunk nor any of the remaining hunks in the file
g - select a hunk to go to
/- search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
?- print help
通常情况下可以输入 y 或 n 来选择是否要暂存每一个区块, 当然,暂存特定文件中的所有部分或为之后的选择跳过一个区块也是非常有用的。如果只暂存文件的一部分,状态输出可能会像下面这样:
What now>1
staged unstaged path
1: unchanged +0/-1 TODO
2:+1/-1 nothing index.html
3:+1/-1+4/-0 lib/simplegit.rb