分享一个学习git的图形化学习网站-Learn Git Branching参考答案整理

分享一个学习git的图形化学习网站:Learn Git Branching 初次学习点这里
这个链接可以跳过前面的帮助信息直接进入:Learn Git Branching 老手点这里

LearnGitBranching 是什么

LearnGitBranching是一个git仿真沙盒,提供一系列的交互式学习指导/挑战,用来加快学习git提交树如何工作。 此项目由pcottle发表在github上,并被翻译到了法语、韩语、日语以及中文。

LearnGitBranching的主界面左边是模拟终端窗口,右边是图示区。图示区用图形表明了git代码库当前的提交记录、分支、HEAD指向等。
在这里插入图片描述

LearnGitBranching 如何使用

LearnGitBranching通过关卡的形式,逐步展开对git的学习。每一关开始是对要学习的主题的一些介绍,包含操作原理,要使用到的命令,以及命令执行后的图示。介绍完成之后,会显示这一关的goal。在输入命令并执行后,右边的代码库图示会自动更新以呈现最新状态。

根据关卡题目,输入并执行正确的命令,当程序匹配到通关需要的结果时即可以过关。

如果要跳过每一关开始的介绍,可以按Esc。右下角的两个按钮分别是帮助菜单与语言选择。

游戏的控制指令

指令 功能
reset 重新开始本关卡
levels 选择关卡
objective 显示提示信息
show goal 显示目标
hide goal 隐藏目标
undo 撤销
help general 显示程序帮助
help level 显示当前关卡帮助

下面是Learn Git Branching 闯关答案总结整理,建议先练习,不会的部分再参考

基础篇

1.Git Commit

git commit
git commit

2.Git Branch

git branch bugFix
git checkout bugFix

3.Git Merge

git checkout -b bugFix
git commit
git checkout master
git commit
git merge bugFix

4.Git Rebase

git checkout -b bugFix
git commit
git checkout master
git commit
git checkout bugFix
git rebase master

高级篇

1.分离 Head

git checkout c4

2.相对引用 ^

最优解:

git checkout bugFix^

其他解:

扫描二维码关注公众号,回复: 12427251 查看本文章
git chekcout bugFix
git checkout HEAD^

3.相对引用2 ~

可以直接使用 -f 选项让分支指向另一个提交。
git branch -f master HEAD~3

上面的命令会将 master 分支强制指向 HEAD 的第 3 级父提交。

git branch -f master c6
git branch -f bugFix c0
git checkout c1

4.撤销变更

reset: (local)
git reset通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。git reset 向上移动分支,原来指向的提交记录就跟从来没有提交过一样。

revert: (pushed)
虽然在你的本地分支中使用git reset很方便,但是这种“改写历史”的方法对大家一起使用的远程分支是无效的哦!为了撤销更改并分享给别人,我们需要使用git revert。
revert 之后就可以把你的更改推送到远程仓库与别人分享啦

git reset HEAD^
git checkout pushed
git revert HEAD

git reset C1
git checkout pushed
git revert C2

移动提交记录

1.Git Cherry-pick

git cherry-pick c3 c4 c7

2.交互式 rebase

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

如果你在命令后增加了这个选项, Git 会打开一个 UI 界面并列出将要被复制到目标分支的备选提交记录,它还会显示每个提交记录的哈希值和提交说明,提交说明有助于你理解这个提交进行了哪些更改。

git rebase -i HEAD~4

移动提交记录

1.只取一个提交记录

git rebase -i HEAD~3
git branch -f master bugFix

或者

git cherry-pick bugFix
git branch -f master bugFix

2.提交的技巧 #1

git rebase -i HEAD~2 #修改C2和C3的顺序
git commit --amend
git rebase -i HEAD~2 #修改C3'和C2''顺序
git branch -f master

3.提交的技巧 #2

git checkout master
git cherry-pick newImage
git commit --amend
git cherry-pick caption

4.Git Tag

git tag v0 c1
git tag v1 c2
git checkout c2

5.Git Describe

由于标签在代码库中起着“锚点”的作用,Git 还为此专门设计了一个命令用来描述离你最近的锚点(也就是标签),它就是 git describe!

Git Describe 能帮你在提交历史中移动了多次以后找到方向;当你用 git bisect(一个查找产生 Bug 的提交记录的指令)找到某个提交记录时,或者是当你坐在你那刚刚度假回来的同事的电脑前时, 可能会用到这个命令。

git describe 的语法是:

git describe <ref>

可以是任何能被 Git 识别成提交记录的引用,如果你没有指定的话,Git 会以你目前所检出的位置(HEAD)。

它输出的结果是这样的:

<tag>_<numCommits>_g<hash>

tag 表示的是离 ref 最近的标签, numCommits 是表示这个 ref 与 tag 相差有多少个提交记录, hash 表示的是你所给定的 ref 所表示的提交记录哈希值的前几位。

当 ref 提交记录上有某个标签时,则只输出标签名称。

git commit

高级话题

1.多次 Rebase

git rebase master bugFix
git rebase bugFix side
git rebase side another
git branch -f master another

2.两个父节点

git branch bugWork HEAD~^2~

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

高能

查看答案命令

show solution

远程

Push & Pull —— Git 远程仓库!

1.Git Clone

git clone

2.远程分支

git commit
git checkout o/master
git commit

3.Git Fetch

git fetch

4.Git Pull

git pull就是git fetch和git merge 的缩写。

git pull

5.模拟团队合作

git clone
git fakeTeamwork 2
git commit
git pull

6.Git Push

git commit
git commit 
git push

7.偏离的提交历史

git pull --rebase就是fetch和rebase的简写。

git clone
git fakeTeamwork 1
git commit
git pull --rebase
git push

关于 origin 和它的周边 —— Git 远程仓库高级操作

1.推送主分支

git fetch
git rebase o/master side1
git rebase side1 side2
git rebase side2 side3
git rebase side3 master
git push

2.合并远程仓库

git checkout master
git pull origin master
git merge side1
git merge side2
git merge side3
git push origin master

3.远程追踪

git checkout -b side o/master
git commit
git pull --rebase
git push

3.远程追踪

git branch -f side master
git commit
git pull --rebase
git push

4.Git Push的参数

git push origin master
git push origin foo

5.Git Push的参数 2

git push origin foo:master
git push origin master^:foo

6.Git Fetch的参数

git fetch origin master^:foo
git fetch origin foo:master
git checkout foo
git merge master

git pull origin master^:foo
git pull origin foo:master
git branch -f foo
git checkout foo

7.没有source的source

git pull origin :bar
git push origin :foo

8.Git Pull的参数

git pull origin bar:foo
git pull origin master:side

都看到这了,点个赞再走呗~~

猜你喜欢

转载自blog.csdn.net/weixin_44788542/article/details/111318911
今日推荐