小编典典

如何将本地未提交的更改合并到另一个 Git 分支?

all

如何在 Git 中执行以下操作?

我当前的分支是 branch1,我做了一些本地更改。但是,我现在意识到我实际上打算将这些更改应用于
branch2。有没有办法应用/合并这些更改,以便它们成为分支 2 上的本地更改,而无需在分支 1 上提交它们?


阅读 184

收藏
2022-03-03

共1个答案

小编典典

由于您的文件尚未提交branch1

git stash
git checkout branch2
git stash pop

要么

git stash
git checkout branch2
git stash list       # to check the various stash made in different branch
git stash apply x    # to select the right one

以上是rbento答案的更长更明确的版本:

git stash
git stash branch branch2

它用:

[git stash branch <branchname> [<stash>]](https://git-

scm.com/docs/git-stash#Documentation/git-stash.txt-
branchltbranchnamegtltstashgt)

  • 从最初创建<branchname>的提交开始创建并签出一个名为的新分支,<stash>
  • 将记录的更改应用<stash>到新的工作树和索引。

如果成功,并且<stash>是表单的引用stash@{<revision>},则删除<stash>.

git stash push如果您运行的分支发生了足够多的更改git stash apply而由于冲突而失败,这将很有用。
由于存储条目应用在运行时为 HEAD 的提交之上git stash,因此它恢复了最初的隐藏状态而没有冲突。


正如benjohn所评论的(参见gitstash手册页):

要同时存储当前未跟踪(新添加的)文件,请添加参数-u,因此:

git stash -u
2022-03-03