【发布时间】:2011-01-06 00:39:03
【问题描述】:
我正在做一些非常简单的错误。我正在尝试准备一个普通的补丁文件,所以我可以重新应用一些更改:
$ git diff > before
$ git diff something_here > save.patch
$ git checkout .
$ patch < save.patch
$ git diff > after
$ diff before after
$
something_hereblank 几乎可以工作,但文件名不正确。我想我只是缺少一些选择。
在现实生活中,我将在结帐后进行合并,因此补丁可能会在那里失败,但你明白我的意思。
编辑
我的错在这里问了错误的问题。实际的问题是,如果可能的话,我想保存我的更改,进行合并,然后重新应用更改?我问错了,因为我习惯使用补丁来解决这类问题,git diff 看起来这就是它想要我做的。
Charles Bailey 的 评论 给出了正确答案。对我来说, git-apply 是正确的做法(git-stash 看起来比我需要的更重,并且 rebase 和 bundles 绝对超出了我目前的技能水平。)我将接受 Charles 给出的答案(因为你不能接受评论)。谢谢大家的建议。
编辑,6 年后
熟悉这个主题的人都知道,我高估了git stash 的难度。几乎每天左右,我都会使用以下顺序:
$ git stash
$ git merge
$ git stash pop
【问题讨论】:
-
您有什么理由特别想使用
patch而不是git apply吗? -
即便如此,你真的需要补丁而不是像
git stash或其他 git 工具这样的东西吗? -
后期编辑,我认为
git stash是您尝试做的最简单的解决方案,但有很多方法可行。 -
@Malvolio:确实如此,您甚至不必想一个临时文件名来存储您的补丁。
-
@Charlse,有时您需要将补丁发送给没有整个 git 存储库的人。例如,如果使用
git-svn.
标签: git