Py学习  »  Git

Git 游戏攻略(上篇)- 基础&高级&整理提交记录

张风捷特烈 • 5 年前 • 523 次点击  
阅读 276

Git 游戏攻略(上篇)- 基础&高级&整理提交记录

一个学习git的网站,本文便是攻略。看一个个对话框也怪费时间的,整理一篇出来,看得清晰点。

一、基础篇:循序渐进地介绍 Git 主要命令

1. Git Commit

如果说一个项目开发过程中所有的提交记录构成一个树,那么commit 命令就是树的一个个节点。首先游戏界面是这样的,第一关要求我们提交两次,也就是创建两个节点。


git commit -m "提交记录,创建节点c2": 执行后就创建了c2节点


git commit -m "提交记录,创建节点c3": 执行后就创建了c3节点

OK ,你成功通过第一副本的第一关卡


2. Git Branch

如果说commit 提交出一个个节点,一直下去,那他就是一柱擎天。树嘛,总是要开枝散叶,branch 就能让它发一个枝


git branch bugFix:这样我们的树就在master中发芽了,但也只是萌发


git checkout bugFix:通过checkout切换到当前枝,然后bugFix枝就可以生长了


虽然关卡,这里就结束了,不过为了更形象,这里在bugFix枝中提交一次看看


3. Git Merge

当一个bug被修复后,一条枝的使命就完成了,这时就可以将它合并到主支上。
该副本过程是新建一个分支,然后将其合并到主支上。


git checkout -b bugFix: 可以直接checkout -b来创建分支并切至


git commit -m "修复bug":当bug修复完毕,就可以将其提交


git checkout master:然后切回主支


git commit -m "bug修复完毕,主线提交":在主支提交后出现c3节点


git merge bugFix: 通过merge命令可以指定分支合并到当前支m主分支会产生c4


4. Git rebase

第二种合并分支的方法是 git rebase。Rebase实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。

git checkout -b bugFix
git commit -m "修复bug"
git checkout master
git commit -m "bug修复完毕,主线提交"
git checkout bugFix
git rebase master
复制代码


二、高级篇

HEAD 总是指向当前分支上最近一次提交记录。
复制代码
1.分离HEAD : 从 bugFix 分支中分离出 HEAD 并让其指向一个提交记录

使用checkout 可以切换到一个节点,此时记录头HEAD指向该节点

git checkout C4: 记录头HEAD指向C4


虽然该副本就此结束,但是我还是忍不住再提交一个记录看看,可见生成了C5并且头下移


2.相对引用^

每个节点都有一个SHA1值与之对应,而我们可以通过该SHA1值回到某个节点,但SHA1太长了,可以使用^上移一步。
该副本需要:切换到 bugFix 的父节点,初始如下:


git checkout bugFix^:切换到 bugFix 的父节点


虽然该副本就此结束,但是我还是忍不住再提交一个记录看看,可见下该头之下生成了C5并且头下移


3.相对引用~

如果要移动多步,用^就比较繁琐,这时可以使用~来指定上移多少步
该副本需要:移动 HEAD,master 和 bugFix 到目标所示的位置。

可见结果中master指到C6,bugFix移到C0,HEAD指向C1


git branch -f master C6:会将 master 分支强制指向C6


git checkout HEAD~1:会将头标上移一个到C1


git branch -f bugFix HEAD~1: 会将 bugFix 分支强制指向头标的上一位,即C0。本关通过。


4.撤销变更
git reset 通过把分支记录回退几个提交记录来实现撤销改动(远程分支是无效)
git revert 为了撤销更改并分享给别人,需要使用 git revert
复制代码

该副本需要:分别撤销 local(本地) 分支和 pushed(远程) 分支上的最近一次提交。 初始如下:


git reset HEAD~1 :local(本地) 分支撤销一步到达C1


git checkout pushed:将分支切到pushed(远程) 分支


git revert HEAD: 此时 C2' 的状态与 C1 是相同的,达到撤销目的

Ok,这样你就会了Git的90%,就像天才是百分之九十九的努力和百分之一的灵感,然而那百分之一却是你最大的门槛....


三、整理提交记录

1.Git cherry-pick
git cherry-pick <提交号>...
如果你想将一些提交复制到当前所在的位置(HEAD)下面的话,记住 cherry-pick 
复制代码

该副本需要: 将三个分支中的提交记录复制到 master 上,下面看起来挺复杂,不过别怕:


git cherry-pick C3 C4 C7: 将 C3 C4 C7复制到,当前所在的位置(master)

怎么样,就这么简单。


2.Git rebase
你知道录提交记录的SHA1值时, 用 cherry-pick 再好不过。
but, 但是如果不清楚你想要的提交记录的哈希值呢? 记住: rebase

交互式 rebase 指的是使用带参数 --interactive 的 rebase 命令, 简写为 -i
复制代码

该副本需要:将C3,C5,C4节点依次拷贝至C1下


git rebase -i overHere:就可以打开一个交互面板。


OK ,讲得也挺多的,之后的知识。下篇见,Bye。以前也写过一篇:杂篇:一首诗认识[- Git -]

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/45330
 
523 次点击