与其他技术相比,Git应该可以挽救更多开发人员的工作。只要您定期使用Git来保存您的工作,您将始终有机会将您的代码恢复到以前的状态,这样您就可以撤消您在半夜犯下的那些错误。也就是说,Git的命令行界面是出了名的难以掌握。接下来,我将向您介绍7个技巧,以最大限度地发挥Git的作用。通常,我们大部分时间只使用命令add、commit、branch和push/pull。大多数人都熟悉这组只朝一个方向发展的工作流程。你有没有想过,如果你在仓库中添加了错误的文件,或者将代码提交到了错误的分支,提交信息错误,如何取消之前的操作?如果你也像上面漫画中描述的那样操作(即删除本地项目文件夹,然后重新下载仓库),那么你需要了解下面的Git使用技巧。1、修改错误的提交信息(commitmessage)提交信息会长期保留在你的代码库(codebase)中,所以你肯定要利用这些信息来正确了解代码修改情况。下面的命令可以让你编辑最新的提交信息,但是你必须确保没有对当前代码库(工作副本)进行任何更改,否则这些更改也会一起提交。$gitcommit--amend-m"YOUR-NEW-COMMIT-MESSAGE"如果你已经将代码提交(gitcommit)(gitpush)推送到远程分支,那么你需要通过以下方式强制推送本次代码提交命令。$gitpush--force您可以在StackOverflow网站上关注此问答以获取更多详细信息。2.提交前撤消gitadd如果你在暂存区添加了一些错误的文件,但是还没有提交代码。您可以使用简单的命令撤消它。如果你只需要删除一个文件,那么请输入:$gitreset或者如果你想从临时存储区中删除所有未提交的更改:$gitreset你可以在StackOverflow网站上按照这个问答,了解更多详情。3.撤消最后一次代码提交有时您可能不小心提交了错误的文件或遗漏了一些东西。以下三个步骤可以帮助您解决这个问题。$gitreset--softHEAD~1#对工作文件进行必要的更改$gitadd-A.$gitcommit-cORIG_HEAD当你执行第一个命令时,Git会将HEAD指针移回上一个提交,之后您可以移动文件或进行任何必要的更改。然后你可以添加所有更改,当你执行***命令时,Git将打开你的默认文本编辑器,其中将包含上次提交的信息。您可以根据需要修改提交消息,也可以通过在***命令中使用-C而不是-c来跳过此步骤。4、Git仓库恢复到上一次提交的状态“Reverting”(还原)在很多情况下是非常有必要的——尤其是当你把代码搞乱的时候。最常见的情况是,你想回到以前版本的代码,查看当时的代码库,然后再回到当前状态。这可以通过以下命令实现:$gitcheckout""是你要查看的提交的哈希值(HashCode)的前8到10个字符。此命令将分离指针,允许您查看代码而无需检查任何分支-从HEAD分离并不像听起来那么可怕。如果你想在这种情况下提交更改,你可以通过创建一个新分支来实现:$gitcheckout-b要回到当前的工作进度,只需检出(checkout)你之前所在的位置只是分支.您可以在StackOverflow上关注此问答以了解更多详细信息。5.撤消合并(Merge)要撤消合并,你可能要使用恢复命令(HARDRESET)回到上次提交的状态。“merge”所做的基本上是重置索引并更新工作树(workingtree)中的不同文件,即当前commit()代码与HEAD光标指向的代码之间的不同文件;但合并将保留索引与工作树的差异(例如那些未跟踪的修改)。$gitcheckout-b当然Git中总有其他的实现方式,可以查看这篇文章继续了解。6.从当前Git分支中删除未跟踪的本地文件假设您碰巧有一些未跟踪的文件(因为您不再需要它们)并且不希望它们在您每次使用gitstatus命令时都显示出来。以下是解决此问题的一些方法:$gitclean-f-n#1$gitclean-f#2$gitclean-fd#3$gitclean-fX#4$gitclean-fx#5(1):选项-n将显示执行(2)时将删除哪些文件。(2):此命令将删除命令(1)中显示的所有文件。(3):如果你还想删除文件,使用选项-d。(4):如果只想删除被忽略的文件,使用选项-X。(5):如果要删除被忽略和未被忽略的文件,使用选项-x。请注意***两个命令中X的区别。更详细的请看官方文档中对git-clean的介绍。7.删除本地和远程Git分支删除本地分支:$gitbranch--delete--force或使用选项-D简写:$gitbranch-D删除远程分支:$gitpushorigin--delete>建议:为了更好的掌握Git的用法,请仔细阅读Git官方文档。来源:Codingpy原文:https://medium.freecodecamp.com/7-git-hacks-you-just-can-t-ignore-41aea137727a作者:RiteshShrivastav译文:http://www.codingpy.com/article/七个git-hacks-you-just-cannot-ignore/