目次
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里输入命令
固然也可以克隆到指定目次:
然后项目就被我们成功从远程堆栈clone到本地堆栈了
Step 4)打开此文件,可以看到该目次下已经有了一个.git文件(隐藏的文件),包罗了全部远程堆栈的版本汗青、分支信息等。
Step 5)使用git clone之后假如远程堆栈有更新,本地堆栈不会自动更新。你必要手动使用 git fetch 或 git pull 来获取远程堆栈的最新变化。
使用 git fetch 来获取远程堆栈的最新更新信息,包罗新的提交、分支、标签等,但这不会自动更新你的本地工作目次,仅会影响 .git 目次
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即可啦。
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,写了以下代码:
将这个文件添加到 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. 检察提交汗青
如今,你可以检察这个文件的全部修改汗青:
这会表现每次提交的提交哈希值、提交信息和时间:
5. 回滚到之前的版本
假设你发现第二次的修改有标题,想要回到第一次提交的状态。你可以使用 git checkout 回滚到第一次提交:
如今,main.py 就规复到最初的状态(只有一行 print("Hello, World!")
)。
6. 回到最新的提交
假如你想回到最新的版本,你可以这样做:
这样,你的代码会回到最新的状态。
5.4 git push:
git push 是一个重要的 Git 命令,用于将本地堆栈的更改上传到远程堆栈。这个命令的主要功能是把本地分支的更新推送到对应的远程分支,以便与其他开辟者共享代码。
这块过于冗长,网上也有许多详细的教程,就不再睁开叙述了,可以参考下面的文章:
手把手教你用git上传项目到GitHub(图文并茂,这一篇就够了)
Github堆栈master分支到main分支迁移指南
6 超级汇总——常用的Git命令
Git 命令大全「全面且实用,值得收藏」_git 命令这一篇就够了-CSDN博客
7 参考文献
- git clone、git pull和git fetch的用法及区别
- 手把手教你用git上传项目到GitHub(图文并茂,这一篇就够了)
- Github堆栈master分支到main分支迁移指南
- Git 使用教程:最详细、最傻瓜、最浅近、真正手把手教!(万字长文) - 知乎 (zhihu.com)
- Git学习条记(代码版本管理)-超详细_什么是代码版本管理-CSDN博客
- Git 命令大全「全面且实用,值得收藏」_git 命令这一篇就够了-CSDN博客
- CCFrank4dblp
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |