首页 >> 大全

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

2023-10-12 大全 38 作者:考证青年

[GIT]Learn Git 闯关答案总结

今天再一个WX公众号偶然发现在推送这个网站,自己前段时间学习过git的相关命令,掌握的不是很扎实,借这个网站复习一下。

网站链接:

网上已经有前辈给出完整答案,但是自己想记录一下,留下一点痕迹。加了图。

参考过的博文

主要 基础篇 git

git commit
git commit
//或者用一行
git commit;git commit

git

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

//新建并切换到 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 -pick

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

2. 交互式

//当你知道你所需要的提交记录(并且还知道这些提交记录的哈希值)时, 用 -pick 再好不过了 —— 没有比这更简单的方式了。

//但是如果你不清楚你想要的提交记录的哈希值呢? 幸好 Git 帮你想到了这一点, 我们可以利用交互式的 —— 如果你想从一系列的提交记录中找到想要的记录, 这就是最好的方法了

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

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

//在实际使用时,所谓的 UI 窗口一般会在文本编辑器 —— 如 Vim —— 中打开一个文件。

//当 UI界面打开时, 你能做3件事:

//1.调整提交记录的顺序(通过鼠标拖放来完成)

//2.删除你不想要的提交(通过切换 pick 的状态来完成,关闭就意味着你不想要这个提交记录)

//3.合并提交。 遗憾的是由于某种逻辑的原因,我们的课程不支持此功能,因此我不会详细介绍这个操作。简而言之,它允许你把多个提交记录合并成一个。

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

UI界面:

杂项

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

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

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

最后就差把 分支里的工作合并回 分支了。你可以选择通过 fast- 快速合并到 分支上,但这样的话 分支就会包含我这些调试语句了。你肯定不想这样,应该还有更好的方式……

实际我们只要让 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

git describe <ref>

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了