如何快速掌握git命令

2019-01-09  本文已影响0人  阿夸漫谈

Git 是程序员工作必备的技能之一,本文将从基本概念、常见操作、快捷技巧三个方面进行介绍,总结工作中常用的 Git 命令,使你能够快速脱离 Git 可视化工具,掌握 Git。

1. 基本概念


1.1 4个区

工作区
暂存区
本地仓库
远程仓库

1.2 5种状态

未修改:对应区为工作区
已修改:对应区为工作区
已暂存:对应区为暂存区
已提交:对应区为本地仓库
已推送:对应区为远程仓库

平时我们修改和未修改的代码都属于工作区,git add 即把已修改的代码暂时存储,代码进入暂存区,git commit 即把暂存的代码提交到本地仓库,产生一条提交记录,git push 即将本地仓库推送到远程仓库,代码实现远程共享。

2. 常见操作


2.1 本地初始化

主要有两种方法,一种是 clone 项目,另一种是本地创建再连接到远程项目。下面以 github 为例:

git clone git@github.com:userName/projectName.git
cd projectName   // 进入项目文件夹
git init         // 初始化
git remote add origin git@github.com:userName/projectName.git  // 连接到远程 github 项目

第二种方法要首先确保远程仓库已经创建。

2.2 分支创建和提交

通常,代码都在分支上进行开发,分支开发的命令几乎是 Git 中最常用的命令,下面罗列了分支开发中的常用命令并加以说明。

git checkout -b project-dev   // 创建 project-dev 分支
git branch                    // 查看分支
git status                    // 显示工作区和暂存区的状态
git add .                     // 将工作区的所有变化提交到暂存区
git commit -m 'message'       // 将暂存区提交到本地仓库
git checkout dev              // 切换到 dev 分支
git merge project-dev         // 将 project-dev 合并到 dev 分支
git pull                      // 拉取仓库仓库代码
git push origin dev           // 提交本地仓库代码
git branch -d zproject-dev    // 删除 project-dev 分支

切换分支时,记得将代码提交到本地仓库,避免未提交的代码一同切换。

2.3 撤销更改

实际工作中,经常会出现提交错误的情况,所以撤销更改的操作要牢记于心。处于不同状态下的撤销更改是不同的:

# 方法1:撤销所有修改
git checkout .
# 方法2:撤销所有修改
git reset --hard
# 撤销指定的文件,保留更改
git reset <file>
# 撤销所有的文件,保留更改
git reset
# 撤销所有的文件,不保留更改
git reset --hard
# 撤销 commit 操作,保留文件变化
git reset HEAD~1
# 撤销 commit 操作,删除变化
git reset --hard HEAD~1
# 退回到指定版本
git reset --hard <commit_id>
# 强制覆盖远程分支
git push -f

2.4 指定版本修复

线上代码出现问题,需要紧急修复,而 dev 分支上正在开发下一个版本,此时我们就要新开分支,来进行代码修复,并合并到线上分支。

git branch -a                                   // 查看所有分支
git checkout -b repair_dev origin/repair_dev    // 创建远程分支 repair_dev,并切换到 repair_dev分支
...                                             // 在分支上进行修改提交
git checkout dev                                // 切换回 dev 分支
git merge repair_dev                            // 合并分支 repair_dev
git branch -D repair_dev                        // 删除分支

3. 快捷技巧


从常用操作中可以看出,在 git 的使用过程中,部分命令的使用非常频繁,例如

git status
git add .
git commit -m msg

每次的重复输入操作很繁琐,为此 git 提供别名 alias 的设置,使用 alias 别名设置可以简化我们的操作

3.1 alias

git config --global alias.ci commit

设置之后,以后提交到本地仓库就简写为

git ci -m msg

看起来是不是简短了很多?但这种方法每次只能简化一个命令,主要是用来简化参数。

3.2 自定义指令

我们可以通过配置相应文件,来简化我们的命令,打开 git 安装目录下的 etc/bash.bashrc,在最后一行添加

source /etc/git-completion.bash

对 git-completion.bash 文件进行引用,保存之后再打开 /etc/git-completion.bash ,添加属于自己的自定义指令,例如我配的自定义指令

alias ci='git add . && git commit'
alias project='cd d:/first/second/third/project'

配置好之后重启 git bash ,此时输入 project 就可以直接进入项目路径,提交代码则为

project
ci -m msg

是不是更简短了?我们可以通过在 git-completion.bash 定义各种指令,定制出一套属于自己的指令。

3.3 结合 VS Code

除此之外,我们还可以将自定义指令和 VS Code 的快捷指令结合,例如 VS Code 可以在 git bash 通过 code 命令打开,我们就可以设置自定义指令为

alias project='cd d:/first/second/third/project' && code ./
alias projectpull='cd d:/first/second/third/project' && code ./ && git pull

此时我们输入 project 即可以进入相应项目目录,并在同时在 VS Code 打开了该项目。输入 projectpull 即在前面的基础上对代码进行拉取

除了结合VS Code,还可以和一些全局 npm 包或者 node 脚本一起配合使用。

4. 总结


本文主要从基本概念、常见操作、快捷技巧三个方面对 Git 进行讲解,掌握后基本满足工作需要。但 Git 的使用远不只有这三方面,例如使用 Git 钩子在代码提交前进行检查、项目中 Git 提交信息的规范等,以后将慢慢介绍。

上一篇 下一篇

猜你喜欢

热点阅读