gpt4 book ai didi

Git:有没有办法存储来自两个分支的差异结果?

转载 作者:行者123 更新时间:2023-12-02 17:03:52 26 4
gpt4 key购买 nike

我的用例是这样的。我有我的产品分支 (prod) 和一个工作分支 (wip)。出于某种原因,我不想在这里详细说明,wip 分支包含太多的 commits(它是从较早的点分支出来的,然后 merge 和发散,等等。 ).我想要实现的是将我的 wip 分支与 prod 分支进行比较,然后无论发生什么变化,我都将其存储起来。然后我可以创建一个新分支并 git stash pop 它,这将给我一个更清晰的分支日志历史记录。有没有简单的方法可以做到这一点?

最佳答案

What I want to achieve is to just diff my wip branch agains the prod branch and then whatever the changes I just stash it. Then I can create a new branch and git stash pop it, which will give me a much cleaner branch log history. Is there an easy way to do this?

据我了解,您想要的是您的 wip 分支位于 prod 之上并且具有更清晰的历史记录。你不需要这个 stash 。相反,使用 git diff 制作补丁并使用 git apply 将其应用到新分支。

# Make a new wip branch from prod
git checkout -b new-wip prod

# Get the diff between prod and wip
git diff prod wip > wip.patch

# Apply the patch
git apply wip.patch

然后删除旧分支并重命名新分支。

git branch -D wip
git branch -m new-wip wip

但是一般当你想清理历史时你使​​用rebase。首先,使用 rebase 重写 wip 分支,使其所有更改都在 prod 之上。

git checkout wip
git rebase prod

这将消除 wip 中的任何 merge 或其他历史工件。现在就好像您一直在 prod 的最新版本之上的 wip 中编写所有更改。

然后使用 "interactive rebase" to modify the wip branch as you like .这可以包括使用 fixsquash 将多个更改 merge 为一个。

# Interactively rewrite the changes since prod
git rebase -i prod

这是实现目标的更通用、更优雅的方法。它允许您更好地控制您的提交和历史记录。您不必将所有内容混合在一起,而是可以有选择性。

关于Git:有没有办法存储来自两个分支的差异结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52744811/

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