git那些事(下)

git那点事
我以前只会 git 的clone、remote、pull、add、commit、push、merge、reset、stash、这些基本操作,这里我通过learngitbranching这个网站系统了学习了一下 git 的其他操作。通过本文,您可以学到:
- git的常用工作流是怎样的?
- git rebase 怎么操作?
- git cherry-pick 怎么操作?
- git revert 是什么?
- git 相对引用是怎么回事?
- git tag 怎么使用
- git branch -f 和 git branch xx xxx
git cherry-pick
git cherry-pick 可以用来选取提交节点,使用方法很简单,命令如下:
git cherry-pick <提交号>
注意:有时 git cherry-pick 可以用来代替 git rebase 的部分功能;而且 git commit --amend 也可以用来合并然后修改上次的提交信息
git revert
我们都知道,使用 git reset 可以把未 push 的 commit 进行回退,但是如果已经 push 了呢?使用 git revert 即可。这个命令会创建一个新的提交,这个提交会删除上个提交的内容。命令如下:
git revert HEAD
git push
git 相对引用
我们经常会看到比如HEAD^
、HEAD^^
、HEAD~3
这种形式的命令,这个就是相对引用。意思如下:
HEAD^: 表示当前HEAD上一个节点,如果有2个^就表示上上个节点,以此类推
HEAD~3: 表示当前HEAD向上移动多少个节点,不加数字时表示向上移动一个
注意:
git rebase -i (HEAD~3)
表示将之前3个节点进行 rebase。git checkout master^2
表示回到 master 的第二个父节点(按提交的时间顺序),注意这里的 ^ 后面接了数字,表示第几个父节点。如果不接数字的话,表示提交时间最早的那个父节点。
git tag
git tag 可以用来打标签,后面的提交号是可选的,如果没有则表示在当前HEAD上面打标签。
git tag v1 <提交号>
git branch 高阶用法
我们都知道git checkout -b xxx
是git branch xxx
和git checkout xxx
的缩写形式,于是git branch也有两个类似的高阶用法:
### 表示在 xxx 节点创建 xx 分支,但是不切换到这个分支
git branch xx xxx
### 表示将已经存在的 xx 分支强制移动到 xxx 节点,并且不切换到这个分支
git branch -f xx xxx
作者:馒头加梨子
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架