#学习笔记# coursera Version Control with Git

这节课很清晰啊,应该放在第一个来学....感觉能砍掉一半的学习用时......

有视频+图+讲解;还有小问题用于检测是否理解!

以下是我之前难理解的问题截图:

0. 总结

  1. project history
  2. 四个分区:working,staging,local repository,remote repository
  3. merge的分类:
    3.1 Fast forward:
    3.2 merge commit:
  4. 从远程库同步信息,fetch和pull的区别
  5. rebase

1. project history

git管理的是每个commit中的全部文件。(而不仅仅是变化)

#学习笔记# coursera Version Control with Git_第1张图片
git-commit

2. 四个分区

working tree:工作区的文件
staging area:git add
local repository : 本地仓库,git commit后的去处
remote repository:和远程仓库同步,可以把文件push上去(会记录每一个commit)


#学习笔记# coursera Version Control with Git_第2张图片
project-directory
#学习笔记# coursera Version Control with Git_第3张图片
git-status
#学习笔记# coursera Version Control with Git_第4张图片
git-basic-1
#学习笔记# coursera Version Control with Git_第5张图片
remote-respository
#学习笔记# coursera Version Control with Git_第6张图片
add-clone

3. merge的分类:

3.1 Fast forward:

只有一个master branch,feature会被加到master branch


#学习笔记# coursera Version Control with Git_第7张图片
fast-forward
#学习笔记# coursera Version Control with Git_第8张图片
ff-cannot

3.2 merge commit:

注意parent不能更改同一样的东西,可能会导致冲突。


#学习笔记# coursera Version Control with Git_第9张图片
merge-commit

即使stream是可以做fast forward的,但是可以用no off去限定其做merge commit。下图的C,M含有一样的文件,仅仅是git log记录不同。

#学习笔记# coursera Version Control with Git_第10张图片
no-off

4. 从远程库同步信息,fetch和pull的区别

fetch:
拿下来,不改commit

pull:
拿下来并且(可能)merge,同时更改commit

#学习笔记# coursera Version Control with Git_第11张图片
git-fetch
#学习笔记# coursera Version Control with Git_第12张图片
git-pull

5. rebase

其实就是一种特殊的merge,rebase后stream变为线性(只有一个stream)


#学习笔记# coursera Version Control with Git_第13张图片
rebase
#学习笔记# coursera Version Control with Git_第14张图片
rebase-2

你可能感兴趣的:(#学习笔记# coursera Version Control with Git)