文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Git 使用技巧:提升工作效率的利器

2024-11-28 14:46

关注

一、将提交记录提取出来,发布到其他分支中

要将分支中的某次提交提取出来并发布到其他分支中,可以使用 git cherry-pick 命令。这个命令可以将某个分支上的特定提交应用到当前分支中。以下是具体的步骤和操作说明:

1.操作步骤

(1) 定位到目标分支先切换到目标分支,也就是你希望发布提交的分支。

git checkout target-branch

(2) 查看提交历史查看需要提取的分支的提交历史,找到你想要提取的提交哈希值。

git log source-branch --oneline

这会列出 source-branch 上的提交记录,并显示每个提交的哈希值(commit-hash)和提交信息。

(3) 使用 git cherry-pick 提取提交使用git cherry-pick命令将每个提交提取并应用到当前分支。

git cherry-pick 

如果你有多个提交,可以按顺序逐个提取。例如:

git cherry-pick 
git cherry-pick 
git cherry-pick 

2.注意事项

(1) 解决冲突:如果在cherry-pick的过程中遇到冲突,Git 会停止并提示你解决冲突。解决冲突后,使用以下命令完成cherry-pick:

git add 
git cherry-pick --continue

如果你想放弃当前的 cherry-pick 操作,可以使用:

git cherry-pick --abort

(2) 提交顺序:如果想要提取多个提交并按顺序应用,可以使用以下方式进行批量提取:

git cherry-pick   

(3) 应用一段提交范围:如果希望提取一段连续的提交,可以使用范围选择:

git cherry-pick ^..

注意这里的 ^ 表示从 start-commit-hash 的父提交开始,这样可以包括 start-commit-hash 本身。

3.示例场景

假设有一个 bug-fixes 分支包含 5 次提交,需要将其中的 1,2,4,5 次提交发布到 release 分支:

(1) 切换到release分支:

git checkout release

(2) 按提交顺序逐个应用提交:

git cherry-pick commit1
git cherry-pick commit2
git cherry-pick commit4
git cherry-pick commit5

通过这些步骤,你可以将 bug-fixes 分支中的 1,2,4,5 次提交提取出来并发布到 release 分支中。

二、从分支中删除某一次提交

在 Git 中,如果你需要从一个分支中删除某次提交,有以下几种方法可以实现,具体选择取决于你是否需要保留提交历史或者修改历史的影响。

方法一:使用 git revert(推荐用于保留历史)

git revert 是一种非破坏性方法,用来创建一个新的提交来撤销指定的提交。这种方式可以保留提交历史,并且是团队协作中推荐使用的方法。

操作步骤:

# 在当前分支上撤销某次提交
git revert 

git revert 会生成一个新的提交,它的作用是将  所做的更改逆转。这样可以保证团队其他人不会受到影响。

方法二:使用 git rebase -i(适合历史修改)

如果你想从分支中彻底移除某次提交,可以使用 git rebase -i 命令进行交互式 rebase。这种方式会重写提交历史,因此需要谨慎使用,并且只应在不影响其他开发者的情况下使用(例如本地分支或尚未推送的分支)。

操作步骤:

git rebase -i 

注意:

git rebase --continue
git rebase --abort

方法三:使用 git reset(危险操作)

git reset 可以重置分支到指定的提交,移除某个提交及其之后的所有提交。这种方法会改变分支历史,不建议在公共分支上使用。

操作步骤:

# 将分支重置到某个提交之前的状态
git reset --hard 

风险:

小结

选择合适的方法取决于你的使用场景。如果你不确定,请优先使用 git revert。

结语

以上两条使用技巧是在实际工作中遇到过的问题,在此记录下来,希望对大家也能有所帮助。需要注意的是,实操前需要找个测试分支先演练一遍,不要直接在生产分支操作!

来源:源话编程内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯