den*_*nov 15 git cherry-pick git-checkout
用例:每次我想将提交从一个git分支移动到另一个git分支时,我执行以下操作序列:
git checkout 分支到上合并成git cherry-pick 针对提交git pushgit checkout 工作分支这是唯一的例外 - 每次我执行'git checkout'时,git工作目录内容被更改(预期)并导致我的IDE(IntelliJ IDEA)执行内部状态更新(因为受监视的文件系统子树被外部修改) ).这真的很烦人,特别是在大量小提交的情况下.
我看到两种方法:
我不喜欢第一种方法,因为它可能会忘记移动特定的提交.第二个看起来有点......不自然.
基本上,如果我能说git'将这个提交从名为branchX的分支移动到分支branchX + 1'而没有工作目录更新,那将是完美的.
问题:是否可以执行上述操作?
不,在不更改工作目录的情况下,无法在分支之间移动提交.这是因为你最终会遇到冲突,此时git会暂停,这样你就可以解决冲突.如果您的工作直接不代表该状态,那么您将无法正确修复冲突.
如果你环顾四周,你会发现很多其他可能的解决方案来解决这个问题,但是潜在的问题听起来就像你的编辑器没有处理从它下面改变的文件.这基本上是使用git的一个事实.因此,要么更新编辑器,要么转移到更适合git工作流程的东西.
如果您不需要经常合并更改,那么不做cherry-pick,那么偶尔从git merge <working branch>您的 中做一次怎么样<branch to merge into>?如果我没有记错的话,这相当于对自上次合并以来的所有更改进行樱桃腌制(使用这种方法不会有忘记提交的风险)。这样,“编辑器问题”就会减少发生。
| 归档时间: |
|
| 查看次数: |
8589 次 |
| 最近记录: |