当前位置: 首页 > 科技观察

git高级用法备忘单

时间:2023-03-12 02:42:47 科技观察

如果你觉得git令人困惑,那么这张备忘单适合你!请注意,我有意跳过了gitcommit、gitpull/push等基本命令,此备忘单的主题是git的一些“高级”用法。导航-跳转到上一个分支gitcheckout-viewhistory#每次提交显示在一行gitlog--oneline#在所有提交日志中搜索包含“homepage”的提交gitlog--all--grep='homepage'#获取某人的提交loggitlog--author="Maxence"糟糕:之前重置了一个我不想保留的提交,但现在想回滚?#获取所有操作历史gitreflog#重置为对应的提交gitresetHEAD@{4}#...或者...gitreset--hard具体可以看我的另一篇文章What'shappenwhenyougitcommit哎呀:我在我的本地回购中弄得一团糟,我应该如何清理它?gitfetchorigingitcheckoutmastergitreset--hardorigin/master查看我的分支和主分支之间的区别gitdiffmaster..my-branch自定义提交#edit最后一次提交gitcommit--amend-m"bettercommitlog"#Appendsomethingtothelastcommit,Keepthecommitlogunchangedgitadd.&&gitcommit--amend--no-edit#空提交-可用于重新触发CI构建gitcommit--allow-empty-m"chore:re-triggerbuild"如果你不知道如何写提交日志,看我的文章Angular-stylecommitlogconventions。squashsubmission比如我要rebase最后3次提交:gitrebase-iHEAD~3把pick留在第一行,把剩下的submission替换成squash或者s清理提交log并保存(输入:wqinvi编辑器保存)pick64d26a1feat:addindex.jss45f0259fix:updateindex.jss8b15b0afix:typoinindex.jsFix例如,你想添加一些内容到提交fed14a4c。gitcommitbranchgitadd.gitcommit--fixupHEAD~1#或者用提交的哈希值(fed14a4c)替换HEAD~1gitrebase-iHEAD~3--autosquash#保存退出文件(VI中输入`:wq`)rebase时在每次提交时执行命令,如果有很多特性,一个分支中可能有多个提交。如果测试失败,您希望能够找到导致测试失败的提交。此时您可以使用rebase--exec命令在每次提交时执行命令。#在最后3次提交上运行`npmtest`命令gitrebaseHEAD~3--exec"npmtest"stagingstaging不仅仅是gitstash和gitstashpop;)#Saveallfilesthatarebeingtrackedgitstashsave"loginfo"#list所有暂存项gitstashlist#获取和删除暂存项gitstashapplystash@{1}gitstashdropstash@{1}#...或者使用命令...gitstashpopstash@{1}cleanup#删除远程不存在的分支warehousep#Removeallbranchescontaining`greenkeeper`gitfetch-p&&gitbranch--remote|fgrepgreenkeeper|sed's/^.\{9\}//'|xargsgitpushorigin--deleteGitHub=Git+Hub我把Hub当作git使用的包。如果你想做同样的事情,你可以设置一个别名:aliasgit='hub'#打开浏览器访问仓库url(仅适用于GitHub仓库)。gitbrowse的其他命令可以参考这里。奖励:我最喜欢的gitaliasaliasg='git'aliasglog='gitlog--oneline--decorate--graph'aliasgst='gitstatus'aliasgp='gitpush'aliasga='gitadd'aliasgc='gitcommit-v'#🤘aliasyolo='gitpush--force'#使用git-standup(){AUTHOR=${AUTHOR:="`gitconfiguser.name`"}since=yesterdayif[[$(date+%u)==1]];thensince="2daysago"figitlog--all--since"$since"--oneline--author="$AUTHOR"}你最喜欢的git命令是什么?感谢您花时间阅读本文。我希望你发现这篇文章有帮助!