git

git基础操作(详细版)

作者:hgt 于2021-06-02创建
总字数 1.1k     阅读预计需要 3 分钟
本文章被访问 本站总访问量

git

初始化

给某个文件夹初始化 git

1
git init

创建版本

给该文件夹下创建一个版本,需要该文件夹下的文件有所变化,因此创建一个文件在该文件夹下面,然后操作以下两步

1
2
git add code.txt
git commit -m '关于该版本的注释、说明'

查看版本记录

1
git log

版本之间并不是记录了全部的文件内容信息,而是只记录目前版本相较上一个版本变化了那些。比如添加了一行代码,或者删除了一行注释。

如果版本多长显示不下,可以使用简介模式

1
git log --pretty=oneline

HEAD表示当前最近的一个版本,上一个版本是 HEAD ^ 或者 HEAD~1 。如果是上100个版本 则是 HEAD~100

版本回退

如果需要将当前版本回退到上一个版本,或者上两个版

1
2
3
git reset --hard HEAD^
# 或者
git reset --hard HEAD~2

版本去向指定版本

如果想要从当前的版本去向曾经提交过的任何一个版本。

1
git reset --hard 版本号

上例可以看出,在迁移版本的时候,git并没有删除任何一个版本,只是指针指向了不同的位置而已。

查看在git曾经操作的记录

1
git reflog

工作区和暂存区

工作区指的是,git当前工作的根目录位置,即是工作区。即 .git文件所在的位置

版本库指的是git创建的 .git文件夹,即是版本库

暂存区指的是版本库中的一个非常重要区域,用于暂存提交的文件修改,使用下面命令 git add 可以添加修改到暂存区

git commit则是把暂存区中的所有修改,一次性的提交成一个版本记录。

在提交版本之前可以多次将修改提交到暂存区,最后一次性的提交成版本

查看当前工作区的状态

1
git status

撤销修改

  1. 当加入到暂存区的文件被再次修改后,如果想要提交保留修改则使用 git add再次加入到暂存区,如果不想要修改了,则可以使用下面命令撤销修改。也就是相当于使用暂存区来覆盖工作区的修改。
1
git checkout -- 文件名
  1. 如果上面修改的文件使用 git add已经添加到了暂存区,但是此时仍然不想要此次提交了,则需要使用下面命令取消暂存
1
git reset HEAD 文件名

再使用 git checkout 则可以将此次修改从工作区彻底删除掉

总结:想要撤销修改的几种case

  1. 修改了工作区的文件,没有提交暂存区,想直接丢弃 git checkout
  2. 修改了文件,也提交了暂存区,还是想丢弃 git reset HEADgit checkout
  3. 修改类文件,提交了暂存区,也提交了版本库,则可以使用 git reset --hard 版本号 直接回到指定的版本。

文件对比

  1. 对比修改了的工作区内容和最近版本HEAD内容有什么不同,使用:
1
git diff HEAD -- 文件名
  1. 对比两个版本之间,某个文件的不同
1
2
# 对比HEAD版本和HEAD的上一个版本之间,某个文件(非根目录带地址)的不同
git diff HEAD HEAD^ -- 文件名

注:

在这里插入图片描述

如图所示,结果中的 --- +++ 是按照diff后面的版本顺序来看

--- 代表当前最新的HEAD

+++ 代表HEAD^,即HEAD的上一个版本

文件内容中没有 - + 符号的,表示两个文件相同的地方,带有 - + 符号的表示两个文件不同的地方,其中带有 - 表示,该不同存在于HEAD 带有+表示该不同存在于HEAD^(即HEAD上一个版本)

删除文件

删除文件,也是工作区文件的改修,操作方法和文件的修改是一样的

如果删除了工作区的文件,想要撤销删除。和工作区的文件被修改了,要撤销一样使用 git checkout -- 文件名

工作区的文件被删除,想将删除的操作添加到暂存区,以下语句均可

1
2
git rm 文件名
git add 文件名

提交删除到版本

1
git commit -m '注释'

如果你喜欢这个博客或者觉得它对你有用,欢迎你转发、分享这个博客,让更多的人参与进来。 如果博客中使用的图片侵犯了您的版权,请联系作者删除。 谢谢 !