代码改变世界

git实用心得

2022-03-31 00:40  Spiderman25  阅读(22)  评论(0)    收藏  举报

版本1

未添加:1(白)2(白)3(白)
index:123
commit:123

添加4文件
未添加:1(白)2(白)3(白)4(红)
index:123
commit:123

添加5文件
未添加:1(白)2(白)3(白)4(红)5(红)
index:123
commit:123

跟踪文件4
未添加:1(白)2(白)3(白)4(绿)5(红)
index:123
commit:123

修改文件3
未添加:1(白)2(白)3'(蓝)4(绿)5(红)
index:123
commit:123

添加到index和commit(版本2)
未添加:1(白)2(白)3'(白)4(白)5(红)
index:123'4
commit:123'4

Mixed:文件不退、index退、commit退
未添加:1(白)2(白)3'(蓝)4(红)5(红)
index:123
commit:123

Soft:文件不退、index不退、commit退
未添加:1(白)2(白)3'(蓝)4(绿)5(红)
index:123'4
commit:123

Hard:文件退、index退、commit退
未添加:1(白)2(白)3(白)5(红)
index:123
commit:123

stash changes unstash changes
把修改过的文件记录下来,注意,这只会记录文件的内容而不是主记改了哪些内容。对应分支的删除不会影响到这个changes,并且可以应用到各个分支,当应用时,会拿changes里的每个文件与分支中的文件比较,如果有不一样的,会有显示,可以一个一个对比地apply,也可以直接unstash changes。如果分支上的内容与changes的内容一样,就不会修改。

cherry-pick
可以只选一个commit id,也可以选一个区间,意思就是把这些修改应用到当前分支,例如有dev分支(从master上分的支)上有ABCD这些commit id,如果A表示添加文件A,如果B表示添加文件B,如果C表示添加文件C,如果D表示添加文件D,现在选中BC应用到master分支上,那么当前分支就会新增BC这些文件,AD这些提交就会被忽略掉。

git所有的记录都是记录当前文件的内容,而不是记录修改了什么内容!!!!!