赞
踩
想要分批分时间推送代码
做了大量修改后,想要将这些修改按功能或逻辑分开提交
git cherry-pick
允许你选择某个分支中的一个或多个提交(commits),然后将这些提交复制到当前分支上。这个命令非常适合在你只需要从另一个分支上获取某些特定更改,而不是整个分支内容时使用。
基本的 git cherry-pick
命令格式如下:
git cherry-pick <commit-hash>
其中 <commit-hash>
是你想要复制到当前分支上的提交的哈希值。哈希值可以通过 git log
命令查找。
假设你正在修复一个问题,发现在另一个分支上已经有了修复这个问题的提交,你希望将这个修复应用到你当前的分支上。你可以这样操作:
找到需要的提交的哈希值:
git checkout other-branch
git log
查找提交的哈希值。git log
在输出中,找到你想要的提交,并复制它的哈希值。
切换回你的工作分支:
git checkout your-branch
使用 cherry-pick 应用该提交:
git cherry-pick <commit-hash>
将 <commit-hash>
替换为你在第一步中复制的哈希值。
应用多个提交:你可以一次性 cherry-pick 多个提交,只需要在命令中依次列出所有想要应用的提交的哈希值。
git cherry-pick <commit-hash1> <commit-hash2>
应用一系列提交:如果你想要应用一个连续的提交序列,可以使用下面的语法:
git cherry-pick <start-commit-hash>^..<end-commit-hash>
这会应用从 <start-commit-hash>
到 <end-commit-hash>
(包含这两个提交)之间的所有提交。
git cherry-pick
时可能会遇到冲突,就像合并时一样。如果发生冲突,Git 会停止应用当前的提交,并要求你解决冲突。解决冲突后,你需要使用 git cherry-pick --continue
来完成 cherry-pick 操作。cherry-pick
很有用,但它改变了提交的上下文,有时可能会引起问题。因此,建议只在确实需要时使用,比如修复从其他分支提取特定的更改。git cherry-pick
提供了一种灵活的方法来选择性地应用提交,有助于在分支间管理特定的更改。不过,要谨慎使用,以避免可能的冲突或混乱。
如果工作已经分在不同的提交上,且想要一次性推送一批提交,可以先将这些提交合并为一个(通过交互式 rebase),然后再推送。
git rebase -i HEAD~<number-of-commits>
在交互式模式中,您可以选择将部分提交合并(squash)为一个。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。