Java后端工程师入门学习笔记——Git入门2

Git的具体使用

目录

1、版本库/仓库(Repository)

2、版本库创建的相关命令——git init

3、克隆现有仓库的相关指令——git clone

4、编辑并添加文件——git add

5、提交变动到仓库——git commit

6、查看Git仓库当前状态变化——git status

7、比较变动——git diff

8、查看日志——git log

9、Git回退——git reset

10、Git重置——git reflog

11、工作区与暂存区的概念

(1)、工作区(Working Directory)

(2)、版本库(Repository) 

(3)、Git版本库文件添加流程


1、版本库/仓库(Repository)

简单理解:一个目录;

作用

(1)该版本库/仓库/目录里的所有文件受git管理;

(2)git保存有所有操作的历史记录,方便追踪和还原;

2、版本库创建的相关命令——git init

(1)手动创建一个空目录,笔者将其命名为:learning-git 。(也可使用mkdir指令创建,详情请读者自行搜索,这里不再赘述)

(2)直接右键该目录空白处选择Git Bash Here:

(3)使用git init指令初始化该仓库:

(4)如上图,如果成功git会告诉你这是一个空的仓库(empty Git repository);同时如下图,git会在在该目录下生成一个.git目录:(如果你没找到,别着急,它可能只是不听话躲起来了,可尝试使用: ls -ah  指令使得默认隐藏的目录显形)

3、克隆现有仓库的相关指令——git clone

介绍:该指令的作用是将指定git仓库服务器上的几乎所有数据镜像下载到本地;当你执行 git clone 命令的时候,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。

具体指令:  git clone URL  (URL:www的统一资源定位标志,就是web地址,俗称“网址”)

(1)找到一个合适的位置来存放预克隆的文件。

(2)在该位置空白处点击鼠标右键选择Git Bash Here,在Bash窗口输入git clone GitCode / 帮助文档 · GitCode(这是Java后端工程师入门教程Git入门板块Git使用的练习用URL)

前几次尝试均失败,我自行复制错误提示并百度解决。(因不同主机实际环境不同,且笔者前面没有讲解git安装的具体流程,所以读者可能出现的错误也不同,需要读者自行解决各自的问题,这里不再赘述)

(3) 成功clone后笔者的Bash窗口显示如下图:

(4)成功clone后笔者的Windows窗口显示如下图:

(5)在clone远程仓库时,操作者可自定义本地仓库名字,具体指令如下:

git clone URL Newname

成功clone后笔者的Bash窗口显示如下图:

(6)成功clone后笔者的Windows窗口显示如下图:

4、编辑并添加文件——git add

(1)在第一步准备好的git仓库中创建一个readme.txt文件,内容随意。

(2)使用 git add 指令把文件添加到仓库之中,执行该命令后Bash窗口并无任何显示,这说明添加成功。

5、提交变动到仓库——git commit

Git添加文件一共分为两步,先add,最后commit:

add指令:每次添加单个文件;

commit指令:将之前add成功的文件一并提交到仓库;

具体指令: git commit -m "本次提交说明"

执行完git commit命令后会返回一些提示,笔者解读如下:

1 file changed:指1个文件被改动,即笔者之前使用git add指令添加的read.txt文件;

1 insertions:插入了1行内容,即read.txt文件中的自定义内容占1行;

6、查看Git仓库当前状态变化——git status

(1)在上述窗口下直接输入git status,笔者的Bash窗口如下显示:

git status指令的实际作用:列出当前目录所有还没有被git管理的文件和被git管理且被修改但还未提交(git commit)的文件;

出现上述情况的原因:当前目录的所有文件已经纳入git管理且当前被管理文件全部未被修改;

(2)修改readme.txt文件:

 

 (3)使用git add指令重新添加readme.txt;再使用git status指令查看仓库当前状态变化:

阅读上述命令输出可知readme.txt被修改过了,但是目前暂时还没有提交(commit);;

7、比较变动——git diff

git status指令可以告知我们被修改的文件名,如果开发者需要进一步了解被改动的具体内容,可使用 git diff 指令;

具体指令: git diff readme.txt diff

比较变动操作的目的是确保本次预提交的文件修改符合开发预期,可以看做是提交审核;

审核无误后即可从 git add操作开始,一步步把新文件提交到本地仓库中:

git add readme.txt:回车确认后无输出;

git status:查询当前仓库状态,阅读命令行可知即将被提交的修改包括readme.txt;

git commit -m"本次提交描述":执行提交操作;

git status:再次查询当前仓库状态,阅读命令行可知当前仓库无修改需要提交,工作目录下没有文件。

8、查看日志——git log

在目标目录直接使用git log 指令即可导出之前所有的提交日志记录:

 进阶用法git log --pretty=oneline :当日志信息过长时,可使用该指令查询简化的日志记录参数:

9、Git回退——git reset

适用场景:假设最新版本的readme.txt不符合开发期望,需要回滚到之前的某个版本,则需要使用 git reset 指令;

基础知识:Git中使用HEAD表示版本号,最新版本标记为HEAD,上一版本标记为HEAD^,上上一版本标记为HEAD^^,也可使用HEAD~阿拉伯数字来表示之前的版本,如HEAD^100表示往上100个版本;

Git版本回退速度快的原因:Git内部有指向当前版本的HEAD指针,回退版本的操作等价于改变HEAD指针的指向;

具体指令: git reset --hard HEAD^  

回滚前

回滚中

 

回滚后

 

10、Git重置——git reflog

 适用场景:开发者回退版本后又又又发现当前版本还不如回退前好使,想要再次使用git reset指令回退到指定版本,但是需要查询到指定版本的commit id;

基础知识:git reflog指令可用来查询开发者的每一条指令,可通过该指令查询到需要的commit id;

具体指令

a)git reflog

b)git reset --hard b6e4e88

HEAD前面黄色的就是我们需要的commit id;

 回滚前

回滚中

回滚后 

补充:有时候笔者偷懒,直接复制别人文章里的指令作部分修改后使用,可是经常会报错:如笔者直接复制前面的指令 git reset --hard b6e4e88 ,结果却是这样的:

笔者全部手打后指令却运行成功了,笔者目前才疏浅薄,如果有读者了解具体的原因,可在评论区告知,笔者将不胜感激。 

11、工作区与暂存区的概念

Git于其他版本控制系统的最大不同之处在于暂存区的设计;

(1)、工作区(Working Directory)

基本概念:开发者可直接观测到的目录,比如笔者之前创建的learning-git文件夹:

(2)、版本库(Repository) 

基本概念

a)上述工作区存在一个隐藏目录:.git;这个不属于工作区,而是作为Git的版本库而存在;

b)版本库存放着:暂存区(stage/index)+Git自动创建的第一个分支(master)+指向master的指针(HEAD);

(3)、Git版本库文件添加流程

第一步:使用 git add 指令把文件修改添加到暂存区;

第二步:使用 git commit 指令把暂存区所有内容提交到当前分支(Git指定创建的第一个master分支),git commit 的实质就是在master分支上提交修改;

简单理解:先把修改后的文件放到暂存区,然后一次性提交暂存区内的所有修改;

a)对read.txt做进一步修改(增加了一部分内容):

b)在对应工作区新创建一个LICENSE文本文件:

c)使用 git status查看仓库状态:

阅读上述命令行可知:readme.txt被修改了+LICENSE被定义为Untracked(因为该文件从未被添加过);

d)使用两次指令 git add ,把readme.txt和LICENSE添加到暂存区,再使用git status查询仓库状态:

e)执行 git commit 命令,一次性将暂存区的所有修改提交到分支当中:

f)提交后且你没有对工作区再做任何修改,那再使用 git status 指令查询仓库状态结果如下:

  

注:笔者是一位实习生,谨以此作为自己的学习记录,笔者所写内容必然有所遗漏或者存在错误,如果各位读者发现了问题,请在评论区指出,笔者将不胜感激。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值