在git中,如何将更改从另一个分支拉入工作树?

时间:2012-02-24 13:34:34

标签: git version-control dvcs

我在主题分支中做了一些有趣的工作。现在我想在进入主分支之前清理这些更改。所以我想把所有这些更改都放到工作树中:让工作树包含主题的分支版本,git diff显示主分支的所有更改。

这可能吗?我该怎么做?

编辑:git merge --no-ff topic && git reset --mixed HEAD^似乎可以解决问题。如果有人有更优雅的答案,我全都耳朵!

3 个答案:

答案 0 :(得分:2)

不知道,如果我理解你的话

git checkout master
git merge --no-ff --no-commit topic

答案 1 :(得分:0)

我认为你要找的是git merge --no-commit --no-ff

从手册页:

  

使用--no-commit执行合并但假装合并失败并且执行   不自动提交,让用户有机会检查并进一步调整   提交前的合并结果。

编辑:我们还需要指定--no-ff,因为在快进合并的情况下不会创建合并提交,因此git不理解--no-commit意味着什么。

答案 2 :(得分:0)

我认为您应首先使用git rebase master重新定义主题分支,然后使用git checkout master切换到主分支,最后与git merge --no-ff topic合并或快进git merge --ff-only topic (其中主题是主题分支的名称)。