这是前端食堂的第28篇原创
「观感度:????????????????????」
「口味:椒麻鸡丝」
「烹饪时间:10min」
本文已收录在
Github
/Geekhyt/front-end-canteen,感谢Star。
Git 的命令实在是太多了,有的小伙伴就说了,我可以用客户端(Source Tree、Gitkraken、tortoiseGit)它们不香吗?
通常情况下,一些简单操作是香的。但是建议你不要越过命令行这座山而直接去使用 GUI。(而且强烈建议学习一下 Git 的原理)
先不论 GUI 是否支持复杂的操作,当你在实际工作中遇到问题的时候,可能你无法找到 GUI 的解决方案,因为搜索引擎查出来的都是命令行。而且命令行的错误提示是非常详细的,你可以准确锁定你错误的原因以及正确的使用方法,孰能自然生巧。
其次,程序员使用命令行是一件多么酷的事情啊,在黑框框里操作的时候难道没有一种黑客既视感吗?这不就是小时候梦想着成为的样子么?:)
请你给你的热爱多一点点坚持!
本文整理了一些常用的 Git 操作,老司机可以温故知新,新手可以点赞收藏。文末提供了入门教程及学习资源,请自行下滑~
配置操作
全局配置
gitconfig--globaluser.name'你的名字'gitconfig--globaluser.email'你的邮箱'
当前仓库配置
gitconfig--localuser.name'你的名字'gitconfig--localuser.email'你的邮箱'
查看 global 配置
gitconfig--global--list
查看当前仓库配置
gitconfig--local--list
删除 global 配置
gitconfig--unset--global要删除的配置项
删除当前仓库配置
gitconfig--unset--local要删除的配置项
本地操作
查看变更情况
gitstatus
将当前目录及其子目录下所有变更都加入到暂存区
gitadd.
将仓库内所有变更都加入到暂存区
gitadd-A
将指定文件添加到暂存区
gitadd文件1文件2文件3
比较工作区和暂存区的所有差异
gitdiff
比较某文件工作区和暂存区的差异
gitdiff文件
比较暂存区和 HEAD 的所有差异
gitdiff--cached
比较某文件暂存区和 HEAD 的差异
gitdiff--cached文件
比较某文件工作区和 HEAD 的差异
gitdiffHEAD文件
创建 commit
gitcommit
将工作区指定文件恢复成和暂存区一致
gitcheckout文件1文件2文件3
将暂存区指定文件恢复成和 HEAD 一致
gitreset文件1文件2文件3
将暂存区和工作区所有文件恢复成和 HEAD 一样
gitreset--hard
用 difftool 比较任意两个 commit 的差异
gitdifftool提交1提交2
查看哪些文件没被 Git 管控
gitls-files--others
将未处理完的变更先保存到 stash 中
gitstash
临时任务处理完后继续之前的工作
pop 不保留 stash
apply 保留 stash
gitstashpop
gitstashapply
查看所有 stash
gitstashlist
取回某次 stash 的变更
gitstashpopstash@{数字n}
优雅修改最后一次 commit
gitadd.gitcommit--amend
分支操作
查看当前工作分支及本地分支
gitbranch-v
查看本地和远端分支
gitbranch-av
查看远端分支
gitbranch-rv
切换到指定分支
gitcheckout指定分支
基于当前分支创建新分支
gitbranch新分支
基于指定分支创建新分支
gitbranch新分支指定分支
基于某个 commit 创建分支
gitbranch新分支某个commit的id
创建并切换到该分支
gitcheckout-b新分支
安全删除本地某分支
gitbranch-d要删除的分支
强行删除本地某分支
gitbranch-D要删除的分支
删除已合并到 master 分支的所有本地分支
gitbranch--mergedmaster|grep-v'^\*\|master'|xargs-n1gitbranch-d
删除远端 origin 已不存在的所有本地分支
gitremotepruneorign
将 A 分支合入到当前分支中且为 merge 创建 commit
gitmergeA分支
将 A 分支合入到 B 分支中且为 merge 创建 commit
gitmergeA分支B分支
将当前分支基于 B 分支做 rebase,以便将B分支合入到当前分支
gitrebaseB分支
将 A 分支基于 B 分支做 rebase,以便将 B 分支合入到 A 分支
gitrebaseB分支A分支
变更历史
当前分支各个 commit 用一行显示
gitlog--oneline
显示就近的 n 个 commit
gitlog-n
用图示显示所有分支的历史
gitlog--oneline--graph--all
查看涉及到某文件变更的所有 commit
gitlog文件
某文件各行最后修改对应的 commit 以及作者
gitblame文件
标签操作
查看已有标签
gittag
新建标签
gittagv1.0
新建带备注标签
gittag-av1.0-m'前端食堂'
给指定的 commit 打标签
gittagv1.0commitid
推送一个本地标签
gitpushoriginv1.0
推送全部未推送过的本地标签
gitpushorigin--tags
删除一个本地标签
gittag-dv1.0
删除一个远端标签
gitpushorigin:refs/tags/v1.0
远端交互
查看所有远端仓库
gitremote-v
添加远端仓库
gitremoteaddurl
删除远端仓库
gitremoteremoveremote的名称
重命名远端仓库
gitremoterename旧名称新名称
将远端所有分支和标签的变更都拉到本地
gitfetchremote
把远端分支的变更拉到本地,且 merge 到本地分支
gitpullorigin分支名
将本地分支 push 到远端
gitpushorigin分支名
删除远端分支
gitpushremote--delete远端分支名
gitpushremote:远端分支名
参考及 Git 学习资源
玩转 Git 三剑客 苏玲
阮一峰 Git 工作流程
/blog//12/git-workflow.html/
廖雪峰的 Git 教程
/wiki/896043488029600/896067008724000/
awesome-git
/dictcp/awesome-git/
小姐姐手把手教你动画图解 Git 命令
https://dev.to/lydiahallie/cs-visualized-useful-git-commands-37p1/
17k Star的学习 Git 游戏
/pcottle/learnGitBranching/
Github 官方教程
/
Git commit message 规范
https://juejin.im/post/5d0b3f8c6fb9a07ec07fc5d0/
这才是真正的Git——Git内部原理揭秘!
/p/96631135
❤️爱心三连击
1.看到这里了就点个在看支持下吧,你的「在看」是我创作的动力。
2.关注公众号前端食堂,「你的前端食堂,记得按时吃饭」!
3.本文已收录在前端食堂Github
/Geekhyt,求个小星星,感谢Star。
推荐阅读:
「时间管理」JavaScript算法时间、空间复杂度分析
前端如何搞定数据结构与算法(先导篇)
在看和转发是莫大鼓励❤️
如果觉得《Git命令行备忘录》对你有帮助,请点赞、收藏,并留下你的观点哦!