[GIT]Learn Git Branching 闯关总结

您所在的位置:网站首页 Arise游戏闯关教程 [GIT]Learn Git Branching 闯关总结

[GIT]Learn Git Branching 闯关总结

2024-07-11 04:28| 来源: 网络整理| 查看: 265

[GIT]Learn Git Branching 闯关答案总结

今天再一个WX公众号偶然发现在推送这个网站,自己前段时间学习过git的相关命令,掌握的不是很扎实,借这个网站复习一下。 网站链接: 网上已经有前辈给出完整答案,但是自己想记录一下,留下一点痕迹。加了图。 参考过的博文

主要 基础篇 git commit git commit git commit //或者用一行 git commit;git commit

在这里插入图片描述

git branch git branch bugFix git checkout bugFix

在这里插入图片描述 3. git merge

//创建新分支 bugFix:git branch bugFix //用 git checkout bugFix 命令切换到该分支:git checkout bugFix git checkout -b bugFix //提交一次 git commit //用 git checkout master 切换回 master git checkout master //提交一次 git commit //用 git merge 把 bugFix 合并到 master git merge bugFix

在这里插入图片描述

git rebase //新建并切换到 bugFix 分支 git checkout -b bugFix //提交一次 git commit //切换回 master 分支再提交一次 git checkout master git commit //再次切换到 bugFix 分支,rebase 到 master 上 git checkout bugFix git rebase master

在这里插入图片描述

高级篇 分离head git checkout c4

在这里插入图片描述 2. 相对引用^

//一行命令 git checkout bugFix^ //两行命令实现,自己用的就是这种方法,提示说用一行 git checkout bugFix git checkout HEAD^

在这里插入图片描述 3. 相对引用~

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

在这里插入图片描述 4. 撤销变更

//git reset 通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。git reset 向上移动分支,原来指向的提交记录就跟从来没有提交过一样。 //虽然在你的本地分支中使用 git reset 很方便,但是这种“改写历史”的方法对大家一起使用的远程分支是无效的哦!为了撤销更改并分享给别人,我们需要使用 git revert。 git reset HEAD^ git checkout pushed git revert HEAD

在这里插入图片描述

移动提交记录 Git Cherry-pick //git cherry-pick ... //如果你想将一些提交复制到当前所在的位置(HEAD)下面的话, Cherry-pick 是最直接的方式了。 git cherry-pick c3 c4 c7

在这里插入图片描述 2. 交互式rebase //当你知道你所需要的提交记录(并且还知道这些提交记录的哈希值)时, 用 cherry-pick 再好不过了 —— 没有比这更简单的方式了。

//但是如果你不清楚你想要的提交记录的哈希值呢? 幸好 Git 帮你想到了这一点, 我们可以利用交互式的 rebase —— 如果你想从一系列的提交记录中找到想要的记录, 这就是最好的方法了 //交互式 rebase 指的是使用带参数 --interactive 的 rebase 命令, 简写为 -i

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

//在实际使用时,所谓的 UI 窗口一般会在文本编辑器 —— 如 Vim —— 中打开一个文件。 //当 rebase UI界面打开时, 你能做3件事:

//1.调整提交记录的顺序(通过鼠标拖放来完成) //2.删除你不想要的提交(通过切换 pick 的状态来完成,关闭就意味着你不想要这个提交记录) //3.合并提交。 遗憾的是由于某种逻辑的原因,我们的课程不支持此功能,因此我不会详细介绍这个操作。简而言之,它允许你把多个提交记录合并成一个。

git rebase -i HEAD~4 //出现UI界面,点击confirm 成功

UI界面: 在这里插入图片描述

在这里插入图片描述

杂项

本地栈式提交 ,只取一个提交记录

来看一个在开发中经常会遇到的情况:我正在解决某个特别棘手的 Bug,为了便于调试而在代码中添加了一些调试命令并向控制台打印了一些信息。

这些调试和打印语句都在它们各自的提交记录里。最后我终于找到了造成这个 Bug 的根本原因,解决掉以后觉得沾沾自喜!

最后就差把 bugFix 分支里的工作合并回 master 分支了。你可以选择通过 fast-forward 快速合并到 master 分支上,但这样的话 master 分支就会包含我这些调试语句了。你肯定不想这样,应该还有更好的方式…… 实际我们只要让 Git 复制解决问题的那一个提交记录就可以了。跟之前我们在“整理提交记录”中学到的一样,我们可以使用

git rebase -i git cherry-pick 来达到目的。 git rebase -i HEAD~3 git branch -f master bugFix

在这里插入图片描述 2. 提交的技巧 #1

git rebase -i HEAD~2 //修改c2,c3的顺序 git commit --amend git rebase -i HEAD~2 git branch -f master 提交的技巧 #2 git checkout master git cherry-pick newImage git commit --amend git cherry-pick caption git tag git tag v0 c1 git tag v1 v2 git checkout c2 git describe git describe


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3