一文带你学会Git的基本使用⭐⭐⭐(超简洁,避免冗余)

目录

1 什么是Git?

2 为什么要学习Git?

3 工作流程图

4 四个区|仓库介绍

4.1 工作区(Workspace)

4.2 暂存区(Staging Area)

4.3 本地仓库(Local Repository)

4.4 远程仓库(Remote Repository) 

5 六个常用命令

5.1 git clone | git fetch | git merge | git log | git diff:

5.2 git pull:

5.3 git init | git add | git commit | git checkout:

1. 初始化 Git 仓库

2. 第一次提交:创建文件

3. 第二次提交:修改代码

4. 查看提交历史

5. 回滚到之前的版本

6. 回到最新的提交

5.4 git push:

6 超级汇总——常用的Git命令

7 参考文献


1 什么是Git?

Git 是一个分布式版本控制系统,用于管理和跟踪代码或文件的变更。它可以记录文件的每一次修改,帮助开发者协作、管理代码版本、追踪项目历史,并在需要时恢复到之前的版本

Git 是开源的,由林纳斯·托瓦兹(Linus Torvalds)在 2005 年开发,最初用于 Linux 内核开发。如今,它广泛应用于各种软件开发项目中,尤其是在团队协作开发中。

知道上述内容就行了。

2 为什么要学习Git?

相信大家一开始接触Git都是因为要从Github上下载某个开源项目到本地仓库。当然也可以直接手动下载,不过通过git clone命令克隆到本地显得更酷(bushi)。

那么Git只有这一个用途么?

当然不是。接下来我将详细介绍一下在日常科研中我们会经常用到的git操作。

注:关于Git的下载可自行百度,本文仅记录Git的基本原理和简单用法。

3 工作流程图

上图是Git的一个工作流程图,主要涉及4个模块和6个命令,一般情况下我们只要掌握这些就足够日常使用了。本文也将围绕这个展开。

4 四个区|仓库介绍

4.1 工作区(Workspace)

工作区是你当前正在进行开发和编辑文件的地方。它就是你的项目文件所在的目录,包含你正在修改、编辑、编写的所有文件。

4.2 暂存区(Staging Area)

暂存区是一个临时的存储区域,保存你想要提交的改动。它类似于“准备提交”的区域。你可以将修改部分地加入暂存区,只将当前开发的一部分内容提交,而不是整个工作区的内容。

4.3 本地仓库(Local Repository)

本地仓库是你计算机上的 Git 仓库(要通过git init提前创建),保存项目的所有历史提交记录。当你对文件进行提交(git commit)时,文件会被从暂存区提交到本地仓库,成为项目的永久记录

4.4 远程仓库(Remote Repository) 

远程仓库是托管在服务器上的仓库,如 GitHub、GitLab 或 Bitbucket。它与本地仓库不同,通常用于团队协作或代码备份。你可以将本地的提交推送到远程仓库,其他开发者也可以从远程仓库拉取代码。

5 六个常用命令

5.1 git clone | git fetch | git merge | git log | git diff:

先来介绍一下最常用到的git clone命令:

Step 1)在一个地方右键打开Git Bash

Step 2)这里我们在Github上随便找一个项目做实验: CCFrank4dblp,Copy一下URL

Step 3)在git bash里输入命令

git clone <URL>

git clone时发生报错怎么办?可以参见下面这篇文章自行解决:

完美解决 git 报错 “fatal: unable to access ‘https://github.com/.../.git‘: Recv failure Connection was rese-优快云博客

注:上文方法二中端口号的设置要和clash中的端口号保持一致 

当然也可以克隆到指定目录: 

git clone <URL> <目标路径>

 然后项目就被我们成功从远程仓库clone到本地仓库了

Step 4)打开此文件,可以看到该目录下已经有了一个.git文件(隐藏的文件),包含了所有远程仓库的版本历史、分支信息等。

Step 5)使用git clone之后如果远程仓库有更新,本地仓库不会自动更新。你需要手动使用 git fetchgit pull 来获取远程仓库的最新变化。

使用 git fetch 来获取远程仓库的最新更新信息,包括新的提交、分支、标签等,但这不会自动更新你的本地工作目录,仅会影响 .git 目录

git fetch origin

Step 6)那么我如何查看.git的信息才能得知有最新的更新呢?

方式一:通过git log来获取详细的包含时间的更新信息。

git log origin/master --pretty=format:"%h %s %ad" --date=relative

这样我们便可以看到最近是否有过更新啦。

方式二:通过git diff 命令查看本地分支和对应的远程分支之间的差异,以了解具体的更改。

git diff master origin/master

可以看到在我们用git fetch获取最新的更新信息后比较两者的差异,结果没有任何输出,证明本地仓库的已经是最新版本了。

Step 7)那么如果不是最新版本的话我们如何执行实际的合并更新操作呢?

通过git merge即可啦。

git merge origin/master

5.2 git pull:

git pull是拉取远程分支更新到本地仓库的操作。比如远程仓库里的学习资料有了新内容,需要把新内容下载下来的时候,就可以使用git pull命令。事实上,git pull是相当于从远程仓库获取最新版本,然后再与本地分支merge(合并)。

即:git pull = git fetch + git merge

注:git fetch不会进行合并,执行后需要手动执行git merge合并,而git
pull拉取远程分之后直接与本地分支进行合并。更准确地说,git pull是使用给定的参数运行git fetch,并调用git merge将检索到的分支头合并到当前分支中。

三者之间的区别和联系可以参见:git clone、git pull和git fetch的用法及区别 

git pull <remote> <branch>
  • <remote>:通常为 origin,表示你想要拉取更新的远程仓库。
  • <branch>:表示你想要拉取的远程分支(例如 main)。

5.3 git init | git add | git commit | git checkout:

为了方便理解,这里我们用一个例子来说明这些命令的使用流程:

假设你在开发一个简单的项目,其中包含一个文件 main.py。你在项目的不同阶段进行修改,并希望使用 Git 来记录这些变化。

1. 初始化 Git 仓库

首先,你需要在项目文件夹中初始化一个 Git 仓库:

接着文件夹中自然会出现一个.git的隐藏文件,包含各种日志、更新信息等,用于存储版本控制相关的信息。

2. 第一次提交:创建文件

接着,你创建一个文件 main.py,写了以下代码:

print("Hello, World!")

将这个文件添加到 Git 暂存区并进行提交:

git add main.py
git commit -m "Initial commit: add main.py with hello world"

3. 第二次提交:修改代码

你决定修改 main.py,添加了新的功能:

print("Hello, World!")
print("This is version 2 of the script.")

你再一次将修改添加到暂存区并提交:

4. 查看提交历史

现在,你可以查看这个文件的所有修改历史:

git log

这会显示每次提交的提交哈希值、提交信息和时间: 

5. 回滚到之前的版本

假设你发现第二次的修改有问题,想要回到第一次提交的状态。你可以使用 git checkout 回滚到第一次提交:

git checkout <对应的哈希值>

现在,main.py 就恢复到最初的状态(只有一行 print("Hello, World!"))。

6. 回到最新的提交

1)如果你的开发模式是 "一直在 master 分支上开发",你想回到最新的版本,你可以这样做:

git checkout master

2)如果你的开发模式不在任何分支上,而是直接在某个提交上:

可以先使用如下命令显示 HEAD 的所有历史更新:

git reflog

然后使用如下命令回到最新的版本:

git checkout 7c20a4b

这样,你的代码会回到最新的状态。

5.4 git push:

git push 是一个重要的 Git 命令,用于将本地仓库的更改上传到远程仓库。这个命令的主要功能是把本地分支的更新推送到对应的远程分支,以便与其他开发者共享代码。

这块过于冗长,网上也有很多详细的教程,就不再展开叙述了,可以参考下面的文章:

手把手教你用git上传项目到GitHub(图文并茂,这一篇就够了)

Github仓库master分支到main分支迁移指南

6 超级汇总——常用的Git命令

Git 命令大全「全面且实用,值得收藏」_git 命令这一篇就够了-优快云博客

7 参考文献

  1. git clone、git pull和git fetch的用法及区别
  2. 手把手教你用git上传项目到GitHub(图文并茂,这一篇就够了)
  3. Github仓库master分支到main分支迁移指南
  4. Git 使用教程:最详细、最傻瓜、最浅显、真正手把手教!(万字长文) - 知乎 (zhihu.com)
  5. Git学习笔记(代码版本管理)-超详细_什么是代码版本管理-优快云博客
  6. Git 命令大全「全面且实用,值得收藏」_git 命令这一篇就够了-优快云博客
  7. CCFrank4dblp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值