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的用户名和邮箱),填写即可
点击推送按钮或者直接点击同步按钮即可