问题标签 [git-revert]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
86393 浏览

git - 如何恢复上次提交并将其从历史记录中删除?

我做了一个提交并恢复了

只是 git 日志

但是如果我做 git log --all 它仍然会出现。我需要将其从历史记录中删除,因为它包含敏感信息

如何也从历史记录中删除提交 5d44355080500ee6518f157c084f519da47b9391 ?

0 投票
2 回答
3675927 浏览

git - 如何使用 'git reset --hard HEAD' 恢复到以前的提交?

我知道 Git 会跟踪我对应用程序所做的更改,它会一直保存到我提交更改之前,但这是我挂断的地方:

当我想恢复到以前的提交时,我使用:

Git 返回:

然后,我如何将硬盘驱动器上的文件恢复到之前的提交?

我接下来的步骤是:

但是我硬盘上的文件都没有改变...

我在做什么对/错?

0 投票
1 回答
389 浏览

git - 从远程 git 历史记录中删除我在本地没有的提交

一个团队成员不小心将超过 1GB 的文件提交到我们的 master 分支并将其推送到 origin。从那以后,我将其从源代码控制中删除并致力于掌握。但是,所有其他正在更新其代码(通过git pull)的协作者实际上都在下载文件作为历史记录的一部分。

我想完全摆脱历史的承诺。我想如果我可以访问团队成员的计算机,这会更容易做到,但我现在没有。那么有没有办法做到这一点而不必从远程拉下最新的?

0 投票
2 回答
84773 浏览

git - 使用 git reset --hard 后无法推送更改

我犯了一个错误,对 git 进行了一些我不应该提交的更改。提交后,我推送了我的更改。然后我使用以下命令尝试重置我的更改。

现在我想使用以下命令将此“重置”推送到远程存储库:

但我收到此错误:

我尝试使用此命令但没有成功:

知道我能做什么吗?

0 投票
3 回答
11465 浏览

git - 将推送的分支恢复为具体的提交

我已经将一个 dev 分支(具有恒定的,有时是不稳定的更改)合并到我们的 master 分支(我们存储已发布的稳定代码的地方)。我想将 master 分支恢复到之前的状态,就像从未发生与 dev 分支的合并一样(并且当将来我们合并 dev 分支时,我们现在将丢弃的所有更改都将“再次”合并)。

这是 master 分支的当前状态,我希望它在 HEAD 处具有“professional-1.1.2”提交/标记。

master 分支的状态

我试过了:

经过一番研究,我认为更好的选择是做 agit reset --hard professional-1.1.2git push --force作为Git 的答案:如何忽略快进并将原点 [分支] 恢复到较早的提交?恢复推送的 git commit。其他开发人员在同一个办公室,他们永远不应该向 master 提交任何东西(我也不应该,但是......是的,我们没有每个分支的权限),所以告诉他们并做任何事情都不是什么大问题需要采取的行动。

所以最后的问题是:git revert something还是git reset --hard <TAG>&& git push --force?如果git revert,我应该使用哪个命令行?

0 投票
2 回答
3478 浏览

git - 搞砸了主 git 分支......无法弄清楚我需要恢复什么

我正在开发一个 git 存储库,它有一个 master 分支,我们称之为ab分支。我的团队正在ab分支上工作,并且有一个使用 github 的拉取请求工作流。我的一个队友从他的分支jeremy_ab_deletionsab分支提出了拉取请求。我正在审查/测试他的更改,但是当我将它们合并到ab分支中时,我不小心将它们合并到了 master 中,并在我发现错误之前将 master 推送到了 github。以为我可以 git-revert 我所做的更改git revert SHA并且它似乎有效......

我认为这已经足够了,我很高兴地切换回我的 ab 分支并继续工作。然而,现在,我意识到以前从ab分支中提交的永远不应该在 master 中结束的提交都在 master 中。这……真是一团糟。由于他的分支最初是从 中分离出来的ab,然后我将它合并到 master 中,我应该使用git revert -m 1 SHA.

今天我试图弄清楚我到底哪里出错了,我对 git 历史和我的 reflog 感到很困惑。首先,我尝试还原还原,然后执行git revert -m 1 SHA但 git 告诉我:

所以我认为好吧......也许那不是合并提交,我需要针对不同的 SHA。但是看看历史,我一生都无法弄清楚其中哪一个是合并提交......

说“这应该在 AB 上”的两个提交是还原提交以还原“已删除的不必要测试”和“删除未使用的视图和页面”提交。对 master 的下一次提交是今天,之前的提交是在 16 日,两者都不相关。我没有看到实际合并发生在哪里。

我浏览了我的 reflog,看看到底哪里出了问题。git reset --hard HEAD@{NUM}我使用然后检查关键文件以查看错误更改是否存在于那个位置,然后使用并检查reflog 版本。最后,我将范围缩小到这些 reflog:

特别是 HEAD@{88} 这里没有错误的提交,而 HEAD@{87} 有。因此有理由假设我在提交上搞砸了merge jeremy_ab_deletions: Fast-forward......但我无法弄清楚那将是哪个“合并提交”。我试过这个:

我......似乎找不到实际的合并提交?有谁知道我做错了什么:/我现在很迷茫。

0 投票
1 回答
310 浏览

git - 如何在 Git 中恢复?

当前的 git 日志:

我是 foo,如果我想恢复到稳定版本(提交 bar123),我应该使用git revert HEAD~1orgit revert HEAD~2吗?也就是说 Merge(commit foo456) 也是有效的 commit 吗,我有点糊涂了。

0 投票
5 回答
23130 浏览

symfony - Composer 还原包

我正在 Symfony 2.1 中构建一个新应用程序。我正在使用许多使用作曲家拉入的捆绑包。很多这些捆绑包在这个最新版本的 Symfony 中存在问题,我不得不进入 /vendor 文件夹来确定问题。

这意味着我正在直接更改供应商文件 - 纯粹是出于测试目的。(当我们修复了一个捆绑包时,我们会分支并提交适当的拉取请求)。

我想知道是否有一些命令composer.phar revert可以撤消对供应商文件夹所做的任何更改(如 git checkout)。目前,如果我运行一个作曲家update,或者install它不这样做。

谢谢

0 投票
2 回答
88 浏览

git - 新的 Git 分支,没有对先前提交的更改

我当前的分支看起来像:

我试图弄清楚如何生成一个新的 git 分支,这将使新的 git repo 看起来像:

这可能吗?我曾考虑过使用 reset ,但这意味着 C 的更改也会丢失,因此请寻找替代方案。

0 投票
1 回答
50 浏览

git - 有什么方法可以帮助恢复 git 中的部分历史提交?

假设我在 git 存储库中有以下提交历史记录(所有更改都在一个文件上进行)

  1. 删除函数foo()bar(),修改函数baz()
  2. 改变别的东西

现在我想重新添加功能foo()。我想要的是一种手动交互的方式来做到这一点。例如,编辑器以并排差异模式打开。一方面是提交 #1 之前的版本(包括功能foo()),另一方面是我的本地工作副本。这样我就可以将任何我想要的东西从历史端复制到工作副本端。

有没有git命令可以帮助我做到这一点吗?

谢谢