gpt4 book ai didi

git - smartgit 删除提交并返回上一个提交

转载 作者:太空狗 更新时间:2023-10-29 12:46:40 25 4
gpt4 key购买 nike

错误地我做了一个提交,现在我想从历史日志中删除并返回到以前的提交。我一直在尝试检查我想返回的提交,但是 Smartgit 要求我创建一个本地分支以便执行此操作(附上屏幕截图),并且由于我不是 SG 专家,所以我真的需要一些建议。我也尝试恢复错误的提交,但我仍然在日志中看到提交。这是日志现在的样子:

尝试 checkout 时:

enter image description here

我的日志目前看起来如何:

enter image description here

我想做的是从日志中删除前两个提交并返回到“Cambios Varios”提交(顺便说一句,当我试图检查该提交时出现的带有绿色箭头的那个)。

所有这些困惑是因为我的同事做了一些更改并添加了一个文件,然后提交了他的更改,为了更新我的文件,我进行了 pull ,但我的文件没有在我的本地存储库中更新,也没有添加我的同事添加的文件。当另一个用户除了 PULL 之外进行提交时,我还需要做些什么来更新我的所有文件夹吗?我是 SmartGit 的新手,每次我尝试做一个干净的 pull 时都会有点困惑。非常感谢!

最佳答案

你问的不是 SmartGit 特有的,而是一般的 GIT。 SmartGit 只是一个客户端,虽然非常方便且功能齐全。在您的情况下,您必须考虑几个 GIT 功能:

  1. 分支机构
  2. 已发布的提交
  3. 独立的头
  4. 重写远程历史

谷歌这些以获得更多信息。现在,让我们为您的提交命名:

enter image description here

您继续看到提交 A,因为您有一个分支 指向它。这是您的本地 分支master。您可以重置此分支为您喜欢的任何提交。要在 SmartGit 中执行此操作,只需单击该绿色分支标签并将其拖动到任何其他提交。就是这样。例如。将其重置为 B 提交,origin/master 指向的位置,您将不会再在日志中看到此提交,因为没有可以从中创建的分支达到。

严格来说,您可以对您的 origin/master 分支执行相同的操作,您可以将其重置为任何其他提交。但是你应该非常小心地使用它,因为它指向一个提交 B,它是 published。 IE。任何人都可能把它 pull 到他们的机器上。如果你不能确定,你就不能从已发布的提交中重置分支而不会有破坏某人的 repo 副本的危险。

所以简单的答案是您不能将 repo 恢复到您想要的提交 C,因为它可能与在其他机器上克隆的 repo 冲突。较长的答案是您可以尝试。

如果您确定只有您和您的同事克隆了此存储库,您可以重写 远程日志。为此,在提交 C 时重置您的本地 master 分支(如我之前所说,使用拖放)并推送它。 SmartGit 可能会禁止您这样做,转到 Preferences/Commands/Push 并启用选项“Allow modifying pushed commits”。因为它很危险。

这将重写远程 master 分支的位置,从你同事的机器上 pull 它。如果他没有对这个分支做任何额外的更改,这应该没问题。

关于git - smartgit 删除提交并返回上一个提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32394214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com