# Git 常用命令

主要概念

  • 工作区: 电脑里能看到的目录
  • 版本库: 工作区里隐藏的 .git 目录, 用于管理 git 的修改信息区域
    • 暂存区: 存放修改后已经 add 但并未 commit 到分支的修改信息
    • 分支:
    • HEAD:

命令汇总

git config user.name "you name"
git config --global user.email "you name"
git init
git add file
git commit -m "说明信息"
git log
git reflog
git status
git diff
git checkout -- file
git reset HEAD file
git reset --hard commit-id
git rm file
1
2
3
4
5
6
7
8
9
10
11
12
13

# 安装 Git

# Linux 上安装 Git

暂不处理...

# Mac 上安装 Git

暂不处理...

# Windows 上安装 Git

暂不处理...

# 设置用户名和邮箱

# 设置用户名
git config --global user.name "Your Name"
# 设置邮箱
git config --global user.email "email@example.com"
1
2
3
4

注意: git config 命令的 --global 参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

# 创建版本库

# 简介

版本库又名仓库,英文名 repository ,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

# 创建项目版本库

  • 创建空目录

    # 创建目录
    mkdir git-learn
    # 切换到目录
    cd git-learn
    # 查看当前目录
    pwd
    
    1
    2
    3
    4
    5
    6
  • 通过 git init 命令, 把这个目录变成 Git 可以管理的仓库

    git init
    
    1

# 添加文件到版本库

创建一个名为 README.md 的文件, 用于测试提交

  • 使用 git add 命令添加到暂存区(stage), 以纳入 Git 的管理

    git add README.md
    # 当然,如果你有多个文件提交, git 也提供了多文件提交的方法
    git add README1.md README2.md README3.md
    
    1
    2
    3
  • 使用 git commit 命令提交到仓库

    git commit -m "第一次添加"
    
    1

# 时光穿梭机

  • 使用 git status 命令查看 Git 版本库状态

    git status
    
    1
  • 使用 git diff 查看具体修改的内容

    # 查看所有的状态变动
    git diff
    
    # 查看单个文件的变动
    git diff README.md
    
    1
    2
    3
    4
    5

# 版本回退

  • 使用 git log 命令查看历史记录

    # 查看详细的历史记录
    git log
    # 单行显示简要的历史记录
    git log --pertty=oneline
    
    1
    2
    3
    4
  • 使用 get reset 命令执行版本回退

    # 回退到上一个版本
    git reset --hard HEAD^
    
    1
    2

    git reset 是回退命令,

    --hard 是回退的方式(后面详细介绍)

    HEAD^ 表示回退到上一个版本, 上上个版本就是 HEAD^^, 也可以写成 HEAD~2

    # 回退到指定的 commit 版本
    git reset --hard commit-id
    
    1
    2
  • reset 后, 可以通过 git reflog 来查看之前的每一次命令

    # 查看所有的命令执行操作, 包括已经 reset 的记录
    get reflog
    
    1
    2

# 撤销修改

  • 使用 git checkout -- file 命令可以回退到上一个版本(工作区)

    # 撤销到上一个版本
    git checkout -- file README.md
    
    1
    2

    此处有两种情况

    1. README.md 文件修改后还没有加入到 暂存区 撤销后会回到版本库的状态
    2. README.md 已经添加到了 暂存区 撤销后会回到上次 add 的状态

    总之: 执行 checkout 命令后, 文件会回到最近一次的 git commint 状态, 或回到最近一次的 git add 状态

    注意: 使用 git checkout -- file 命令时, 一定要加上 --, 否则就变成了切换到另一个分支的命令了

  • 使用 git reset HEAD file 命令, 可以把暂存区的修改, 返回到工作区

    # 把暂存区的文件返回到工作区, 这种方式, 暂存区里的内容不会丢失
    git reset HEAD README.md
    
    1
    2

# 删除文件

  • 使用 git rm file 命令删除版本库中的文件

    # 告诉 git , 当前文件已经被删除了
    git rm test.txt
    
    1
    2

    删除撤销,

    1. 只是删除文件, 并没有把修改添加到暂存区(未执行 git rm test.txt ), 使用 git checkout -- file 命令可以直接恢复文件

    2. 如果已经添加到了暂存区但并未提交到仓库(未执行 git commit), 可以使用 git reset HEAD file 恢复文件

    3. 如果已经提交到仓库, 可以使用 git reset --hard commit-id, 执行版本回退

上次更新时间: 2/7/2020, 1:10:46 AM