特点:基于服务器、客户端的运行模式 ① 服务器保存文件的所有更新版本 ② 客户端是服务器的完整备份,并不是只保留文件的最新版本 优点: ① 联网运行,支持多人协作开发 ② 客户端断网后支持离线本地提交版本更新 ③ 服务器故障或损坏后,可使用任何一个客户端的备份进行恢复
Git 中的三个区域
Git 中的五种状态
- 未跟踪(Untracked):不被git管理的文件
- 未修改(Unmodified):工作区中文件的内容和 Git 仓库中文件的内容保持一致
- 已修改(modified):工作区中文件的内容和 Git 仓库中文件的内容不一致
- 已暂存(staged):工作区中被修改的文件已被放到暂存区,准备将修改后的文件保存到 Git 仓库中
- 已提交(commited):表示文件已经安全地保存在本地的 Git 仓库中
循环:2->3->4->5->2->3…
Git 本地使用
1. 全局配置用户信息
//安装完 Git 之后,要做的第一件事就是设置自己的用户名和邮件地址。
//因为通过 Git 对项目进行版本管理的时候,Git 需要使用这些基本信息,来记录是谁对项目进行了操作:
git config --global user.name "..."
git config --global user.email "...@qq.com"
2. 查看Git的全局配置文件
通过 git config —global user.name 和 git config —global user.email 配置的用户名和邮箱地址,会被写入到 C:/Users/用户名文件夹/.gitconfig 文件中。这个文件是 Git 的全局配置文件,配置一次即可永久生效。
可以使用记事本打开此文件,从而查看自己曾经对 Git 做了哪些全局性的配置。
3. 命令查看全局配置信息
可用于查看全局配置是否生效
# 查看所有的全局配置项
git config --list --global
# 查看指定的全局配置项
git config user.name
git config user.email
4. 创建仓库
如果自己有一个尚未进行版本控制的项目目录,想要用 Git 来控制它,需要执行如下两个步骤: ① 在项目目录中,通过鼠标右键打开“Git Bash” ② 执行 git init 命令将当前的目录转化为 Git 仓库 git init 命令会创建一个名为 .git 的隐藏目录,这个 .git 目录就是当前项目的 Git 仓库,里面包含了初始的必要 文件,这些文件是 Git 仓库的必要组成部分。
# 新建/初始化 本地仓库
git init
# 从远程服务器克隆仓库
git clone https://gitee.com/ccu041540223/htmlcss.git
5. 检查文件状态
可以使用 git status 命令查看当前文件夹下的文件处于什么状态
未被跟踪文件:??
跟踪后的新文件:A
// 详细查看文件状态
git status
// 精简方式查看文件状态
git status -s
在状态报告中可以看到新建的 index.html 文件出现在 Untracked files(未跟踪的文件) 下面。
未跟踪的文件意味着 Git 在之前的快照(提交)中没有这些文件;Git 不会自动将之纳入跟踪范围,除非明确地告诉它“我需要使用 Git 跟踪管理该文件”。
6. 跟踪新文件/添加到暂存区 - git add - A
# 使用命令 git add 开始跟踪一个文件。
git add index.html
# 向暂存区中一次性添加多个文件
git add .
# 从暂存区中删除文件
git rm --chached xxx
7. 提交到本地仓库 git commit
现在暂存区中有一个 index.html 文件等待被提交到 Git 仓库中进行保存。可以执行 git commit 命令进行提交, 其中 -m 选项后面是本次的提交消息,用来对提交的内容做进一步的描述:
commit后,git status 就看不到对应的文件了(因为staged文件全部变为unmodified)
# 将暂存区中的文件提交到本地git仓库
git commit -m "新建了index.html"文件
# 跳过使用暂存区域直接提交
git commit -a -m "提交index.html文件"
8. 修改被跟踪的文件 - M
9. 暂存已修改的文件 - git add - M
10. 提交已暂存且已修改的文件
11. 撤销对文件的修改(回滚到本地Git仓库中最新版本)
注:如果撤销对文件的修改,会导致本地的修改全部消失,谨慎操作!!
# 撤销对index.html文件的修改
git checkout -- index.html
12. 取消暂存的文件
# 如果需要从暂存区中移除对应的文件,可以使用如下的命令:
git reset HEAD 要移除的文件名称
13. 移除本地Git仓库中的文件
# 从 Git 仓库中移除文件的方式有两种:
# ① 从 Git 仓库和工作区中同时移除对应的文件
git rm -f index.js
# ② 只从 Git 仓库中移除指定的文件,但保留工作区中对应的文件
git rm --cached index.css
14. 忽略文件.gitignore
文件 .gitignore 的格式规范如下: ① 以 # 开头的是注释 ② 以 / 结尾的是目录 ③ 以 / 开头防止递归 ④ 以 ! 开头表示取反 ⑤ 可以使用 glob 模式进行文件和文件夹的匹配(glob 指简化了的正则表达式)
15. 查看提交历史
16. 回退到指定版本
注:如果回退到指定版本,则该版本往后的记录(git log)都会消失,谨慎操作!!
17. 查看历史版本提交信息
git reflog
Git 远程仓库Github/Gitee
1. 基于HTTPS将本地仓库上传到Gitee
Step1: 将本地仓库和远程仓库关联,并把远程仓库命名为origin
# 在本地仓库目录下执行下面命令
# git remote add 远程仓库名 远程仓库地址
git remote add origin https://gitee.com/ccu041540223/htmlcss.git
Step2:将本地仓库中的内容推送到远程的origin仓库中
# git push -u 远程服务器名称 分支名称
git push -u origin master/dev/test
2. 基于SSH将本地仓库上传到Gitee
SSH key 的作用:实现本地仓库和 Github/Gitee 之间免登录的加密数据传输。
SSH key 的好处:免登录身份认证、数据加密传输。
SSH key 由两部分组成,分别是:
① id_rsa(私钥文件,存放于客户端的电脑中即可)
② id_rsa.pub(公钥文件,需要配置到 Github/Gitee 中)
Step1:生成SSH key
① 打开 Git Bash
② 粘贴如下的命令,并将 your_email@example.com 替换为注册 Github/Gitee 账号时填写的邮箱:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
③ 连续敲击 3 次回车,即可在 C:\Users\用户名文件夹.ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件
Step2:配置SSH key
① 将 id_rsa.pub 文件中的内容配置到Gitee对应的仓库中
② 启用公钥
Step3:如果是Github,检测SSH公钥是否配置成功
Step4: 将本地仓库和远程仓库关联,并把远程仓库命名为origin
# 在本地仓库目录下执行下面命令
# git remote add 远程仓库名 远程仓库地址
git remote add origin https://gitee.com/ccu041540223/htmlcss.git
Step5:将本地仓库中的内容推送到远程的origin仓库中
# git push -u 远程服务器名称 分支名称
git push -u origin master/dev/test
3. 克隆远程仓库
# 打开Git bash,输入如下的命令并执行回车
git clone 远程仓库的地址
Git 分支
1. 分支开发在实际工作中的应用
2. master 主分支
3. dev功能分支
4. 查看分支列表
5. 创建新分支
6. 切换分支
7. 快速创建并切换分支
8. 合并分支
注:要合并到哪个分支,就要先切换到那个分支上!!
9. 删除分支
注:要删除功能分支时,不能位于该分支上!!
10. 分支合并解决冲突
注:解决冲突后,需要将最新的文件通过add和commit提交到合并后的分支上!!
11. 远程分支操作
注:第一次将本地分支推送到远程仓库分支,需要进行分支关联!!
12. 查看远程仓库中的所有分支列表
git remote show 远程仓库名称,如origin