0
点赞
收藏
分享

微信扫一扫

git checkout 命令详解


1. 前言
2. 创建分支
3. 切换分支
4. 撤销更改

1. 前言

git checkout 命令用于创建、切换分支或恢复工作树文件。

最常用的两种用法



  1. ​# 切换分支​
  2. ​git checkout <branch>​
  3. ​# 创建并切换到新分支​
  4. ​git checkout -b <branch>​

2. 创建分支

当我们需要以当前分支为起点创建一个新的分支时,主要会用到以下两个命令



  1. ​# 创建分支​
  2. ​git branch <branch>​
  3. ​# 切换到新分支​
  4. ​git checkout <branch>​

​-b​​ 创建并切换到新分支 (上面两个命令的合集)



  1. ​git checkout -b <branch>​

​-B​​ 重置分支(删除已存在的分支且重新创建,分支不存在也不会报错)



  1. ​git checkout -B <branch>​

基于远程库分支创建分支



  1. ​# 语法格式​
  2. ​git checkout -b <new-branch> origin/<old-branch>​
  3. ​# 使用示例: 以远程库中的 liang 分支为起点,在本地创建一个 dev 分支​
  4. ​git checkout -b dev origin/liang​

基于指定标签创建分支



  1. ​# 切换到标签对应的提交记录​
  2. ​git checkout <tagname>​
  3. ​# 创建并切换到新分支​
  4. ​git checkout -b <branch>​

基于指定 commit id 创建分支



  1. ​# 切换到指定提交记录​
  2. ​git checkout <commit id>​
  3. ​# 创建并切换到新分支​
  4. ​git checkout -b <branch>​

3. 切换分支

使用 checkout 切换分支时,先从本地库查找分支,在本地库没找到时,就去远程库中查找,在远程库也没有找到就会报错



  1. ​# 切换分支​
  2. ​git checkout <branch>​

  3. ​# 查找顺序​
  4. ​本地分支 --> 远程分支 --> 提示分支不存在​

git checkout 命令详解_本地库

切换分支后的提示信息

当我们切换到 master 分支后,出现这个提示说明: 本地分支和上游分支的最新提交记录是同一个



  1. ​# 您的分支 “origin/master” 是最新的​
  2. ​Your branch is up to date with 'origin/master'.​

将一个远程仓库中的分支 liang 签出到本地时的提示



  1. ​# 本地库中的分支 liang 的上游分支是远程仓库中的分支 liang​
  2. ​Branch 'liang' set up to track remote branch 'liang' from 'origin'.​
  3. ​# 切换到了一个新的分支 liang​
  4. ​Switched to a new branch 'liang'​

当本地库有了新的提交记录



  1. ​# 本地分支比远程分支多了一次提交记录​
  2. ​# 可以使用 git push 将本地的提交记录推送到远程库​
  3. ​Your branch is ahead of 'origin/liang' by 1 commit.​
  4. ​(use "git push" to publish your local commits)​

​-q, --quiet​​ 不显示任何提示信息,如下图所示



  1. ​git checkout -q liang​

git checkout 命令详解_java_02

4. 撤销更改

用于让工作区中的文件回到最近一次 ​​git add​​​ 或 ​​git commit​​ 的状态



  1. ​# 让工作区中的所有文件撤销更改​
  2. ​git checkout -- .​

  3. ​# 让工作区中的某些文件撤销更改​
  4. ​git checkout -- <file1> <file2>​

场景一、本地库中已有 user.txt,在工作区修改了该文件,但是没有提交到暂存区,此时撤销更改是从版本库中恢复内容

git checkout 命令详解_本地库_03

场景二、本地库中已有 user.txt,在工作区修改了该文件,并且已提交到暂存区,此时撤销更改是从暂存区中恢复内容

git checkout 命令详解_github_04

举报

相关推荐

0 条评论