这节课很清晰啊,应该放在第一个来学....感觉能砍掉一半的学习用时......
有视频+图+讲解;还有小问题用于检测是否理解!
以下是我之前难理解的问题截图:
0. 总结
- project history
- 四个分区:working,staging,local repository,remote repository
- merge的分类:
3.1 Fast forward:
3.2 merge commit: - 从远程库同步信息,fetch和pull的区别
- rebase
1. project history
git管理的是每个commit中的全部文件。(而不仅仅是变化)
2. 四个分区
working tree:工作区的文件
staging area:git add
local repository : 本地仓库,git commit后的去处
remote repository:和远程仓库同步,可以把文件push上去(会记录每一个commit)
3. merge的分类:
3.1 Fast forward:
只有一个master branch,feature会被加到master branch
3.2 merge commit:
注意parent不能更改同一样的东西,可能会导致冲突。
即使stream是可以做fast forward的,但是可以用no off
去限定其做merge commit。下图的C,M含有一样的文件,仅仅是git log记录不同。
4. 从远程库同步信息,fetch和pull的区别
fetch:
拿下来,不改commit
pull:
拿下来并且(可能)merge,同时更改commit
5. rebase
其实就是一种特殊的merge,rebase后stream变为线性(只有一个stream)