如何在提交或将请求中恢复到创建分支时的状态?

时间:2017-11-30 16:30:39

标签: xcode git github

假设:

我正在处理一个项目,并且说我在table-settings之外创建了一个分支master。我将更改提交到三个文件:

  • plate.swift
  • bowl.swift
  • fork.swift

有人对我的拉取请求发表评论并说,"我们现在不需要对plate.swift进行这些更改。

在github,命令行或源代码控制桌面应用程序上,有一种方法可以将提交或拉取请求中的所有更改还原为单个文件,返回到当时的状态我创建了分支?

是什么让它与"如何将文件还原到之前的提交",我想知道我是否可以还原已编辑并提交多个文件的文件时间,到我创建功能分支时所处的状态。

2 个答案:

答案 0 :(得分:2)

评论中的重复链接基本上涵盖了您,但在这种情况下,我可能倾向于执行以下操作:

git checkout HEAD~1 path/to/plate.swift

这将在您创建分支之前将plate.swift重置为之前的版本1修订版。然后你可以通过

修改提交
git commit --amend

现在,您的提交将包含所有先前的更改减去对plate.swift的更改,哪个文件将保持不变。然后,您必须使用此强制推送:

git push --force origin table-settings

需要强制推送的原因是因为我们已经重写了分支中的最后一次提交。但是对于审稿人来说,这种方法可能会很好,他们会看到一个与他们评论时非常相似的功能分支。

如果您的功能分支已经由审阅者签出,那么更安全的选择就是执行正常提交:

git commit -m 'reverted Plate.swift'

但我发现,当您最终不得不对拉取请求进行一些调整时,修改可能很有用,但是您不希望通过许多提交来修改分支的历史记录。

答案 1 :(得分:1)

如果你想让它进入一个主人的状态,那么从你的分支开始跟随

git checkout master -- /path/to/plate.swift

上面的命令将使它成为一个状态,即在master中。然后提交并正常推送。 e.g。

git commit -m 'reverting not-required changes'
git push;

谢谢!