我提交了一个文件的更改(我们称之为foo
)。 (这些变化很好;我只是并不意味着它们是这个拉取请求的一部分。)提交已被推送,除了这个文件之外,我对提交中的所有其他更改感到满意。为了解决这个问题,我已经完成了另一次提交(没有foo
)并从那时开始推送。
我的本地仓库没有暂存或未分期更改。有没有办法同时:
foo
(从HEAD^^
)推送到全局存储库。foo
取消暂存在我的本地仓库中。答案 0 :(得分:3)
首先,使用git stash
隐藏所有本地更改。
然后,将foo
转换为您想要的形式,然后进行提交和推送。
最后,使用git stash apply
恢复您的工作状态。
<强>更新即可。 OP似乎想要创建一个新的提交,它将恢复旧版本的foo
,并将一个稍微新版本的foo
拉入工作树(未分级)。
可以使用以下命令序列完成此操作。假设sha1
是包含旧版本的提交的哈希值,sha2
是包含较新版本的提交的哈希值。
拉出需要恢复的旧版本。
git checkout sha1 -- foo
提交并推送。
git commit
git push
将较新版本拉入工作树。
git checkout sha2 -- foo