打开hello.txt,修改为下面的样子
1.(master1)
2.(master2)
3.(master3)
4.(master4)
-
-
-
-
打开morning.txt文件,修改为下面的样子
-
-
5.(master5)
-
-
-
9.(master9)
10.(master10)
打开afternoon.txt,修改为下面的样子
1.(master1)
-
-
-
5.(master5)
-
-
-
-
10.(master10)
$ git add -i
$ git add --interactive
进入交互暂存文件模式,显示的信息比git status详细一点,
左边 staged 显示文在是否在staging(暂存区,也叫Index)进行存储
右边 unstaged path 显示文件被修改的行数和在仓库中的路径
可以看到,afternoon、hello、morning三个文件都有增加或减少啦几行
目前没有一个文件加入Index区域
2
u
输入`2`或者`u`,列出已经修改,可以添加到Index的文件
1,2
输入序号,选需要添加到Index的文件
输出信息中,1,2两个文件左边有`*`,表示这两个文件被选中,会被stage(就是添加到Index)
Enter
直接回车,刚才选中的文件就会被staged,输出信息,显示2个文件被添加啦
1
输入1查看当前状态,左边`staged`一栏,序号为:1、2的两个文件已经staged
右边`unstaged path`中,两个文件状态都变成`nothing`
3 or r
1
输入1将那个文件取消staged状态,输出列表里,被选的文件的序号左边有`*`号
Enter
1
然后再选1来查看状态,现在只有hello.txt添加到index区域啦
6 or d
1
选择第一个文件,跟使用 `git diff --cached`是差不多的,就是查看当前staged的文件与HEAD所指向branch的最后一个commit中的同一文件进行比较。
暂存补丁(就是只stage一个文件中多处修改中的部分修改) Staging Patches 下载仓库
打开afternoon.txt文件,在改成上面这个样子并保存
$ git add -i
$ git add --interactive
5
p
1
Enter
输入`5`或`p`来进入暂存补丁模式
输入1选择第一个文件afternoon.txt
然后直接回车,列出啦三处修改中的第一处
?
可以有很多选项,来选择要操作的部分,输入?获得详细帮助
y
输出`y`确认stage这部分修改,输出结果自动跳到啦下一处修改
输入q
,不暂存剩下的两处修改,退出部分暂存(staging patches)模式
q
1
输入1查看状态,可以看到,现在afternoon.txt文件有一部分修改staged啦,还有一部分没有staged
q
git commit -m '提交afternoon的第一处修改'
git add --patch
git add -p
上面的命令直接进入`暂存补丁`模式,用法跟上面一样的。
可以部分重置,部分检出,部分存储,以后再整理吧
reset --patch
checkout --patch
stash save --patch