哦,见鬼,吉特?

2020-08-16 07:19:18

GIT很难:搞砸很容易,而想要想办法改正你的错误他妈的是不可能的。Git文档有一个鸡和蛋的问题,在这个问题上,你不能搜索如何让自己摆脱困境,除非你已经知道了你需要知道的东西的名称,以便解决你的问题。

因此,这里有一些我让自己陷入的糟糕情况,以及我是如何用简单的英语最终摆脱它们的。

Git reflog#你会看到所有分支在git中做过的每件事的列表!#每件事都有一个索引头@{index}#找到你打破每件事之前的那件事git重置头@{index}#魔法时光机。

您可以使用它来找回意外删除的内容,或者只是删除您尝试破坏回购的内容,或者在错误的合并之后恢复,或者仅仅是回到事情真正正常工作的时候。我经常使用reflog。超级帽子小贴士,献给许多建议添加它的人!

#添加您的更改。#或添加单个文件git COMMIT--ADMAND--NO--EDIT#现在您的最后一次COMMIT包含该更改!#警告:永远不要修改PUBLIC COMMIT。

如果我提交,然后运行测试/linters,这种情况通常会发生在我身上...。还有FML,我没有在等号后面加空格。您也可以将更改作为新的提交,然后执行rebase-i,以便将它们挤在一起,但这大约要快一百万倍。

警告:您不应该修改已推送到公共/共享分支的提交!只修改只存在于您的本地副本中的提交,否则您将会有一段糟糕的时光。

#从master git分支的当前状态创建一个新分支ome-new-Branch-name#从主分支git重置头中删除最后一次提交~-hardgit checkout ome-new-Branch-name#您的提交现在位于此分支中:)

注意:如果您已经将提交推送到公共/共享分支,并且如果您先尝试了其他操作,则可能需要git重置head@{Number-of-Commits-back}而不是head~,这将不起作用。无限的悲伤。此外,许多人提出了一个很棒的方法来缩短这段文字,这是我自己都不知道的。谢谢大家!

#撤消上次提交,但保留更改可用egit重置头~--softgit stash#移动到正确的分支git签出名称正确的分支git stash popgit add。#或添加单个文件git在此处提交您的消息";;#现在您的更改位于正确的分支上。

很多人也建议在这种情况下使用樱桃选择,所以选择对你来说最有意义的选择吧!

Git签出正确分支名称#抓取最后一次提交给master git cherry-ick master#将其从master git签出master重置磁头中删除~--hard。

如果您知道您对文件进行了更改,但是diff为空,那么您可能将文件添加到临时存储中,并且需要使用特殊的标志。

\_(ツ)_/下的文件(是的,我知道这是一个功能,不是错误,但是当它第一次发生在您身上时,它他妈的令人费解,而且不明显!)。

#找到您需要取消签名的提交日志#使用箭头键在历史记录中上下滚动#找到提交后,保存hashgit恢复[保存的散列]#git将创建一个新的提交来撤消该提交#按照提示编辑提交消息#或只保存并提交。

原来您不必跟踪旧文件内容并将其复制粘贴到现有文件中即可撤消更改!如果您提交了错误,您可以使用REVERT一次撤消所有提交。

您还可以还原单个文件,而不是完全提交!但当然,在真正的git时尚中,这是一套完全不同的他妈的命令……。

#在更改文件之前查找提交的散列git log#使用箭头键在历史记录中上下滚动#找到提交后,保存hashgit签出[保存的散列]--path/to/file#文件的旧版本将在您的indexgit提交中-m";哇,您不必复制-粘贴即可撤消";

当我最终弄清楚这件事时,它是巨大的。巨大的。H-U-G-E。但说真的,在哪个该死的星球上结账--作为撤销文件的最佳方式是有意义的?:在Linus-Torvalds握手言和:

感谢埃里克·V的这一次。所有关于这个笑话中使用sudo的抱怨都可以向他投诉。

不过,如果您的分支机构借钱太多,需要以GIT批准的方式将回购的状态重置为与远程回购相同的状态,请尝试此操作,但请注意这些都是破坏性的、不可恢复的操作!!?

#获取Origingit Fetch Origingit checkout master git Reset--hard Origin/master#删除未跟踪的文件和目录git lean-d--force#对每个阻塞的分支重复签出/重置/清理。

*免责声明:本网站不是详尽的参考。是的,还有其他方法可以用更纯粹的理论来做同样的事情,但我是通过反复试验、大量的咒骂和翻桌子来走到这些步骤的,我有一个疯狂的想法,就是用健康的轻率和亵渎来分享它们。要不要,随你便!

非常感谢每个自愿将网站翻译成新语言的人,你太棒了!Moritz Stückler(De)·Daniil Golubev(Ru)·Łukasz Wójcik(Pl)·fedemcmac(It)·Michel(Fr)·Andriy Sultanov(UA)·Meiko Hori(Ja)·Alex Tzimas(GR)·martjn ten Heuvel(NL)·Elad Leev(他)·Franco Fantini(ES)·Catalina Focsa(Ro)。书名:Eduard Tomek(Cs)/Ricky Gultom(Id)。Iain Murray·Frank Taillandier·David Fyffe·Lucas Larson的补充帮助

如果您想帮助将翻译添加到您的语言中,请在GitHub上提交公关