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

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 -]


四、写个小例子

经过上篇,你一定对git 有所了解了,本文不再是攻略,而是一个实际测试:

1.初始化git仓库

git init mixed: 将mixed文件夹使用git管理

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


2.添加文件到git仓库

git add HelloWorld.java:添加文件,git add .会添加文件夹内所有文件

---->[在mixed文件夹创建HelloWorld.java文件]----
public class HelloWorld {

public static void main(String[] args) {
System.out.println(“Hello World”);
}
}


3.提交文件到git仓库

toly:mixed mac$ git commit -m “HelloWorld 初始项目”
[master(根提交) 0eb09bc] HelloWorld 初始项目
1 file changed, 7 insertions(+)
create mode 100644 HelloWorld.java

git commit -m "提交的描述"下面是提交后的反馈,0eb09bc代表唯一的SHA1,用于节点的身份标识
可见第一次提交之后会形成一个master主支和HEAD节点。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


在代码里添加一个string2Int的方法,然后进行测试。

public class HelloWorld {

public static void main(String[] args) {
int result = string2Int(“1994”);
System.out.println(result);
}

private static int string2Int(String num) {
return Integer.parseInt(num);
}
}

结果表现良好,现在你要去睡觉了。每晚躺床第一句,代码没提赶快去
看到了节点增加完成,你就安心地睡觉了

toly:mixed mac$ git add .
toly:mixed mac$ git commit -m “增加字符串转数字功能”
[master 0c4056a] 增加字符串转数字功能
1 file changed, 6 insertions(+), 1 deletion(-)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后你思来想去,不行,还没加注释呢,明早起来看不懂了怎么办?


public class HelloWorld {

public static void main(String[] args) {
int result = string2Int(“1994”);//使用方法
System.out.println(result);//打印
}
/**

  • 将一个字符串转化成数字
  • @param num 待转字符串
  • @return 数字
    */
    private static int string2Int(String num) {
    return Integer.parseInt(num);
    }
    }

于是你修改了文件,添加注释,再提交,成功出现第三个节点,终于可以安心睡觉了。

toly:mixed mac$ git add .
toly:mixed mac$ git commit -m “增加注释”
[master dcf9cd3] 增加注释
1 file changed, 7 insertions(+), 3 deletions(-)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


4.创建分支

这时你发现有bug,转换"aaa"有异常。修复bug,先建分支,以免改废了影响主支。
git checkout -b bugFix ,这样就可以创建分支,并切换到该分支,你就可以愉快地抓小虫了,用导弹,大炮,原子弹什么的轰炸bug,都不会影响到你的主支。

toly:mixed mac$ git checkout -b bugFix
切换到一个新分支 ‘bugFix’


之后经过不懈努力,修复了bug,其间提交了两次,加了异常捕捉。

toly:mixed mac$ git add .
toly:mixed mac$ git commit -m “修复bug提交点1”
[bugFix 246b11f] 修复bug提交点1
1 file changed, 13 insertions(+), 5 deletions(-)
toly:mixed mac$ git add .
toly:mixed mac$ git commit -m “修复bug提交点2”
[bugFix f9299a6] 修复bug提交点2
1 file changed, 1 insertion(+)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

public class HelloWorld {

public static void main(String[] args) {
int result = string2Int(“1994”);//使用方法
System.out.println(result);//打印
}
/**

  • 将一个字符串转化成数字

学习分享,共勉

Android高级架构师进阶之路

题外话,我在阿里工作多年,深知技术改革和创新的方向,Android开发以其美观、快速、高效、开放等优势迅速俘获人心,但很多Android兴趣爱好者所需的进阶学习资料确实不太系统,完整。今天我把我搜集和整理的这份学习资料分享给有需要的人

  • Android进阶知识体系学习脑图

  • Android进阶高级工程师学习全套手册

  • 对标Android阿里P7,年薪50w+学习视频

  • 大厂内部Android高频面试题,以及面试经历

确实不太系统,完整。今天我把我搜集和整理的这份学习资料分享给有需要的人

  • Android进阶知识体系学习脑图

[外链图片转存中…(img-KutTellY-1720089509347)]

  • Android进阶高级工程师学习全套手册

[外链图片转存中…(img-x7x5mdDX-1720089509348)]

  • 对标Android阿里P7,年薪50w+学习视频

[外链图片转存中…(img-D2tGaGBU-1720089509348)]

  • 大厂内部Android高频面试题,以及面试经历

[外链图片转存中…(img-ucHX3TpE-1720089509349)]

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值