「入门必备」GIT必须知道的命令

GIT必备

学GIT一定要牢记下图以及箭头所示命令执行结果

箭头的起点标识执行命令后数据的来源,箭头的终点表示命令执行后的数据目的地

「入门必备」GIT必须知道的命令

GIT必备图

首先要明白这几个概念

  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库

简要介绍上述常用命令: 黑色字体为我工作中常用的命令,其他也都是必须要知道的和了解的

场景1、当我们刚安装GIT我们需要如下操作

1、clone 从GIT远程服务器下载源代码到本地仓库

2、checkout 切分支。下载完代码,我们可能在master分支,需要基于master切一个新分支。到工作区

3、add 我们在新分支的创建,修改 需要加到暂存区 index

4、commit 将我们刚刚加到暂存区的代码,提交到本地仓库

5、push 将我们本地仓库的提交,推送到远程服务器

场景2、开发中发现服务端有其他同学提交的代码,怎么办

1、pull 从服务端拉取最新代码到本地工作区

以上是对上图的常见操作,但是工作中还有更多的命令需要我们掌握,接下来详细介绍

一、工作区的文件

提交到暂存区

1、git add [文件名1] [文件名2] ... 添加指定文件

2、git add . 一次性添加所有工作区文件到暂存区

3、 git rm [文件名1] [文件名] ... 删除工作区文件,并且将这次删除放入暂存区

二、提交,将暂存区的文件,提交到本地仓库

message是提交说明

1、git commit -m [提交信息] 提交暂存区到仓库区

2、git commit [文件名1] [文件名2] ... -m [提交信息] 提交暂存区的指定文件到仓库区

3、 git commit -am [提交信息] 提交工作区自上次commit之后的变化,直接到仓库区,比较常用 节省了加入暂存区的过程

三、分支操作

1、git branch 列出本地所有分支

2、git branch -r 列出远程所有分支

3、git branch -a 列出本地和远程所有分支

4、 git branch [分支名] 新建一个分支,但依然停留在当前分支

5 、git checkout -b [分支名] 新建一个分支,并切换到该分支 branch-name为新建的分支名称

6、 git checkout [分支名] 切换到指定分支

7、 git checkout - 切换到上一个分支

8、 git branch -d [分支名

] 删除本地分支 不能删除当前所在分支,需要切换到其他分支时使用

9、git push origin --delete [分支名] 删除远程分支

10、git merge [分支名] 合并指定分支到当前分支 一般都是将master合并到当前分支

分支切换利器,我们经常会遇到,正在一个分支上开发,写了很多东西,其中提交了一部分,一部分正在写,还没写完,这时突然来个线上问题,需要我们切换到线上分支去处理,我们怎么办,提交?还没写完,还不能通过编译,不提交,放弃?更不可能 辛苦工作一天了。这时就需要下面这个命令,特别长用

git stash 暂时将未提交的变化暂存,形成类似一个快照,然后就可以随意切换到其他分支了。

git stash pop 当在其他分支解决完问题,切换到当前分支,执行该命令,之前的暂存快照又恢复了,可以继续工作了

四、撤销操作

我们会经常遇到写完的代码,或者提交的代码需要回滚,也就是撤销或者回退到某个状态,这个就是考验GIT熟悉程度了。GIT出错最多的时候就是merge 和撤销。这里要多下点功夫,否则和没用过GIT也没什么区别

1、恢复暂存区的指定文件到工作区(将工作区修改的内容,恢复和暂存区一样),比如你刚刚修改了某个文件,还没有add操作,想放弃修改,但是改的太零散那就是用如下命令。

git checkout [文件名] 恢复指定文件

git checkout . 恢复全部文件

2、重置文件到指定commit,有多种状态,注意区分

git checkout [某次提交的hash值] [文件名] 恢复某个commit的指定文件到暂存区和工作区

git reset --hard 重置暂存区与工作区,与上一次commit保持一致

git reset [commit] 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变

git reset --hard [commit] 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致

git reset --keep [commit] 重置当前HEAD为指定commit,但保持暂存区和工作区不变

3、一个比较特殊的重置,以新的提交来覆盖,需要仔细思考,对比和reset的区别

git revert [commit] 新建一个commit,用来撤销指定commit 后面的所有变化都将被抵消,并且应用到当前分支

五、其他查看命令

git status 显示有变更的文件,以及当前所处分支

git log 显示当前分支的版本历史

git log --stat 显示commit历史,以及每次commit发生变更的文件

git log -S [关键词] 搜索提交历史,根据关键词

git diff 对比文件修改了哪些内容

git diff HEAD 显示工作区与当前分支最新commit之间的差异

好了这是我常用的GIT命令,如有不足 多多指出。


分享到:


相關文章: