Git基本使用教程

Git介绍

是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL授权条款释出。最初目的是为了更好地管理Linux核心开发而设计。应注意的是,这与GNU Interactive Tools[4](一个类似Norton Commander(英语:Norton Commander)界面的文件管理器)不同。

Git与SVN的区别

Git 与 SVN 区别点:

  • 1、Git 是分布式的,SVN 不是 :这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
  • 2、Git 把内容按元数据方式存储,而 SVN 是按文件: 所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
  • 3、Git 分支和 SVN 的分支不同: 分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
  • 4、Git 没有一个全局的版本号,而 SVN 有: 目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
  • 5、Git 的内容完整性要优于 SVN: Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

img

基本命令操作

初始化仓库

  • git init 初始化仓库
  • git clone 拷贝一份远程仓库

提交与修改

  • git add 添加文件到暂存区
  • git status 查看当前仓库的状态,会显示有变更的文件
  • git diff 比较文件的不同,即暂存区与工作区的差异
  • git commit 提交暂存区到本地仓库
  • git reset 回退版本
  • git rm 删除工作区文件
  • git mv 移动或重命名工作区文件

提交日志

  • git log 查看历史提交日志
  • git blame 以列表形式查看指定文件的历史修改记录

远程操作

  • git remote 远程仓库操作
  • git fetch 从远程获取代码库
  • git pull 下载远程代码并合并
  • git push 上传远程代码并合并

img

img

配置GitLab账号的SSH(以GitHub为例,其他仓库操作同理)

首先打开Git bash,然后键入以下命令,一路Enter即可

ssh-keygen -t rsa

image-20220516202848766

然后打开我们的用户目录**.ssh**目录,一般默认是 C:\User\xxx.ssh

以文本打开id_rsa.pub文件,并复制其中的内容到GitLab的个人页面的setting中,并保存,即可配置完成。

image-20220516202556967

使用VSCode集成的Git工具

Vscode编辑器,为我们提供了一个自带的Git功能,如下图:

image-20220516195257745

首先我们需要点击资源管理器,然后点击克隆存储库

image-20220516201814679

打开我们的Git项目页面

image-20220516203032788

由于我们刚才配置过ssh,所以我们可以采取ssh的方式来clone项目。点击克隆存储库,然后输入复制的git仓库地址,然后选择存储到本地的路径即可。

image-20220516203159661

我们新增的文件,显示为绿色,并且尾部有U来标识。U是代表Untracked(未追踪),也就是新增的问题。然后我们可以看到版本控制的标签栏出现了标记。

image-20220516204024574

我们点击版本管理标签,可以发现,我们新增的文件在这里显示了出来,并且标记也是U,然后我们可以点击 + 号,用来进行 git add . 操作,将test.py添加到暂存区。

image-20220516205456034

添加到暂存区过后,test.py的标记变成了A,代表added,已经add。同时,我们也可以看到这个界面,左边代表上一版本的文件,右边代表刚刚add的文件,所以可以做到对比的功能。这里左边是空,代表这个文件是一个新增的文件。

image-20220516205937760

我们点击 即可实现git commit 的操作,或者是 中,点击提交,也是同样的功能。image-20220516210157810

提交的时候,一定需要填写提交的信息,来表明当前提交是做了什么操作。

image-20220516210350572

提交过后,文件就在本地仓库了,如果需要提交到远程仓库,我们可以点击 ,然后选择推送(push),来实现 git push 的操作,如果当前仓库有分支,那么我们还可以选择提交到哪个分支中,如图二,变基分支,实现 git checkout xxx 操作

image-20220516210521626

image-20220516210711351

然后到GitHub仓库页面,我们可以看到刚刚提交的文件。

image-20220516210634590


参考资料

Git 基本操作 | 菜鸟教程 (runoob.com)(https://www.runoob.com/git/git-basic-operations.html)