Git 快速上手
一、Git 简介
Git 是一款版本控制系统,它可以追踪文件的更改,并能多人协同开发,它最初由 Linus Torvalds 在 2005 年为更好地管理 Linux 内核而设计的; Git 是目前最流行的版本控制系统,主要功能有: ● 代码备份 ● 版本回退 ● 协同开发 ● 权限控制
二、下载安装
下载地址:**https://git-scm.com/**** **,随后“傻瓜式”安装(一路下一步即可)

三、Git 基本使用
1、起始配置**#**
第一次使用 Git 的时候,我们需要配置姓名和邮箱,让 Git 知道当前开发者的基本信息 配置姓名:
git config --global user.name "Your Name"
配置邮箱:
git config --global user.email "email@example.com"
注意点:
1. 命令中的各单词中间有空格。
2. 上述两个命令只在第一次使用 Git 时运行, 若输入错误, 重新运行命令即可。
3. 可以使用 git config --list或git config -l命令来查看配置信息 。
4. 上述这两个命令不用自己手敲, 直接复制粘贴,随后修改【姓名】与【邮箱】即可。
2、linux 常用命令**#**
Windows 为图形化操作形式,Linux 一般使用命令与系统进行交互,常用的命令如下:
| 命令 | 含义 |
|---|---|
| mkdir | 创建文件夹(make directory) |
| cd | 改变工作目录,(change directory 缩写) |
| touch | 创建一个文件 |
| ls | 查看文件夹下的文件 (list 单词的缩写) |
| cat | 查看文件内容 |
| Tab | 路径自动补全 |
| clear | 清屏(也可以使用 ctrl + L 快捷键) |
| rm | 删除文件或文件夹 (删除不会进入回收站) -r 递归删除(用来删除文件夹) |
| ctrl + c | 取消命令 c cancel 缩写 |
| 上下方向键 | 查看命令历史 |
3、vim 编辑器**#**
Vim 是一款命令行下的文本编辑器,编辑方式跟图形化编辑器不同,基本操作:
1. 命令行 vim 文件名 打开文件
2. 按i进入编辑模式
3. 开始编辑文件内容
4. ESC + :wq 保存并退出(w => write q=>quit)
5. ESC + :q! 不保存并退出
4、Git 的三个区**#**
以生活中做菜为例,整个过程中涉及到三个区域:① 货架、② 购物车、③ 厨房

Git 中同样也分为三个区域,分别是:
- 工作区(代码编辑区)
- 暂存区(暂时存储区)
- 版本区(版本控制区)
工作区、暂存区、版本区,三个区共同组成了一个 Git 仓库

5、基本操作流程**#**
第一步:创建一个空文件夹(名称不要包含中文),随后双击打开文件夹。
第二步:在文件夹空白处右键 ,随后点击 “Open Git Bash here” 启动命令行。
第三步:创建一个 Git 仓库,命令为:git init,命令执行成后,提示如下:

git init执行后,会出现一个文件夹,这表示当前文件夹已成为一个 Git 仓库。
第四步:创建一些文件并编写代码,比如创建 【a.txt】,此时工作区已经有了新文件。
第五步:把工作区中【a.txt】添加到暂存区,具体命令为:git add a.txt,此命令无提示。

补充:git add -A可以把工作区中的所有文件,都添加到暂存区,比较常用。
第六步:把暂存区【a.txt】添加到版本区,具体命令为:git commit -m ‘xxx’,随后提示如下:

注意:此时我们先不用关心上图中的具体提示,后面会详细讲解。关键步骤图示:

6、Git 三区的位置**#**
Git 的三区位置大致如下(了解即可)

7、查看仓库状态**#**
git status命令用于显示仓库当前的状态,git status -s也用于查看仓库状态,但提示更为简短。
- 若没有需要提交的内容,提示如下

- 若工作区的内容没有提交暂存区,提示如下

- 若暂存区的内容没有提交版本区,提示如下

8、删除暂存**#**
git rm —cached 可以将文件从暂存区中删除。

9、对比差异**#**
git diff用于对比:工作区 vs 暂存区 git diff —cached 用于对比:暂存区 vs 仓库区 diff 命令的返回格式如下图:

注意:实际开发中文件多,且修改内容也多,我们会借助 git 的 GUI 工具进行文件差异对比。
10、查看版本日志**#**
借助于下面命令,可以查看整个 git 的提交记录
- git log:按提交时间降序列出所有提交,最新的提交会首先显示。

- git log —oneline:在git log的基础上,以简洁的一行显示每个提交。如果内容偏多, 需要使用方向键上下滚动, 按 q 退出。

11、版本回退**#**
Git 可以将项目代码内容切换到历史的任何一个版本,使用 git reset —hard 版本号 使用场景如下:
- 创建一个 git 仓库,随后创建:a、b、c、d 四个文件

- 随后对四个文件,分别依次执行:git add、git commit进行版本控制
- 随后使用git log —online查看版本记录

- 现在我们使用git reset —hard 版本号把代码回滚到:刚提交完 b 文件的时候

- 两个注意点:
注意点 1:git reset --hard会有如下动作:
① 切换版本区 HEAD (指针)指向
② 还原暂存区到对应版本
③ 还原工作区到对应版本
执行git reset --hard之前,最好进行: git add 、git commit操作!
--soft:重置HEAD到指定提交,所有的更改都会自动添加到暂存区,对工作区无影响。
--mixed (默认值):重置HEAD到指定的提交,并且重置暂存区,对工作区无影响。
--hard:重置HEAD到指定的提交,并且重置暂存区,重置工作区!
注意点 2:使用git reset --hard版本回滚后,使用git log只能看到当前版本之前的记录,
例如:刚才回到了13f46ca这个版本,那使用git log --online就会看到:

此时:看不见 c 文件和 d 文件的提交记录了,因为对于13f46ca 这个版本来说,
c 文件和 d 文件的提交记录属于未来,是看不到的,要想看到最完整的日志记录,
可以使用git reflog命令。

13、修改提交**#**
git commit —amend 命令可以修改最近一次提交,它可以:
- 重新编辑上次的提交信息。
如果在一次提交后,意识到提交信息有误或不够详细,
可以使用 git commit --amend 来重新编辑上次提交信息
- 将新的更改添加到上次提交中。
如果在一次提交后,意识到忘记将某文件提交了,
可以先使用 git add 将这些遗漏的更改添加到暂存区,
然后通过 git commit --amend 将它们添加到上一个提交中。
场景演示(重新编辑上次的提交信息)
- 创建一个 a 文件,其内容如下(包含 4 行内容)

- 随后对 a 文件进行版本控制,但提交信息编写有误

- 查看一下提交记录

- 随后使用git commit —amend命令进行修改提交,弹出 vim 编辑框,随后编辑好正确的提交信息,保存并退出

- 此时提示提交成功

- 随后查看提交日志如下:

场景演示(将新的更改添加到上次提交中)
- 进行了一次提交后,查看提交记录如下:

- 但发现 a 文件中少写了一些代码,随后我们补上了少写的代码,然后想对最近一次提交进行修改,执行git add -A后使用git commit —amend命令进行修改提交。

- 随后弹出 vim 编辑框,我们在编辑框里重新编写提交说明,随后保存并退出。

- 随后提交完毕,我们使用git log —online查看提交记录,发现提交已经被修改。

14、忽略文件**#**
在项目开发过程中有些文件不应该存储到版本库中,这个时候配置忽略这些文件。 git 中需要创建一个文件 『.gitignore』文件来设置忽略,『.gitignore』文件与.git 目录同级,常用规则如下:
| 内容 | 含义 |
|---|---|
| temp | 忽略任何路径下的名为 temp 的文件、文件夹。 |
| *.log | 忽略任何路径下以.log 结尾的文件。 |
| /dist | 忽略根目录下的 dist 文件,不会忽略其他目录下的 dist 文件 |
备注:.gitkeep文件可以把空文件夹提交
继续阅读
基于全文检索与主题相似度
Kokoro 开源TTS引擎上线!多语言支持,无需联网,浏览器内极速运行
Kokoro 是一款轻量级的开源文本转语音(TTS)引擎,凭借其高效能和轻量化设计,迅速在技术社区中引起关注。 本文将详细介绍 Kokoro 的主要特点,并提供在浏览器和 Python 环境中的代码示例,帮助您快速上手。 1. Kokoro:可在浏览器中运行的 TTS 引擎 1.1 简介 Kokoro 是一个拥有 82
git仓库同步两个远程仓库
假设有两个存储库 URL,并希望同步它们以便它们包含相同的内容。 必须在 Git 中配置一个指向上游仓库的远程仓库,以便将您在分支中所做的更改同步到原始仓库。这也允许您将原始仓库中的更改同步到分支中。 若需双向同步(配置远程仓库 origin、upstream),举例拉取 unpstream 最新代码,同步到 mast
Git 分支基本使用
1、分支的概念**#** 分支是 git 的一个重要特性,它可以让开发人员从主线上分离出来,在一个独立的线路上继续开发,最后可以灵活的选择合并分支,还是丢弃分支。用一个生活中的例子,来理解分支: 比如我们正在写一本小说,这本小说的当前内容就像是 git 中的 master 分支,现在我们有几个新的想法, 比如:新的角色