图解Git第一章:单人开发项目操作git

第1节:仓库 = github项目目录文件夹

1.1本节涉及概念:

概念 解释
仓库 就是github项目
远程仓库 远程github项目所在的位置
本地仓库 克隆github项目到本地后的项目目录
工作区 当前项目目录所在的本地文件夹,可以理解成 本地仓库=工作区
版本库 仓库里的.git文件夹
暂存区 与分支一样,都属于版本库的一部分

1.2图解:

【git clone项目到本地后,项目目录结构】

假设
1.github项目名:GitTest
2.该项目下有一个文件夹folder-1和一个文件file-1

在这里插入图片描述
【工作区与版本库的关系】
在这里插入图片描述

1.3本节涉及git指令:

指令 作用
git clone 克隆项目到本地
git status 查看当前本地分支下文件情况
git add 保存刚刚的操作(包括增、删、改),也可以说是将工作区的内容保存到暂存区
git commit -m 提交刚才add的内容,形成一个历史节点,也可以说是将暂存区的内容提交到版本区
git fetch 更新远端仓库所有远程分支的最新状态
git pull 将对应的远程分支里的内容拉取到本地分支(一般不建议使用该指令,容易产生冲突)
git push 将本地分支提交的内容推到对应的远程分支上,也可以说是将版本区的内容推到远程分支的版本区(一般来说,远程分支没有暂存区、工作区)
git push -f 强制推(强制覆盖)

1.4提交代码的基本操作流程:

# 克隆github项目到本地
git clone https://xxx/yyy.git
# 进入项目目录
cd yyy
# 创建readme.txt
mkdir readme.txt
# 查看刚刚的操作
git status
# 保存刚才的操作
git add .
# 提交“保存的内容”
git commit -m'创建了readme.txt'
# 同步一下远程仓库的更新
git fetch
# 将远程仓库对应的远程分支的更新拉到本地
git pull
# 将本地分支提交的内容推到远程仓库对应的远程分支
git push

1.5图解

【git add和git commit】
在这里插入图片描述
【git pull】
在这里插入图片描述
【git push】
在这里插入图片描述

第2节:版本 = 当前分支的历史节点

2.1本节涉及概念:

概念 解释
分支 就是github项目的副本
本地分支 本地副本:就是在你自己电脑上的分支
远程分支 远程副本:就是在远程仓库里的分支
历史节点 一次commit,就会给当前分支创建一个新的历史节点
版本 就是当前分支的历史节点
版本号 就是commit id

2.2本节涉及指令:

指令 作用
git log 查看当前分支的提交历史
git reset --hard 强制回到一个指定的历史节点上

2.3图解

【一个分支的历史节点形成过程】在这里插入图片描述

2.4回到指定历史节点的操作流程(本地分支版):

# 在上面操作的基础之上,继续创建一个新的文件
mkdir test.txt
# 查看刚刚的操作
git status
# 保存刚才的操作
git add .
# 提交“保存的内容”
git commit -m'创建了test.txt'
# 突然发现不想要这个test.txt了,想剔除它,但是已经commit了
# 先查看历史节点信息
git log
# 可以看到如下信息:
# commit a0e55bcea8088a9cab9dc0d23edbc7db369eaf8f (HEAD -> master, origin/master)
# Author: wywangye <[email protected]> Date:   Wed Apr 29 11:47:55 2020 +0800
#
#    创建了test.txt

# commit 06b96e30afeeef9f2890a2e9c7a46205f451b426
# Author: wywangye <[email protected]> Date:   Mon Apr 27 12:50:54 2020 +0800
#
#    创建了readme.txt
# 复制上一个历史节点的commit id,使用git reset --hard回到上一个历史节点
git reset --hard 06b96e30afeeef9f2890a2e9c7a46205f451b426
# 查看本地文件夹,就可以看到test.txt文件不见了
# 但是如果又又后悔了,发现test.txt不应该剔除的,应该保留下来
# 这个时候git log也看不到提交test.txt的commit id了
# 不要慌,只要没有关闭终端,往上翻,能看到之前git log的内容就行
# 复制提交test.txt的历史节点的commit id
git reset --hard a0e55bcea8088a9cab9dc0d23edbc7db369eaf8f
# 查看本地文件夹,发现test.txt又回来了

2.5回到指定历史节点的操作流程(远程分支版):

# 如果不仅仅已经commit了,而且还push到远程分支了,这个时候想反悔,想提出test.txt,怎么办
# 仍旧先在本地分支回到上一个历史节点
git reset --hard 06b96e30afeeef9f2890a2e9c7a46205f451b426
# 然后强制推到远程分支即可
git push -f

2.6回到指定历史节点的操作流程(简易版):

# 回到上一个历史节点
git reset --hard HEAD^
# 回到上上个历史节点
git reset --hard HEAD^^
# 回到上100个历史节点
git reset --hard HEAD~100

2.7图解

【版本穿梭】
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/w_y_x_y/article/details/105946556