首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以应用2次提交后更改的所有文件?

是否可以应用2次提交后更改的所有文件?
EN

Stack Overflow用户
提问于 2016-11-03 10:21:32
回答 4查看 64关注 0票数 0

我有两个提交(A和B),我想将我的代码还原为提交A,但我希望将提交B中更改的所有文件应用于提交A。

有可能吗?

EN

回答 4

Stack Overflow用户

发布于 2016-11-03 10:31:48

是的,这是可能的;但有一两个警告。

如果您已经将提交A或B发布到共享存储库,那么这样做会给其他用户带来问题。如果您在A或B的“下游”有其他提交,则需要做额外的工作才能使一切保持一致。由于git存储信息的方式,在这两种情况下修改提交本身就是破坏性的。

但如果这两种情况都不是这样,那么使用git rebase就相当简单了。就像这样

代码语言:javascript
复制
git rebase --interactive A^

这将打开一个编辑器,其中包含rebase“待办事项”列表,以及有关如何编辑待办事项列表的说明。您将把B的指令从pick更改为squash或fix-up。

票数 1
EN

Stack Overflow用户

发布于 2016-11-03 14:28:22

一种选择是重置为在提交A之前提交,然后再次提交。请记住,您需要在此处进行软重置。

假设你有这个层次结构的提交

代码语言:javascript
复制
         HEAD
          |
N -> A -> B

将提交头移动到点N。git reset --soft HEAD~2

  • It会将提交A和B中的所有更改放到您的索引中,运行git status

  • Create
  • ,该提交将同时具有A和B的更改。

如果您已经将您的工作推送到远程存储库,则可能需要使用force push才能将更改推送到远程存储库。

记住:将更改强制推送到远程将覆盖您在远程存储库中所做的工作。当心。

票数 1
EN

Stack Overflow用户

发布于 2016-11-03 11:45:41

代码语言:javascript
复制
git reset HEAD^^                 // reset to front HEAD contain A and B's source
git add .                        // add A and B's source to new commit
git commit -m "A message"        // commit A and B's source and add commit message
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40392831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档