打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )

目录

  • 前言
  • Git仓库的三个区域
  • 配置个人信息
  • 创建本地仓库
  • 创建远程仓库
  • 添加文件至本地仓库
  • 将本地仓库提交到远程仓库
  • 从远程仓库提取仓库到本地
  • 回退版本
  • 撤销修改
  • 删除文件
  • 查看历史提交
  • Git其他指令

前言

资料来源于菜鸟教程、Git教程

Git仓库的三个区域

Git 仓库分为以下三个区域:
工作区:本地电脑能看到的目录
暂存区:stage/index,一般存放在.git目录下的index文件(.git/index)中,所以我们把暂存区也叫做索引
版本库:存放在工作区的.git目录中
下面两张图第一张来自菜鸟教程,我根据我的理解简答改了一下,第二张来自实验楼。
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第1张图片

打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第2张图片

配置个人信息

在开始菜单打开Git Bash窗口,这是Git命令行窗口。
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第3张图片
设置用户名:

#全局变量,本台机器所有的仓库都使用这个用户名
git config --global user.name "Your Name"
#某个仓库单独设置用户名
#首先进入仓库的.git目录中
cd 仓库名/.git
#然后设置用户名
git config user.name "Your Name"

设置用户邮箱:

#全局变量,本台机器所有的仓库都使用这个邮箱
git config --global user.email "[email protected]"
#某个仓库单独设置邮箱
#首先进入仓库的.git目录中
cd 仓库名/.git
#然后设置邮箱
git config user.email "[email protected]"

查看设置的参数:

git config -l

打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第4张图片

创建本地仓库

假设我们有一个项目存放在一个名为“project”的文件夹下,希望这个项目中的所有文件都可以被Git管理起来。

#进入project所在的目录
cd C:\project
#初始化git,将该目录设置成git能管理的仓库
git init

打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第5张图片
这里我们可以看到git init之后提示创建了一个空的git仓库,并且在project目录下多了一个.git的文件夹,这表示git仓库已经创建成功了。

创建远程仓库

我们这里使用了GitHub作为远程仓库,需要你有一个GitHub的账户。
1、Git生成SSH Key

ssh-keygen -t rsa -C "GitHUb注册时的邮箱"

打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第6张图片
2、打开默认目录:C:\Users\Administrator.ssh下的id_rsr.pub文件,我的电脑上默认是表格文件,但是excel打不开,可以使用记事本打开,复制文件中的key。
在这里插入图片描述

3、打开GitHub,登陆账户,进入Account->Settings
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第7张图片
4、选择SSH and GPG keys->New SSH key
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第8张图片
5、title可以随便填,Key是id_rsr.pub文件中复制过来的。
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第9张图片
6、配置成功
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第10张图片
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第11张图片
7、创建远程仓库
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第12张图片
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第13张图片
8、创建成功
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第14张图片

添加文件至本地仓库

假设我们在project目录下有一个名为1.txt的文本文件,那我们如何把这个文本文件添加到版本库呢?

#进入project所在的目录
#cd C:\project
#添加1.txt到暂存区
git add 1.txt
#提交暂存区到本地版本库,“write file”是提交说明
#最好是有意义的说明,方便查找历史记录
git commit -m "write file"

打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第15张图片

将本地仓库提交到远程仓库

#origin可以看做是远程库的别名,可以字节设置,远程库的地址,可以在GitHub的远程仓库中找到
#只需要在第一次提交到远程仓库是设置,之后直接push即可
git remote add origin 远程库的地址
#提交到远程仓库
git push -u origin main

打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第16张图片

从远程仓库提取仓库到本地

#创建一个文件夹,存放克隆的文件
mkdir dir
#进入创建的文件夹
cd dir
# 克隆远程仓库
git clone 远程仓库的地址

回退版本

git reset [--soft | --mixed | --read] [HEAD]

--mixed为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致。工作区文件内容保持不变。

git reset HEAD^ #回退所有内容到上一个版本
git reset HEAD^ 1.txt  #回退1.txt文件的版本到上一个版本
git reset 版本号   #回退到指定的版本 

--soft 用于回退到某个版本
git reset --soft HEAD~3  #回退到上上上一个版本

--hard 撤销工作区中所有为提交的修改内容,将暂存区与工作区都回到上一版本,并删除之前的所有信息提交
git reset--hard HEAD~3   #回退上上上一个版本
git reset --hard bea128  #回退到某个版本回退点之前的所有信息
git reset --hard origin/master #将本地的状态回退到和远程一样

说明:

打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第17张图片
实例:
当前我们有三次提交记录,test.txt文本的值如图所示:
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第18张图片
然后我们使用git reset --hard HEAD~ 回退到上一个版本之后,发现最新的版本已经看不见了,工作区的文件也已经恢复成上一个版本的内容了。如图:
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第19张图片
但是现在我想想到最新的那个版本怎么办呢?不着急,在我们回退版本之前,我们使用git log 查看版本库的状态,那个时候最新版本还在的,那真的太好了,我们复制最新版本的ID,如图:
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第20张图片
使用git reset --hard 最新版本的ID ,哇哦,最新的版本又回来了。如图:
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第21张图片
这个时候有些小伙伴就要说了,如果我回退版本之后把命令行窗口关掉了,找不到最新版本的ID怎么办?不要着急,我们使用git reflog 可以记录每一次的命令,如图,这样就可以了。
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第22张图片

撤销修改

假设我们在test.txt文本中增加了一行乱七八糟的东西。
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第23张图片
在提交的时候突然发现这一行不需要,想着反正还没有提交,直接把这一行删除不就可以了嘛,这还不简单,那我们来试一试。在没有删除最后一行之前,我们使用git status指令,发现git提醒test.txt有一个修改没有commit,如图:
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第24张图片
这个时候,我们直接删除test.txt文本的最后一行,这个时候查看文档,的确最后一行被删除了,这个时候的test.txt和之前一模一样了,但是使用git status指令时发现,git仍然提醒test.txt有一个修改commit。
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第25张图片
这个时候怎么办呢?其实git已经给我们提示了,我们使用git restore file 可以丢弃工作区的修改,如图:
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第26张图片
当然,其实直接删除最后一行,从文件内容的角度来看也没什么问题,最终结果是删除了嘛,但是我们还是要严谨一些地。
如果你在test.txt文件中添加了一些乱七八糟的东西,并且很不幸的提交到暂存区了,那该怎么办呢?其实git也给了我们提示。当我们把文件提交到暂存区后,我们使用git status指令时,git会提示我们有一个文件将要被commit,并且提示我们如何丢弃这个修改,如图:
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第27张图片

删除文件

首先我们在工作区删除test.txt文件
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第28张图片
但是这个时候,在版本库里test.txt文件还存在的,git status就会提示有哪些文件被删除了。
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第29张图片
这个时候我们有两个选择。第一种是我们误删除了工作区的test.txt文件,需要从版本库中恢复,使用 git restore test.txt 恢复test.txt文件,注意,这里恢复的是版本库中的test.txt文件,如果你直接在文件中添加了什么东西,没有及时添加到版本库中,是没有办法恢复的。
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第30张图片
第二种情况是,我们确定删除test.txt文件,使用git rm test.txt,然后git commit -m "remove"指令即可将test.txt文件从版本库中删除。
在这里插入图片描述
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第31张图片

查看历史提交

git log 查看历史提交记录
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第32张图片
git log --oneline 查看历史记录的简洁版本
在这里插入图片描述
git log --graph 查看历史中什么时候出现分支、合并
git log --author=用户名 查看指令用户的提交日志
打好地基——git基本操作介绍(创建仓库,提交文件,撤销操作,回退版本 )_第33张图片更多指令查询官网

Git其他指令

git add file1 file2  #添加一个或多个文件到暂存区
git add dir #添加指定目录到暂存区,包括子目录 
git add . # 添加当前目录下的所有文件到暂存区

git commit -m message #提交暂存区到版本库,message可以是一些备注信息 
git commit file1 file2 ... -m messge #提交暂存区的指定文件到版本库
git commit -a #修改文件后不需要执行git add 命令,直接来提交

git status #查看用于上次提交之后是否对文件进行再次修改
git status -s #获得简短的输出结果

git diff file #查看工作区和暂存区的差异
git diff --cached/staged file #显示暂存区和上一次提交的差异
git diff first-branch second-branch #显示两次提交之间的差异

你可能感兴趣的:(Git,git)