gpt4 book ai didi

linux - 如何在未 checkout 的分支上应用 git 补丁?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:47 27 4
gpt4 key购买 nike

我想知道是否可以在未 checkout 的分支上应用 git 补丁?

我想这样做是因为我不想在我的工作分支上使用这个补丁,而是在我现在不使用的专用分支上。这是一个大分支,检查它会:

  1. 让我丰富的标签无用或损坏。重建它们需要很长时间。
  2. 另外,如果我 check out 这个分支并回滚到我的工作分支,我的内核将强制重建...

最佳答案

这是非常间接的,但也是可能的。您可以通过仅将其应用于索引来实现。

简单的方法:

$ git read-tree <branch>
$ git apply --cached <patch>
$ git update-ref refs/heads/<branch> \
-m "<optional reflog message>" \
$(git commit-tree $(git write-tree) -m "<message>" -p <branch>)

如果您希望一切都“更干净”(即让提交的 reflog 看起来正常),那么这里有一个更长的方法,更加冗长:

$ git checkout -b temp             # Create a temp branch
$ git reset --mixed <branch> # Reset the index to the branch you want
$ git apply --cached <patch> # Apply the patch to the index
$ git commit # Create a commit object

# Move the branch's reference to the new commit
$ git update-ref refs/heads/<branch> refs/heads/temp

# Clean up
$ git checkout --force <original_branch>
$ git branch -d temp

关于linux - 如何在未 checkout 的分支上应用 git 补丁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11161423/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com