一、什么是Git
版本控制系统(VCS)是将『什么时候、谁、对什么文件做了怎样的修改』这样的信息以版本的形式保存并进行管理的系统。
简单来说,版本控制系统会去记录它所管理的文件的『历史版本』。
版本控制系统 “不是网盘,而胜似网盘” :
- 它和网盘的相同点在于:它可以位于局域网,或者是外网上的一台服务器上,你和你的小伙伴们可以在不同的地方、不同的电脑上,以它为 “中介、桥梁” 共享文件。
- 它胜似网盘的地方在于:它能记录你和你的小伙伴们对文件修改的所以历史版本,并且你可以将你的文件恢复到你感兴趣的某个历史版本。
Git 并非唯一的版本控制系统,它的前辈是 Subversion 。2014 年 Git 的市场占有率首次超过 Subversion ,成为主流。
Git 相较于 Subversion 的先进之处在于:
-
Subversion 中的版本信息仅存在于中央仓库,而 Git 中所有的本地库中都有完整的历史版本信息。
-
Subversion 中的 “分支” 很重,创建分支、删除分支、合并分支等分支相关操作很慢,而 Git 中的分支很轻,分支操作是 Git 的拳头特性
1.1、Git的工作机制
1.2、Git和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
局域网
- GitLab
互联网
- GitHub(外网)
- Gitee码云(国内网站)
二、Git的安装
最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑。不过,慢慢地有人把它移植到了Windows上。现在,Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行了。由于开发机大多数情况都是windows,所以本教程只讲解windows下的git的安装及使用
第1步:安装Git
下载Git
- 官方下载地址:https://git-scm.com/download
- 淘宝下载地址:https://npm.taobao.org/mirrors/git-for-windows/
以管理员的身份运行Git-2.31.1-64-bit.exe,除以下特殊选项之外都是默认安装
右键任意位置,在右键菜单里选择 Git Bash Here 即可打开 Git Bash 命令行终端。
初始化配置
打开Git命令界面,在使用 git 之前需要使用 config 命令配置下用户名和用户邮箱:
git config --global user.name "<用户名>"
git config --global user.email "<邮箱>"
git config --global push.default simple
git config --global core.editor notepad
在使用 git 之前创建 SSH Key,未来会使用到:
ssh-keygen -t rsa -b 4096 -C "备注"
# 一路回车
cat ~/.ssh/id_rsa.pub
『备注』通常是 2 种风格:
- 邮箱
- username@hostname,例如:tom@192.172.0.110
第2步:Git常用命令
命令名称 | 作用 |
---|---|
git config --global user.name 用户名 | 设置用户签名 |
git config --global user.email 邮箱 | 设置用户签名 |
git init | 初始化本地库 |
git status | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git commit -m “日志信息” 文件名 | 提交到本地库 |
git reflog | 查看历史记录 |
git reset --hard 版本号 | 版本穿梭 |
三、Git的基本操作
3.1、创建本地版本库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。由于git是分布式版本管理工具,所以git在不需要联网的情况下也具有完整的版本管理能力。
创建一个版本库非常简单。首先,选择一个合适的地方,创建一个空目录,在该文件夹中执行 git init,就可以让 Git 完成管理前的准备工作。
$ git init
执行成功后,你会看到类似如下信息:
Initialized empty Git repository in ...
Git 会在它管理的文件夹下创建名为 .git 的子文件夹,这个文件夹也就是逻辑上的『本地仓库』。它里面会存放被 Git 所管理的文件的相关信息(例如,历史版本)。
注意:你不要自己去操作 .git 目录,更不要随意将 .git 目录删除。这个目录下的内容是 Git 来使用和操作的。
当你执行完 git init 命令之后,当前目录就位于 Git 的监管范畴内,这个目录中的文件的变动(新创建的、被删除的、内容有更新的)都会被 Git 察觉。
3.2、Git 中文件的受管状态
Git 会将文件(文件夹)的状态分成以下 3 类:
状态 | 说明 |
---|---|
tracked被追踪 | tracked 状态意味着 Git 正在关注着这个文件。 你对这个文件的任何改动,都会被 Git 发现。Git 会进一步要求你提交你的改动,或撤销你的改动。 |
ignored被忽略的 | ignored 状态意味着 Git 完全不管这个文件,在 Git 看来它就跟不存在一样。 |
untracked不被追踪的 | untracked 状态是所有文件的初始状态。 逻辑上,它是 tracked 和 ignored 状态『之前』的一种状态,逻辑上,它是一种临时状态:你既没有要求 Git 监管它,又没有要求 Git 忽略它。 对于这个文件,Git 也是一脸懵逼不知道接下来该不该监测文件的变动,正因为如此,untracked 是一种临时状态,不应该长期存在。 |
注意
这里有 2 点需要强调的是:
所有的文件的初始状态都是 untracked 。
在正常情况下,文件不应该长期处于 untracked 状态,应尽快转变为 tracked 或 ignored 。
对于新创建的文件,它们都是处于 untracked 状态的,接下来它们应该尽快通过下述 2 种方法之一切换成 ignored 状态,或 tracked 状态。
untracked
└──> ignored
必须先在 Repo 文件夹中创建一个名为 .gitignore 的文件(必须是这个名字),
然后把要忽略的文件逐一列在这个文件中,一个文件一行,支持通配符。
windows上创建.gitignore文件:
先任意创建一个文件,例如:1.txt
在cmd中输入:ren 1.txt .gitignore
untracked
└──> tracked
可以使用 git add + git commit 命令,将它提交给 Git 监管即可。
3.3、查看本地库状态
1、基本语法
git add
2、案例实操
第1步:首次查看(工作区没有任何文件)
第2步:新增文件(hello.txt)
第3步:再次查看(检测到未追踪的文件)
3.4、添加暂存区
3.4.1、将工作区的文件添加到暂存区
1、基本语法
git add hello.txt
2、实操案例
3.4.2、查看状态(检测到暂存区有新文件)
3.5、提交本地库
3.5.1 将暂存区的文件提交到本地库
1、基本语法
git commit -m "日志信息" 文件名
2、案例实操
3.5.2 查看状态(没有文件需要提交)
3.6、修改文件(hello.txt)
3.6.1 查看状态(检测到工作区有文件被修改)
3.6.2 将修改的文件再次添加暂存区
3.6.3 查看状态(工作区的修改添加到了暂存区)
3.7、历史版本
3.7.1 查看历史版本
1、基本语法
git reflog 查看版本信息 git log 查看版本详细信息
2、案例实操
3.7.2 版本穿梭
1、基本语法
git reset --hard 版本号
2、案例实操
首先修改hello.txt然后再次提交,我们可以看到有两次提交
现在将版本穿梭到第一次提交也就是my first commit
版本穿梭需要通过id,如果想要穿梭到my first commit,则需要通过id=1cd410d
转载:https://blog.csdn.net/qzc70919700/article/details/128477718