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 ..:比较两分支之间的差异

  • 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 [email protected]:测试 SSH key 是否添加成功

  • git clone [email protected]: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 命令大全_第1张图片
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

你可能感兴趣的:(Git 命令大全)