常用的git命令

318 阅读4分钟

相信大家都知道git吧,在实际开发中,会使用git作为版本控制工具来完成团队协作。因此掌握最基本的git命令是必要的。本文主要介绍一些基本的常用的git命令,不涉及原理。

我在网上看到一张比较全面的git命令图,大家可以参考一下

大图.webp

上面这张图基本包含所有命令,并不适合新人上手,要想学习一些基础常用的命令,那么请接着往下看。

1.git简介

首先我们得了解git的通用操作流程,下面是一张网上比较经典的一张图

git操作流程.webp

2.基本概念

基于上面这张图,我们可以分离出比较重要的几个点:

  1. 版本库.git

    首先是初始化gitgit init,进行这个命令之后,文件中会多出一个.git文件,我们把这个文件称之为版本库 .git还有另外一个作用,就是在创建的时候会自动创建master分支,并且将HEAD指针指向master分支

  2. 工作区

    • 存放项目的位置(自己电脑上的路径)
    • 可以理解为上图中的workspace
  3. 暂存区(Index/Stage)

    • 就是暂时存放文件的地方
    • workspace中的文件。通过git add .将所有更新后的代码添加到暂存区)命令就可以添加到缓冲区(就是暂存区)
  4. 本地仓库(Repository)

    • 大多数情况下,我们使用git commit -m命令将暂存区的文件添加到本地仓库
    • 通常情况下HEAD指针的指向就是master分支
  5. 远程仓库(Remote)

    • 当我们使用GitHub(或者Gitee)来托管我们的项目时,它就是一个远程仓库
    • 我们经常使用git clone + 远程仓库地址命令将远程仓库代码拷贝下来,本地代码更新之后,再通过git push托送给远程仓库(最好在git push之前执行一次git pull(保持良好的开发习惯)
    • git pull拉取远程仓库中的最新数据并合并到当前分支。因为在开发中不会是之后你一个人在开发,可能同时会有多个程序员同时开发,所以要保持良好的开发习惯,在git push之前进行git pull

3.Git文件状态

  • 通常我们需要查看一个文件的状态

    git status

    可以看出当前处于哪个分支
    是否有文件需要commit
    是否有文件需要add
    

    它会给我们返回一些数据

    • Changes not staged for commit
      

      表示的是工作区有该内容,但是缓存区没有,需要我们进行git add .

    • Changes to be committed
      

      一般而言,这个时候文件放在缓存区,我们需要git commit -m '文件描述'

    • nothing to commit,working tree clean
      

      这个时候我们将本地的代码git push到远程仓库即可

  • 查看历史操作记录

    git reflog

  • 查看日志

    git log

    可以看到进行过操作的人员信息

4.Git配置命令

  • 获取当前配置

    git config --list
    
  • 获取本地仓库配置

    git config --local --list
    
  • 获取全局配置

    git config --global --list
    
  • 获取系统配置

    git config --system --list
    

    如果通过上述命令,你发现并没有配置用户信息的话,那么请配置(必操作)

    --配置用户名
    git config --global user.name "你的远程仓库用户名"
    --配置用户邮箱
    git config --global user.email "你的远程仓库绑定邮箱"
    

5.Git分支管理

  • 查看本地分支

    git branch
    
  • 查看远程分支

    git branch -r
    
  • 查看本地和远程分支

    git branch -a
    
  • 切换分支

    git checkout + 分支名
    
  • 创建并切换到分支

    git checkout -b + 分支名
    
  • 删除分支

    git branch -d + 分支名
    
  • 重命名分支

    git branch -m + 旧分支名  + 新分支名
    
  • 当前分支与指定分支合并

    git merge + 分支名
    
  • 查看哪些分支已经合并到当前分支

    git branch --merged
    
  • 查看哪些分支没有合并到当前分支

    git branch --no-merged
    

6.差异比较

  • 比较工作区与缓存区 || 比较两个commit之间的差异

    git diff

  • 比较缓存区和本地仓库最近一次commit内容

    git diff --cached

  • 比较工作区与本地最近一次commit内容

    git diff HEAD

                                                 -------前端小白坚持更新的第二天