细心整理出最细的Git教程❤️❤️

前言

浏览器的缩放会影响CSDN网页中右侧文章目录的出现,为了便于您的阅读,还请适当调整。

​ Git的教程有很多,文字版和视频版。而如果想掌握Git,可以好好阅读本文或者其他文章,并总结出属于自己的Git教程。后期如果有很多不明白的地方也可以回溯复习。

​ Git 不用特意去记,当你想要达到什么样的效果时,就去搜索相对应的指令,这样学习会效果会更加。

最后说一句:谢谢大家的阅读,记得留下你的足迹🐱‍👤

Git简介

Git概念

Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目

版本控制工具的作用

什么是版本控制工具?

​ 在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。

  • 协同修改 ——多人并行不悖的修改服务器端的同一个文件
  • 数据备份 ——不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态
  • 版本管理 ——在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,提高运行效率
  • 权限控制
  • 历史记录
  • 分支管理

集中式版本控制工具及分布式版本控制工具示意图

集中版本控制工具:所有的版本数据都保存在服务器上,协同开发者 从服务器上同步更新或上传自己的修改

  • 用户只有自己的以前版本
  • 数据集中
  • 服务器遭受到破坏,数据就会受损

image-20210626002543428

分布式版本控制工具

  • 所有版本信息仓库全部同步到本地的每个用户
  • 可以离线在本地提交

image-20210626002559550

Git与SVN最主要区别

GitSVN
系统分布式版本控制系统集中式版本控制系统
版本库位置无中央服务器,每个人的电脑就是一个完整的版本库集中放在中央服务器的
工作无需联网先从中央服务器获取版本,工作完成后在推送到中央服务器中,需要联网。

Git安装与配置

Bash基本操作命令

$ cd : 改变目录。

$ cd.. : 回退到上一个目录,直接cd进入默认目录

$ pwd : 显示当前所在的目录路径。

$ ls(ll): 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。

$ touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。

$ rm: 删除一个文件, rm index.js 就会把index.js文件删除。

$ mkdir: 新建一个目录,就是新建一个文件夹。

$ rm -r : 删除一个文件夹, rm -r src 删除src目录

$ mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下。

$ reset 重新初始化终端/清屏。

$ clear 清屏。

$ history 查看命令历史。

$ help 帮助。

$ exit 退出。

# 表示注释

Git配置 - git config

# 显示当前的Git配置
$ git config --list

# 编辑Git配置文件
$ git config -e [--global]

# 设置提交代码时的用户信息
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"

Git配置文件分类

  • /etc/gitconfig:包含了适用于系统所有用户和所有项目的值。(Win:C:\Program Files\Git\mingw64\etc\gitconfig) --system 系统级
  • ~/.gitconfig:只适用于当前登录用户的配置。(Win:C:\Users\Administrator.gitconfig) --global 全局
  • 位于git项目目录中的.git/config:适用于特定git项目的配置。(Win:C:\gitProject) --local当前项目

注意:对于同一配置项,三个配置文件的优先级是1<2<3

Git初始化

在本地创建一个目录作为 git 仓库,并通过 git init 命令进行初始化,初始化成功后会在

当前目录生成一个.git 目录文件

Git理论基础

工作区域

  • 工作区(Working Directory): 平时存放项目代码的地方——电脑上的某个文件夹

  • 暂存区(Stage/Index) : 用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

  • 仓库区(Repository或Git Directory) : 安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

  • 远程的仓库(Remote Directory) : 托管代码的服务器

image-20210626150321294

63651-20170906230652788-1835188684

  • Directory:工作区(Working Directory)使用Git管理的一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间
    • WorkSpace:各种需要版本控制的目录和文件
    • .git:存放Git管理信息的目录,初始化仓库的时候自动创建
      • Index/Stage:暂存区,或者叫待提交更新区,在提交进入repo之前,我们可以把所有的更新放在暂存区
      • Local Repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch)
      • Stash:隐藏,是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态

工作流程

图解教程中文版:https://www.cnblogs.com/yaozhongxiao/p/3811130.html

git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

63651-20170905201033647-1915833066

63651-20170905212837976-775285128

4.2、获得Git仓库

创建本地仓库的方法有两种:

  1. 创建全新的仓库,
  2. 克隆远程仓库

4.2.1、创建全新仓库

需要用GIT管理的项目的根目录执行

# 在当前目录新建一个Git代码库
$ git init

# 新建一个目录,将其初始化为Git代码库
$ git init [project-name]

image-20210626151701115

4.2.2、克隆远程仓库

由于是将远程服务器上的仓库完全镜像一份至本地,而不是取某一个特定版本

# 克隆一个项目和它的整个代码历史(版本信息)
$ git clone [url]

4.3、GIT文件操作

4.3.1、文件4种状态

  • Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制。
    • 通过 git add 状态变为 Staged
  • tracked:已跟踪,文件已经参与版本控制。
    • Unmodified: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致
      • 如果它被修改, 而变为 Modified
      • 如果使用 git rm 移出版本库, 则成为 Untracked 文件
    • Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作。
      • 通过 git add 可进入暂存 staged 状态
      • 使用 git checkout 则丢弃修改过, 返回到 unmodified 状态, 这个 git checkout即从库中取出文件, 覆盖当前修改
    • Staged: 暂存状态。
      • 执行 git commit ,则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态
      • 执行 git reset HEAD filename 取消暂存, 文件状态为 Modified

63651-20170909091456335-1787774607

4.3.2、查看文件状态

#查看指定文件状态
git status [filename]

#查看所有文件状态
git status

4.3.3、添加文件与目录

Git的版本库里存了很多东西,其中最重要的就是称为暂存区 (stage/Index),还有Git为我们自动创建的第一个分支 master (安装的时候默认为master),以及指向 master 的一个指针叫 HEAD

untracked 状态的文件添加到暂存区

# 添加指定文件到暂存区
$ git add [file1] [file2] ...

# 添加指定目录到暂存区,包括子目录
$ git add [dir]

# 添加当前目录的所有文件到暂存区
$ git add .

4.3.4、移除文件与目录(撤销add)

当执行如下命令时,会直接从暂存区删除文件,

# 停止追踪指定文件(从暂存区中删除),但该文件会保留在工作区
$ git rm --cached [file]

#不但从暂存区中删除,同时删除物理文件
git rm readme.txt 

撤销暂存区更新

# 如果已经用add 命令把文件加入stage了,就先需要从暂存区中撤销
git reset HEAD <file>...
  • 当执行 “git reset HEAD” 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。

  • 当执行 “git checkout .” 或者 “git checkout — <file>” 命令时,会用暂存区的文件 替换 工作区的文件。
    这个操作会清除工作区中未添加到暂存区的改动,相当于你写了10000字,关闭文件却没有保存

  • 当执行 “git checkout HEAD .” 或者 “git checkout HEAD <file>” 命令时,会用 HEAD 指向的 master 分支中的文件 替换 暂存区和以及工作区中的文件。这个命令会清除工作区中和暂存区中未提交的改动

移除所有未跟踪文件

#移除所有未跟踪文件
#一般会加上参数-df,-d表示包含目录,-f表示强制清除。
git clean [options] 

4.3.5、查看文件修改后的差异

git diff” 用于显示 工作区(WorkSpace)中和暂存区(Stage/Index)的差异

# 显示工作区和暂存区的差异
$ git diff

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

# 显示暂存区和上一个commit的差异
$ git diff --cached [file]

# 显示两次提交之间的差异
$ git diff [first-branch]...[second-branch]

# 显示工作区与分支的差异
$ git diff 分支名

4.3.6、签出 git checkout

git checkout 命令用于从历史提交(或者暂存区域)中拷贝文件到工作目录,也可用于切换分支。命令 git checkout 是git最常用的命令之一,同时也是一个很危险的命令,因为这条命令会重写工作区

  1. 当给定某个文件名

    git checkout HEAD~ hello.c 会将提交节点HEAD~中的 hello.c 复制到工作区和暂存区中。如果没有指定提交交点,则从暂存区中复制内容

img

  1. 当不指定文件名,而是给出一个分支时

    HEAD指针就会 ”切换“ 指向新分支,工作区和暂存区的内容就会和HEAD对应的提交节点一致。

    img

# 切换branch分支。要完成图中的三个步骤,更新HEAD以指向branch分支,以及用branch  指向的树更新暂存区和工作区。
$ git checkout branch

# 汇总显示工作区、暂存区与HEAD的差异。
$ git checkout

#同上
$ git checkout HEAD

# 用暂存区中filename文件来覆盖工作区中的filename文件。相当于取消自上次执行git add filename以来(如果执行过)的本地修改。
$ git checkout -- filename

# 维持HEAD的指向不变。用branch所指向的提交中filename替换暂存区和工作区中相应的文件。注意会将暂存区和工作区中的filename文件直接覆盖。
$ git checkout branch -- filename

# 会取消所有本地的  #修改(相对于暂存区)。相当于用暂存区的所有文件直接覆盖本地文件,不给用户任何确认的机会!
$ git checkout -- . 或写作 git checkout .

# 如果不加commit_id,那么git checkout -- file_name 表示恢复文件到本地版本库中最新的状态。
$ git checkout commit_id -- file_name

4.3.7、提交

通过 add 只是将文件或目录添加到了 index 暂存区,使用 commit 可以实现将暂存区的文件提交到本地仓库

# 提交暂存区到仓库区
$ git commit -m [message]

# 提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]

# 提交工作区自上次commit之后的变化,直接到仓库区,跳过了add,对新文件无效
$ git commit -a

# 提交时显示所有diff信息
$ git commit -v

修订提交

如果我们提交过后发现有个文件改错了,或者只是想修改提交说明,这时可以对相应文件做出修改,将修改过的文件通过 “git add” 添加到暂存区,然后执行以下命令:

# 使用一次新的commit,替代上一次提交
# 如果代码没有任何新变化,则用来改写上一次commit的提交信息
$ git commit --amend -m [message]

# 重做上一次commit,并包括指定文件的新变化
$ git commit --amend [file1] [file2] ...

撤销提交

放弃工作区和暂存区的改动,同时HEAD指针指向前一个commit对象

#撤销上一次的提交
git reset --hard HEAD~1

4.3.8、日志与历史

查看提交日志可以使用git log指令

#查看提交日志
$ git log [<options>] [<revision range>] [[\--] <path>]

#以简化的形式显示日志
$ git log --pretty=oneline

#以图形化的方式显示提交历史的关系
$ git log --graph

#使用history可以查看您在bash下输入过的指令
$ history

# 记录这个仓库中所有的分支的所有更新记录,包括已经撤销的更新
$ git reflog

4.3.9、查看文件列表

#查看指定状态的文件
git ls-files [-z] [-t] [-v] (--[cached|deleted|others|ignored|stage|unmerged|killed|modified])* (-[c|d|o|i|s|u|k|m])*

image-20210627001728569

4.3.10、撤销更新

撤销暂存区更新

使用 git add 把更新提交到了暂存区。这时 git status 的输出中提示我们可以通过 git reset HEAD <file>... 把暂存区的更新移出到 工作区 中

image-20210627001915238

撤销本地仓库更新

撤销提交有两种方式:**使用HEAD指针 **和 使用 commit id

​ 在Git中,有一个HEAD指针指向当前分支中最新的提交。当前版本,我们使用 HEAD^,那么再前一个版本可以使用HEAD^^,如果想回退到更早的提交,可以使用"HEAD~n"。(也就是,HEAD^=HEAD~1,HEAD^^=HEAD~2)

# 查看提交日志
git log

# 撤销提交
git reset --hard HEAD^
git reset --hard HEAD~1
git reset --commitid

​ 现在又想恢复被撤销的提交可用 git reflog 查看仓库中所有的分支的所有更新记录,包括已经撤销的更新,撤销方法与前面一样

# 查看所有记录
git reflog

# 恢复被撤销的提交
git reset --hard HEAD@{7}
git reset --hard e0e79d7

4.3.11、删除文件

删除未跟踪文件

如果文件还是未跟踪状态,直接删除文件就可了,bash中使用rm可以删除文件

$ rm filename

image-20210703185713735

删除已提交文件

-f 强制删除,物理删除了,同时删除工作区和暂存区中的文件

$ git rm -f filename

image-20210703185744654

撤销删除
#to discard changes in working directory
git checkout -- <file>...

image-20210627002648438

删除暂存区的文件,不删除工作区的文件
$ git rm --cached filename

# 功能同上,原理是进行覆盖
$ git reset HEAD <file> ...

image-20210703185838925

4.3.12、文件操作小结

4.4、GIT分支

只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD指向master,master指向提交的,所以可以理解为HEAD指向的就是当前分支。

image-20210627003122797

# 新建一个分支,但依然停留在当前分支
$ git branch [branch-name]

# 新建一个分支,并切换到该分支
$ git checkout -b [branch]

# 新建一个分支,指向指定commit
$ git branch [branch] [commit]

# 切换到指定分支,并更新工作区
$ git checkout [branch-name]

# 切换到上一个分支
$ git checkout -

# 建立追踪关系,在现有分支与指定的远程分支之间
$ git branch --set-upstream [branch] [remote-branch]

4.4.1、新建分支与切换分支

1、新建一个分支,但依然停留在当前分支

$ git branch [branch-name]

​ 当我们创建新的分支,例如 dev 时,Git新建了一个指针叫 dev,指向 master 相同的提交,再把 HEAD 指向 dev ,就表示当前分支在 dev

切换分支

$ git checkout dev

不过,从现在开始,对工作区的修改和提交就是针对 dev 分支了,比如新提交一次后,dev 指针往前移动一步,而 master 指针不变

Git怎么合并呢?最简单的方法,就是直接把 master 指向 dev 的当前提交,就完成了合并

合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支

2、切换分支

# 切换到指定分支,并更新工作区
$ git checkout [branch-name]

# 切换到上一个分支
$ git checkout -

3、新建一个分支,并切换到该分支

$ git checkout -b [branch-name]

# 相当于一下两步:创建、切换
$ git branch <branch-name>
$ git checkout <branch-name>

4、新建一个分支,指向指定commit

$ git branch [branch] [commit]

5、新建一个分支,与指定的远程分支建立追踪关系

$ git branch --track [branch] [remote-branch]

4.4.2、查看分支

# 列出所有本地分支
$ git branch

# 列出所有远程分支
$ git branch -r

# 列出所有本地分支和远程分支
$ git branch -a

4.4.3、分支合并

第一步:切换到接受合并的分支

git checkout [接受合并的分支名]

第二步:执行 merge 命令

git merge [待合并的分支名]

# 合并指定分支到当前分支
$ git merge [branch]

# 选择一个commit,合并进当前分支
$ git cherry-pick [commit]

4.4.4、解决冲突

Git用<<<<<<<=======>>>>>>>标记出不同分支的内容,其中 <<<HEAD 是指主分支修改的内容,>>>>>dev6 是指dev6上修改的内容

  • 修改冲突文件后重新提交

image-20210627005638175

4.4.5、删除分支

# 删除分支
$ git branch -d [branch-name]

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
  • -d表示删除分支。分支必须完全合并在其上游分支,或者在HEAD上没有设置上游
  • -r表示远程的意思remotes,如果-dr则表示删除远程分支

4.5远程仓库操作

注册账号

注册远程仓库账号,比如码云 地址: https://gitee.com/

创建SSH key

因为数据保存在远程服务器,服务器需要对你的身份进行识别,SSH key 可以让你的电
脑和码云之间建立安全的加密连接

$ ssh-keygen -t rsa -C "你的邮箱"

在用户目录下生成 .ssh 目录, 里面有一个 id_rsa.pub 文件,保存的就是公钥。
登录码云,在 SSH 公钥文本框里粘贴 id_rsa.pub 文件的内容

image-20210704000317839

验证秘钥是否添加成功

$ ssh -T git@git.oschina.net

image-20210704000533013

远程仓库的命令

# 下载远程仓库的所有变动
$ git fetch [remote]

############ git remote #####################
#简单查看远程---所有仓库
git remote  (只能查看远程仓库的名字)#查看单个仓库
git  remote show [remote-branch-name]

#新建远程仓库
git remote add [branchname]  [url]

#修改远程仓库
git remote rename [oldname] [newname]

#删除远程仓库
git remote rm [remote-name]

# 显示所有远程仓库
$ git remote -v

# 显示某个远程仓库的信息
$ git remote show [remote]

# 增加一个新的远程仓库,并命名
$ git remote add [shortname] [url]

################# git pull ##################
# 取回远程仓库的变化,并与本地分支合并
$ git pull [remote] [branch]

#获取远程仓库数据
$ git pull (获取仓库所有更新,并自动合并到当前分支)

################# git push ##################
# 上传本地指定分支到远程仓库
$ git push [remote] [branch]

# 强行推送当前分支到远程仓库,即使有冲突
$ git push [remote] --force

# 推送所有分支到远程仓库
$ git push [remote] --all

#上传数据,如git push origin master
git push [remote-name] [branch]

################ git fetch ######################
#获取远程仓库数据
git fetch [remote-name] (获取仓库所有更新,但不自动合并当前分支)

git clone 克隆

git clone支持多种协议,除了HTTP(s)以外,还支持SSH、Git、本地文件协议等

# 克隆
$ git clone <版本库的网址>

# 克隆到某个目录
$ git clone <版本库的网址> <本地目录名>


git remote

为了便于管理,Git要求每个远程主机都必须指定一个主机名。git remote命令就用于管理主机名

# 列出所有远程主机
$ git remote

image-20210627010700177

查看远程主机网址

# 查看远程主机网址
$ git remote -v

image-20210627010709900

克隆版本库的时候,所使用的远程主机自动被Git命名为origin。如果想用其他的主机名,需要用git clone命令的-o选项指定

$ git clone -o WeUI https://github.com/Tencent/weui.git
$ git remote

查看该主机的详细信息

$ git remote show <主机名>

image-20210627010852007

添加远程主机

$ git remote add <主机名> <网址>

删除远程主机

$ git remote rm <主机名>

远程主机的改名

$ git remote rename <原主机名> <新主机名>
git fetch 拉取

一旦远程主机的版本库有了更新(Git术语叫做commit),需要将这些更新取回本地,这时就要用到 git fetch 命令

# 将某个远程主机的更新,全部取回本地
# git fetch命令通常用来查看其他人的进程,因为它取回的代码对你本地的开发代码没有影响
$ git fetch <远程主机名>

image-20210703191428492

# 想取回特定分支的更新,可以指定分支名
$ git fetch <远程主机名> <分支名>
git pull

git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并

$ git pull <远程主机名> <远程分支名>:<本地分支名>

​ 比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样

$ git pull origin next:master

# 如果远程分支是与当前分支合并,则冒号后面的部分可以省略
$ git pull origin next

# 等同于下面这两条命令:拉取、合并
$ git fetch origin
$ git merge origin/next
git push 推送

git push命令用于将本地分支的更新,推送到远程主机

$ git push <远程主机名> <本地分支名>:<远程分支名>

注意,分支推送顺序的写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>

如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。

$ git push origin master

如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支

$ git push origin :master
# 等同于
$ git push origin --delete master

如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略

$ git push origin

Git常用命令集

mkdir: XX(创建一个空目录 XX 指目录名)

pwd: 显示当前目录的路径

git init 把当前的目录变成可以管理的 git 仓库,生成隐藏的.git 文件。

git add XX 把 XX 文件添加到暂存区。

git commit -m “XX” 提交文件 -m 后面的是注释

git status 查看仓库状态

git diff XX 查看 XX 文件修改了哪些内容

git log 查看历史记录

git reset -hard HEAD^ 或者 git reset -hard HEAD~ 回退到上一个版本(如果想回退到 100个版本,使用 git reset -hard HEAD~100)

cat XX 查看 XX 文件内容

git reflog 查看历史记录的版本号 id

git checkout --XX 把 XX 文件在工作区的修改全部撤销

git rm XX 删除 XX 文件

git remote add origin https://gitee.com/oldlu_wk/gittest.git 关联一个远程库

git push -u (第一次提交要用-u 以后不需要)origin master 把当前 master 分支推送到远程库

git clone https://gitee.com/oldlu_wk/gittest.git 从远程库中克隆

git checkout -b dev 创建 dev 分支 并切换到 dev 分支上


git branch 查看当前所有分支

git checkout master 切换回 master 分支

git merge dev 在当前分支上合并 dev 分支

git branch -d dev 删除 dev 分支

git branch name 创建分支

git stash 把当前的工作隐藏起来等以后恢复现场后继续工作

git stash list 查看所有被隐藏的文件列表

git stash apply 恢复被隐藏的文件,但是内容不删除

git stash drop 删除文件

git stash pop 恢复文件的同时也删除文件

git remote 查看远程库的信息

git remote -v 查看远程库的详细信息

git push origin master Git 会把 master 分支推送到远程库对应的远程分支上

IDEA 中操作 Git

使用 IDEA 提交代码

在 idea 中配置 git 路径

image-20210704001036044

在远程仓库上创建仓库

image-20210704001047253

将项目添加到缓存

image-20210704001105581

提交项目

image-20210704001129103

添加远程仓库地址

image-20210704001146221

查看上传状态

image-20210704001159094

如果上传时出现 Push rejected: Push to origin/master was rejected
解决办法:

1.选择你要上传代码的文件夹,鼠标右键 git Bash Here

2.输入下面两行命令

  • git pull origin master --allow-unrelated-histories --把远程仓库中的内容 pull 到本地工作目录

  • git push -u origin master -f–在 pull 下来的项目中做修改,通过以上命令 push 到远程仓库了

在 idea 中用 git 获取新项目代码

image-20210704001313108

image-20210704001321686

解决冲突

冲突原因:冲突产生的根本原因是:两个人修改了同一个文件的同一块区域,在前者已经提交代码到远程仓库的情况下,后者修改代码前没有使用 pull 命令更新代码,而是修改完代码后再使用 pull 命令,这时就会产生冲突。

image-20210704001410326

预防冲突

在修改代码前,使用 pull 命令更新代码,能够保证在开始修改代码前本地的代码与远程仓库中的版本一致,这样能够大大降低冲突发生的概率

解决冲突

先 stash,然后 pull,最后 unstash

第一步:暂存代码,idea 会恢复到上次更新后的代码,将修改的代码隔离出去

第二步:将远程仓库的代码拉下来

第三步:将暂存的代码还原回来

image-20210704001526755

image-20210704001532643

从左至右

  • 本地代码更新后的代码
  • 合并后的代码
  • 暂存文件的代码

image-20210704001600997

参考资料


廖雪峰 | Git教程

博客园 | 深入浅出Git教程

Git - Book

Lufficc | Git教程

图解Git中文教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值