Git学习

0. 简介

本篇笔记主要是对在learn git网站上学习的记录。

平时也详细学习过Git的各种命令,但是对各种操作的理解并不是特别深刻,这个网站以动画方式进行教学,感觉效果很好,因此做一篇学习笔记,供以后参考。

第一部分:主要命令

1. 基础篇

1.1 git commit

 

1.2 git branch

 

 

1.3 git merge

 

因为 master 继承自 bugFix,Git 什么都不用做,只是简单地把 bugFix 移动到 master 所指向的那个提交记录。

 

1.4 git rebase

 

由于 bugFix 继承自 master,所以 Git 只是简单的把 master 分支的引用向前移动了一下而已。

 

2. 高级篇

2.1 分离HEAD

 

 

2.2 相对引用(^)

 

2.3 相对引用(~)

 

2.4 强制修改分支位置

 

如果不指定将要移动到的位置,默认为移至当前分支。

2.5 撤销变更

 

虽然在你的本地分支中使用 git reset 很方便,但是这种“改写历史”的方法对大家一起使用的远程分支是无效的哦!

为了撤销更改并分享给别人,我们需要使用 git revert

 

 奇怪!在我们要撤销的提交记录后面居然多了一个新提交!这是因为新提交记录 C2' 引入了更改 —— 这些更改刚好是用来撤销 C2 这个提交的。也就是说 C2' 的状态与 C1 是相同的。

 revert 之后就可以把你的更改推送到远程仓库与别人分享啦。

3. 移动提交记录

3.1 git cherry-pick

 

3.2 互交式rebase

 

4. 杂项

4.1 只提取一个记录

 

git rebase -i HEAD~3

 git branch -f master

 

4.2 提交的技巧#1

 

git rebase -i HEAD~2

git commit --amend

git rebase -i HEAD~2

git branch -f master

4.3 提交的技巧#2

git checkout master

git cherry-pick C2

git commit --amend

git cherry-pick C3

4.4 git tag

 

 

4.5 git describe

 

 

5. 高级话题

5.1 多次rebase

目标:

git rebase master bugFix

git rabase bugFix side

git rebase side another

git rebase another master

 5.2 两个父节点

 

 

目标:

 

git branch bugWork HEAD~^2~1

 5.3 纠缠不清的分支

目标:

git checkout one

git cherry-pick C4 C3 C2

git checkout two

git cherry-pick C5 C4 C3 C2

git branch -f three C2

第二部分:远程操作

6. Push & Pull

6.1 git clone

 

6.2 远程分支

git commit

 

git checkout o/master

git commit

6.3 git fetch

 

 6.4 git pull

 

git pull的结果与此完全相同。

 

6.5 模拟团队合作

远程仓库:

克隆代码:git clone

团队成员提交代码:git fakeTeamwork master 2(模拟)

本地修改代码并提交:git commit

更新本地代码:git pull

6.6 git push

注意origin/master分支的变化。

 

6.7 偏离的提交历史

 

6.8 日常工作流程

克隆远程代码:git clone

团队成员提交代码:git fakeTeamwork master 1

本地修改代码并提交:git commit

更新本地代码:git pull --rebase

提交代码:git push

7. 关于 origin 和它的周边

7.1 推送主分支

目标:

git fetch

git rebase o/master side1

git rebase side1 side2

git rebase side2 side3

git rebase side3 master

git push

 

posted @ 2018-09-17 10:25  IUNI_JM  阅读(57)  评论(0)    收藏  举报