
git仓库的使用方法
1. Git基础
1.1 什么是版本管理
版本管理是一种记录文件变化的方式,以便将来查阅特定版本的文件内容。
1.2 Git 简史
这是一个传奇故事,时间定格到2005年,当时linux再使用一个叫做BitKeeper的版本控制工具,BitKeeper开发商在这一年决定不再免费提供给linux社区使用,之后, linux花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!Git也由此诞生了。
在 Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。Git不需外连到服务器去获取历史, 这也意味着你离线,几乎可以进行任何操作。
Git是一个版本控制工具系统,它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,又是谁在何时报告了某个功能缺陷等等。

1.3 Git 安装
在安装的过程中,所有选项使用默认值即可。
1.4 Git 基本工作流程
Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
由此引入 Git 项目的三个工作区域的概念:工作目录,暂存区域,Git 仓库。
| 工作目录 | 暂存区 | git仓库 |
|---|---|---|
| 被Git管理的项目目录 | 临时存放被修改文件 | 用于存放提交记录 |

1.5 Git 的使用
Git 有多种使用方式。 你可以使用原生的命令行模式,也可以使用 GUI 模式,这些 GUI 软件也能提供多种功能。 我们将使用命令行模式。
Windows 用户,命令窗口(Command Prompt)或 PowerShell。
Mac 用户,使用终端(Terminal);
1.5.1 Git 使用前配置
如果系统上安装了 Git,下面就要来定制你的 Git 环境。 每台计算机上只需要配置一次,程序升级时会保留配置信息。 你可以在任何时候再次通过运行命令来修改它们。
Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量。
在使用 Git 前,需要告诉 Git 你是谁,在向 Git 仓库中提交时需要用到。
- 配置提交人姓名:
git config --global user.name 提交人姓名 - 配置提交人邮箱:
git config --global user.email 提交人邮箱 - 查看git配置信息:
git config --list - 删除git配置用户信息:
git config --global --unset 错误信息
注意
- 如果要对配置信息进行修改,重复上述命令即可。
- 配置只需要执行一次。
- git help 查看帮助信息
1.5.2 提交步骤
git init初始化git仓库git status查看文件状态git status -s (以简介的形式输出)
git add 文件列表追踪(添加到暂存区)文件 再次git status查看文件状态git commit -m 提交信息向仓库中提交代码git commit –a 直接提交省略add的步骤
git log查看提交记录注意:将工作目录中的文件全部添加到暂存区:
git add .
多学一招:
git bash 窗口:clear
DOS窗口命令清屏:cls
DOS窗口上下箭头:可以选择之前的输入信息
1.5.3 撤销
用暂存区中的文件覆盖工作目录中的文件:
git checkout 文件名将文件从暂存区中删除git:
git rm --cached 文件名从工作目录中删除文件并暂存删除操作:
git rm 文件名(必须是commit的文件,目前在暂存区没有任何修改)将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录(git log查看commitID):
git reset --hard commitID

2. Git进阶
2.1 分支
为了便于理解,大家暂时可以认为分支就是当前工作目录中代码的一份副本。
使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。

2.1.1 分支细分
主分支(master):第一次向 git 仓库中提交更新记录时自动产生的一个分支。

、开发分支(develop):作为开发的分支,基于 master 分支创建。
功能分支(feature):作为开发具体功能的分支,基于开发分支创建

功能分支 -> 开发分支 -> 主分支
2.1.2 分支命令
git branch查看分支git branch 分支名称创建分支git checkout 分支名称切换分支(切换分支前分支上的文件必须得提交,才可以切换分支)git merge 来源分支合并分支(提交,切换到主分支上进行合并)git branch -d 分支名称删除分支(分支被合并后才允许删除)(-D 强制删除)
2.2 暂时保存更改
在git中,可以暂时提取分支上所有的改动并存储,让开发人员得到一个干净的工作副本,临时转向其他工作。
使用场景:分支临时切换
- 存储临时改动(添加到暂存区,然后再保存临时改动):
git stash - 恢复改动:
git stash pop
3. Github(Gitee)
在版本控制系统中,大约90%的操作都是在本地仓库中进行的:暂存,提交,查看状态或者历史记录等等。除此之外,如果仅仅只有你一个人在这个项目里工作,你永远没有机会需要设置一个远程仓库。
只有当你需要和你的开发团队共享数据时,设置一个远程仓库才有意义。
3.1 注册
访问github首页,点击 Sign up 连接。(注册)
填写用户名、邮箱地址、GitHub登陆密码
选择计划
填写 GitHub 问题
验证邮箱
GitHub 个人中心
3.2 多人协作开发流程
- A在自己的计算机中创建本地仓库
- A在github中创建远程仓库
- A将本地仓库推送到远程仓库
- B克隆远程仓库到本地进行开发
- B将本地仓库中开发的内容推送到远程仓库
- A将远程仓库中的最新内容拉去到本地


3.3 创建仓库
填写仓库基本信息
将本地仓库推送到远程仓库
git push 远程仓库地址 分支名称
git remote add 远程仓库地址别名 远程仓库地址
git push 远程仓库地址别名 分支名称
3.4 拉取操作
3.4.1 克隆仓库
克隆远端数据仓库到本地:git clone 仓库地址 不需要身份认证
3.4.2 拉取远程仓库中最新的版本
拉取远程仓库中最新的版本:git pull 远程仓库地址 分支名称 读操作不需要身份认证
3.5 解决冲突
在多人同时开发一个项目时,如果两个人修改了同一个文件的同一个地方,就会发生冲突。冲突需要人为解决。
git rebase(把多次提交的记录,合并成一个,进行提交)
3.6 ssh免登陆
1.在gitbush命令下命令-生成秘钥:ssh-keygen
2.秘钥存储目录:C:\Users\用户\.ssh
3.公钥名称:id_rsa.pub
4.私钥名称:id_rsa
注意:提交时使用ssh地址提交,第一次要输入yes

3.7 GIT忽略清单
将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件。
git忽略清单文件名称:**.gitignore**
在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录。
输入 touch .gitignore 在文件夹就生成了一个“.gitignore”文件。
3.8 GIT提交空目录
提交空文件结构(在根目录运行): touch .gitignore
4. vscode配置git
ctrl+shift+p 打开命令窗口
使用git clone命令 添加项目连接打开在工作目录,下载项目
修改项目后,修改文件添加到暂存更改
点击提交已暂存文件按钮,在命令窗口填写提交记录信息,按下回车提交
提交时弹出配置用户名信息(或在终端配置git的用户名和邮箱),填写即可
点击推送按钮或者直接点击同步按钮即可

