失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Git命令行备忘录

Git命令行备忘录

时间:2019-10-16 19:27:58

相关推荐

Git命令行备忘录

这是前端食堂的第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命令行备忘录》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。