我做了一些很简单的错误。我正在尝试准备一个普通的补丁文件,以便我可以重新应用一些更改:
$ git diff > before
$ git diff something_here > save.patch
$ git checkout .
$ patch < save.patch
$ git diff > after
$ diff before after
$
使用something_here
blank几乎可以工作,但文件名不正确。我认为我只是缺少一些选项。
在实际应用中,在检出后我会执行合并操作,所以修补程序可能会失败,但你知道我的意思。
编辑
我犯了一个错误,问错了问题。实际问题是,我想将我的更改保存起来,执行合并,然后重新应用更改,如果可能的话?我的提问方式有误,因为我习惯于使用补丁来解决这些问题,并且git diff
看起来就像是它想让我这样做。
Charles Bailey的评论给出了正确的答案。对于我来说,git-apply是正确的选择(git-stash似乎比我需要的更加复杂,而rebase和bundles绝对超出了我的当前技能水平)。我将接受Charles给出的答案(因为您不能接受评论)。感谢所有的建议。
六年后的编辑
任何熟悉此主题的人都知道,我高估了git stash
的难度。几乎每天我都会使用以下序列:
$ git stash
$ git merge
$ git stash pop
编辑,五年后我很大程度上放弃了使用git apply
,而且几乎不再使用git stash
。 git rebase
才是王道。
patch
而不是git apply
,是否有任何理由? - CB Baileygit stash
或其他Git工具一样的东西吗? - CB Baileygit stash
是您尝试的最简单的解决方案,但还有许多可行的方法。 - CB Baileygit-svn
的情况。 - Elazar Leibovich