当前位置: 首页 > Linux

如果您喜欢,请使用Git的这些高级用法!

时间:2023-04-07 01:23:06 Linux

如果你觉得git令人困惑,这个备忘单适合你!请注意,我有意跳过了gitcommit、gitpull/push等基本命令,此备忘单的主题是git的一些“高级”用法。导航-跳转到上一个分支gitcheckout-viewhistory#在一行中显示每个提交gitlog--oneline#在所有提交日志中搜索包含“主页”的提交gitlog--all--grep='homepage'#获取某人的commitloggitlog--author="Maxence"糟糕:之前重置了一个你不想保留的提交,但现在你想回滚?#获取所有操作历史gitreflog#重置为相应的提交gitresetHEAD@{4}#...或者...gitreset--hard<提交哈希>糟糕:我搞砸了我的本地仓库,我该怎么办清理?gitfetchoriginitcheckoutmastergitreset--hardorigin/master查看mybranch和master的区别gitdiffmaster..my-branchcustomsubmission#编辑上次提交gitcommit--amend-m"bettercommitlog"#Append最后提交的东西,保持提交日志不变gitadd。&&gitcommit--amend--no-edit#Emptycommit-可用于重新触发CIbuildgitcommit--allow-empty-m"chore:re-triggerbuild"squashcommit假设我想重新设置最后3个提交:-gitrebase-iHEAD~3-将pick保留在第一行,用squash或s替换剩余的提交-清理提交日志并保存(在vi编辑器中键入:wq以保存)pick64d26a1feat:addindex.jss45f0259fix:updateindex.jss8b15b0afix:index.js中的拼写错误修正例如,我想在提交的fed14a4c中添加一些内容。gitcommitbranchgitadd.gitcommit--fixupHEAD~1#或者用提交的哈希值(fed14a4c)替换HEAD~1gitrebase-iHEAD~3--autosquash#保存并退出文件(在VI中输入`:wq`)rebase时在每次提交时执行命令如果有很多特性,一个分支中可能有多个提交。如果测试失败,您希望能够找到导致测试失败的提交。此时您可以使用rebase--exec命令在每次提交时执行命令。#在最后3次提交上运行`npmtest`命令gitrebaseHEAD~3--exec"npmtest"stagingStash不仅仅是gitstash和gitstashpop;)#保存所有被跟踪的文件gitstashsave"日志信息"#列出所有存储项gitstashlist#获取和删除存储项gitstashapplystash@{1}gitstashdropstash@{1}#...或使用命令...gitstashpopstash@{1}清理#移除远程仓库不存在的分支gitfetch-p#移除所有包含`greenkeeper`的分支gitfetch-p&&gitbranch--remote|fgrep绿卫|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"}作者:MaxencePoutord来源:https://dev.to/maxpou/git-切…