7.2 Git Tools - Interactive Staging (交互式暂存文件的使用)

初始化仓库下载

打开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
7.2 Git Tools - Interactive Staging (交互式暂存文件的使用)_第1张图片
进入交互暂存文件模式,显示的信息比git status详细一点, 左边 staged 显示文在是否在staging(暂存区,也叫Index)进行存储 右边 unstaged path 显示文件被修改的行数和在仓库中的路径 可以看到,afternoon、hello、morning三个文件都有增加或减少啦几行 目前没有一个文件加入Index区域
2
u
7.2 Git Tools - Interactive Staging (交互式暂存文件的使用)_第2张图片
输入`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 
7.2 Git Tools - Interactive Staging (交互式暂存文件的使用)_第3张图片
输入3或者r,进入Revert状态,列出文件列表
1
输入1将那个文件取消staged状态,输出列表里,被选的文件的序号左边有`*`号
Enter 
输出信息,将选中的文件从Index区域移除
1
然后再选1来查看状态,现在只有hello.txt添加到index区域啦
6 or d
选择6或者d,列出已经staged的文件
1
7.2 Git Tools - Interactive Staging (交互式暂存文件的使用)_第4张图片
选择第一个文件,跟使用 `git diff --cached`是差不多的,就是查看当前staged的文件与HEAD所指向branch的最后一个commit中的同一文件进行比较。

暂存补丁(就是只stage一个文件中多处修改中的部分修改) Staging Patches 下载仓库

7.2 Git Tools - Interactive Staging (交互式暂存文件的使用)_第5张图片
打开afternoon.txt文件,在改成上面这个样子并保存
$ git add -i
$ git add  --interactive
5
p
1
Enter
7.2 Git Tools - Interactive Staging (交互式暂存文件的使用)_第6张图片
输入`5`或`p`来进入暂存补丁模式 输入1选择第一个文件afternoon.txt 然后直接回车,列出啦三处修改中的第一处
?
7.2 Git Tools - Interactive Staging (交互式暂存文件的使用)_第7张图片
可以有很多选项,来选择要操作的部分,输入?获得详细帮助
y

7.2 Git Tools - Interactive Staging (交互式暂存文件的使用)_第8张图片
输出`y`确认stage这部分修改,输出结果自动跳到啦下一处修改

输入 q,不暂存剩下的两处修改,退出部分暂存(staging patches)模式

q
1
7.2 Git Tools - Interactive Staging (交互式暂存文件的使用)_第9张图片
输入1查看状态,可以看到,现在afternoon.txt文件有一部分修改staged啦,还有一部分没有staged
q
git commit -m '提交afternoon的第一处修改'
7.2 Git Tools - Interactive Staging (交互式暂存文件的使用)_第10张图片
q退出交互模式,然后commit提交就可以啦
git add --patch
git add -p
7.2 Git Tools - Interactive Staging (交互式暂存文件的使用)_第11张图片
上面的命令直接进入`暂存补丁`模式,用法跟上面一样的。

可以部分重置,部分检出,部分存储,以后再整理吧

reset --patch
checkout --patch
stash save --patch

你可能感兴趣的:(7.2 Git Tools - Interactive Staging (交互式暂存文件的使用))