Git 命令大全

初识 git

Git 是一个免费的开放源码的 分布式版本控制系统,用于处理从小到大的项目,速度和效率的一切。
Git 易于学习,具有 闪电般快速的性能,占地面积小。它超越了像 Subversion,CVS,Perforce 和 ClearCase 这样的 SCM 工具,具有易操作的本地分支,便利的分段区域多个工作流等功能

git 命令

  • git:查看 git 是否安装成功

  • git init:创建仓库

  • git status:查看当前状态

  • git add:添加到暂存区,等待被提交,还没真正在仓库

  • git rm --cached:移除添加的缓存,与 git add 相对应

  • git commit -m "描述信息":提交到仓库,并添加描述信息

  • git log:查看所有产生的 commit 记录

  • git branch:查看当前分支情况

  • git branch -r:查看远程分支

  • git branch X:创建 X 分支

  • git checkout X:切换到 X 分支

  • git checkout X.XX:撤销到原来的 X.XX 文件(只对没有执行 git add 文件有效)

  • git checkout -b X:创建 X 分支,并且自动切换到 X 分支

  • git merge X:将 X 分支合并到主分支,前提是先切换到主分支(暴力合并但条理清晰)

  • git rebase X:将 X 分支合并到主分支,前提是先切换到主分支(进行比较排序合并但条理不清晰)

  • git branch -d X:删除 X 分支,前提是已经合并到主分支,否则不能删除

  • git branch -D X:强行删除 X 分支,无论什么情况

  • git push origin :X:删除远程 X 分支

  • git checkout X origin/X:将远程 X 分支迁到本地并以 X 命名分支(远程有 X 分支而本地没有的情况下)

  • git checkout -b X origin/X:将远程 X 分支迁到本地并以 X 命名分支并切换到该分支(远程有 X 分支而本地没有的情况下)

  • git tag:查看历史 tag 记录

  • git tag v1.0:创建 v1.0 标签

  • git checkout v1.0:切换到 v1.0 版本状态

  • git diff:比较差异(红色显示删除的内容,绿色显示增加的内容)

  • git diff <​id2>:比较两次提交之间的差异

  • git diff <branch1>..<branch2>:比较两分支之间的差异

  • git diff --staged:比较暂存区和版本库之间的差异

  • git stash:把当前分支所有没 commit 得代码暂存起来

  • git stash list:查看暂存区记录

  • git stash apply:暂存申请还原,继续上次暂存处

  • git stash drop:删除最近一条暂存区记录

  • git stash pop:还原上次暂存处并删除最近一条暂存区记录(相当于执行 git stash apply + git stash drop)

  • git stash clear:清空所有暂存区记录

  • ssh:查看是否安装 SSH(一种网络协议,用于计算机之间加密登陆)

  • ssh-keygen -t rsa:指定 rsa 算法生成密钥,接着连续三个回车生成两个文件 id_rsa 和 id_rsa.pub,id_rsa 是密钥,id_rsa.pub 是公钥,两个文件默认生成目录:Mac/Linux 系统在:~/.ssh 下,Windows 系统在:/c/Documents and Settings/username/.ssh 下,为隐藏文件

  • ssh -T git@github.com:测试 SSH key 是否添加成功

  • git clone git@github.com:github用户名/仓库名称:将远程 github 仓库克隆到本地

  • git push origin master:将本地代码推到远程 master 分支,保持代码同步(push 之前先 pull,避免冲突)

  • git pull origin master:把远程 master 分支代码拉到本地,保持代码同步(push 之前先 pull,避免冲突)

  • git remote -v:查看当前项目有哪些远程仓库

  • git config --global user.name "用户名":设置全局用户名

  • git config --global user.email "邮箱":设置全局邮箱

  • git config --global user.name :查询全局用户名

  • git config --global user.email:查询全局邮箱

  • git config user.name "用户名":设置当前用户名

  • git config user.email "邮箱":设置当前邮箱

  • git config user.name :查询当前用户名

  • git config user.email:查询当前邮箱

  • git config --global alias.co commit:给 commit 指令设置全局别名为co(其他指令以此类推)

  • git config --global alias.psm 'push origin master':给 push origin master 组合指令设置全局别名为 psm(其他组合指令以此类推)

git 设置

  • git config --global core.editor "vim":设置 editor 使用 vim

  • git config --global color.ui true:开启 git 着色

  • git config --global core.quotepath false:设置显示中文文件名

团队合作利器 Git Flow

Git Flow 是一种比较成熟的分支管理流程,比较适合三五个人团队合作开发项目,是一种多人协作下的分支管理规范。点此查看 Git Flow 安装使用

工作流程
通过一张图描述整个工作流程:

Git Flow 分支工作流程图

各阶段名词解释

  • master:永远处在即将发布状态。
  • develop:最新开发状态。
  • feature:开发新功能的分支,基于 develop 分支,完成后 merge 回 develop。
  • release:准备要发布版本的分支,用来修复 bug,基于 develop,完成后 * * merge 回 develop 和 master。
  • hotfix:修复 master 上的问题,等不及 release 版本就必须马上上线,基于 master,完成后 merge 回 master 和 develop。

相关规范

  • git branch feature/A:假设已经有 master 和 develop 两个分支,需要添加新功能 A,第一步要做的就是基于 develop 新建一个分支 A,规定所有开发的功能都以 feature 为前缀。
  • git branch hotfix/B:出现紧急 bug 修复的情况下,立刻切换到 master 分支,然后在此基础上新建分支 B,代表新建了一个紧急修复分支,修复完成后合并到 develop 和 master,然后发布。
  • git branch release/1.0:feature 新功能开发完了,合并回 develop 分支,感觉可以发布到正式环境了,新建一个 release 分支。期间发现 bug 直接修改,直到达到发布标准,最后把该分支合并到 develop 和 master 然后进行发布。

专业名词解释

  • status:状态
  • cached:贮藏
  • stash:暂存
  • commit:提交
  • checkout:切换
  • branch:分支
  • diff:差异
  • clone:克隆
  • push:推
  • pull:拉
  • origin:原点
  • remote:远程
  • global:全局
  • conflicts:冲突

吐血推荐

learn-github-from-zero-pdf 是 Android 大神 stormzhang 的良心之作,本篇博客就是阅读此教程提炼的。希望你看完他的教程能有自己的收获。
原创不易,请尊重他人的劳动成果,欢迎转载,但请注明出处。

morninggeng
05/04/2017

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • Add & Commit git init 初始化一个 Git 仓库(repository),即把当前所在目录变成...
    冬絮阅读 4,778评论 0 8
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,449评论 1 26
  • Git命令 # git知识点 ##用命令行创建一个新的存储库 echo "# Documents" >> READ...
    呼呼哥阅读 387评论 0 0
  • git init # 初始化本地git仓库(创建...
    Babyzpj阅读 254评论 0 0
  • 有话说,未曾听完先回答的,便是他的愚昧。就是心急发言,抢话说,这个毛病在我身上存在很久了,以前严重,现在...
    先谦虚后受益阅读 626评论 1 4