通常gitrevert命令会自动创建一些带有提交日志消息的提交,说明哪些提交已被还原。要避免自动提交,可以选择-n(或--no-commit)。但是在这个命令之后,还原的文件在暂存区。我可以使用命令gitresetHEAD取消暂存它们。有没有无需提交和暂存的直接还原提交的方法?换句话说:是否有直接命令来恢复提交,仅将更改应用于工作目录,而不触及索引? 最佳答案 没有针对它的单一命令。正如您已经注意到的,您可以将gitrevert-n与gitreset结合使用以在索引中撤消还原。除此方法外,您还可以使用gitapply-R来“反向应用
我不小心对我的存储库中的错误分支运行了命令-有没有办法撤消此更改? 最佳答案 gitrevert只是创建一个新提交——您可以使用gitreset--hardHEAD^“删除”它(不过要更小心!) 关于git-有什么办法可以撤销"gitreverthead"的影响吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3662543/
我刚刚做了一个gitcommit-m"blah"然后我添加了一些文件,如何回滚和删除当前文件中尚未添加/提交的内容? 最佳答案 CaveatEmptor-前方有破坏性命令。缓解措施-gitreflog可以在您需要时拯救您。1)UNDO本地文件更改并KEEP你最后一次提交gitreset--hard2)UNDO本地文件更改并REMOVE你最后一次提交gitreset--hardHEAD^3)KEEP本地文件更改并REMOVE你最后一次提交gitreset--softHEAD^ 关于git-
我有一个远程Git存储库,我需要将最后的n提交回滚到冷遗忘状态。 最佳答案 您可以使用gitrevert…对于所有n次提交,然后像往常一样推送,保持历史不变。或者您可以使用gitreset--hardHEAD~n“回滚”.如果您正在推送公共(public)或共享存储库,您可能会根据您的原始分支分散和破坏其他人的工作。Git会阻止你这样做,但你可以使用gitpush-f强制更新。 关于git-回滚远程Git存储库,我们在StackOverflow上找到一个类似的问题:
这个问题在这里已经有了答案:关闭11年前。PossibleDuplicates:Undoinga'gitpush'我推送了一些错误的代码,而且我是存储库的唯一用户。如何回滚上次提交?
所以我正在和其他人一起做一个项目,并且有多个github分支正在处理。有人刚刚修复了一个问题,我用他的forkmerge了,但后来我意识到我可以找到更好的解决方案。我想恢复我刚刚做出的promise。我尝试使用gitrevertHEAD执行此操作,但它给了我这个错误:fatal:Commitisamergebutno-moptionwasgiven.这是什么意思?当我merge并提交时,我确实使用了-m选项来表示“与merge”。我在这里做错了什么? 最佳答案 默认情况下gitrevert拒绝还原merge提交,因为它的实际含义不明
我正在尝试学习如何将文件和项目还原或回滚到以前的状态,并且不了解gitrevert,checkout和reset之间的区别。为什么有3个不同的命令看似相同的目的,以及何时应该选择一个而不是另一个? 最佳答案 这三个命令的用途完全不同。它们甚至都不遥不可及。gitrevert该命令将创建一个新的提交,以撤消对先前提交的更改。此命令将新历史记录添加到项目中(它不会修改现有历史记录)。gitcheckout此命令从存储库中checkout内容,并将其放入您的工作树中。它也可能具有其他效果,具体取决于调用命令的方式。例如,它还可以更改您当前
我的存储库现在有100个提交。我需要回滚存储库以提交80,并删除所有后续的。为什么?这个repo应该是为了merge来自其他用户的。由于过多的编辑,我提交了一堆merge。那是由于我的远程分支标记错误,其中3个开发人员被标记为彼此。我需要重新回到那个点,然后向前pull。我想rebase,如本例所示:HowcanIremoveacommitonGitHub?但是,git要我做很多冲突管理工作。有没有更简单的方法? 最佳答案 gitreset--hardgitpush-f注意:正如下面的评论所写,在协作环境中使用它是危险的:你正在重写
这个问题在这里已经有了答案:HowdoIrevertaGitrepositorytoapreviouscommit?(41个回答)关闭8年前。我克隆了一个Git存储库,然后尝试将其回滚到开发过程早期的特定提交。在那之后添加到存储库的所有内容对我来说都不重要,因此我想省略本地源代码中的所有后续更改。但是,当我尝试在GUI工具中回滚时,它不会更新我的本地文件系统-我总是以项目的最新源代码结束。仅获取项目历史中特定提交的存储库源代码并忽略所有后续更新的正确方法是什么?
如何回滚到git中的特定提交?有人能给我的最佳答案是使用gitrevertX次,直到我达到所需的提交。假设我想恢复到20次提交之前的提交,我必须运行它20次。有没有更简单的方法来做到这一点?我不能使用重置,因为这个存储库是公开的。 最佳答案 试试这个:gitcheckout[revision].其中[revision]是提交哈希(例如:12345678901234567890123456789012345678ab)。不要忘记最后的.,非常重要。这会将更改应用于整棵树。您应该在git项目根目录中执行此命令。如果您在任何子目录中,则此