海南住房与城乡建设部网站网站诊断分析报告模板及优化执行方案.doc
目录:
- git环境配置
 - git工作流程
 - git常用命令
 - gitlab实战
 - gitlog分析与检索
 - 分支管理策略
 - git合并与冲突
 
1.git环境配置
Git 简介:
- Git 是目前世界上最先进的分布式版本控制系统。
 - Git 优点: 
- 适合分布式开发,强调个体。
 - 公共服务器压力和数据量都不会太大。
 - 速度快、灵活。
 - 任意两个开发者之间可以很容易的解决冲突。
 - 离线工作。
 
 
Git 环境验证:
- Windows: 
- cmd 中输入命令 
git --version。 
 - cmd 中输入命令 
 - MacOS: 
- 终端中输入命令 
git --version。 
 - 终端中输入命令 
 
2.git工作流程
Git 基本概念:
- 文件状态 
- 未跟踪(Untracked)
 - 未修改(Unmodified)
 - 已修改(Modified)
 - 暂存区(Staged)
 
 - 三个工作区域 
- 工作区(Working Directory)
 - 暂存区(Staging Area)
 - 仓库区(Repository)
 
 - 工作树(Worktree)
 

Git 工作流程:

3.git常用命令
基于 Git 的远程仓库:
- GitHub https://github.com/ 世界上最主流的远程开源仓库。
 - Gitee https://gitee.com/ 国内目前比较主流的开源仓库,也可以私有化部署。(推荐)
 - GitLab https://gitlab.com/ 私有化部署,企业使用较多。
 
Git 同步命令:
克隆远程仓库:
git clone <url>
远程连接方式 特点
- HTTPS 连接使用给定 URL 即可 clone,在 push 时验证用户名和密码。
 - SSH 连接 需要提前添加 SSH Key,在 push 时不需要输入用户名,配置 SSH 时设置了密码才需要输入密码。
 
HTTPS 连接:
- 配置全局帐号: 
- 配置用户名:
git config --global user.name "your name" - 配置邮箱:
git config --global user.email "your_email@youremail.com" 
 - 配置用户名:
 - 验证配置结果:
git config --global --list 
SSH 连接:

拉取远程仓库:
- 拉取远程仓库到本地: 
git pull
 
初始化仓库:
- 在已存在的目录中初始化仓库: 
git init
 - 关联远程仓库: 
git remote add origin <url>
 
Git 修改命令:
跟踪新文件:
- 添加文件或目录到暂存区: 
git add <file>/<directory>
 
# 跟踪某个文件
git add new_file.txt
# 跟踪当前目录下所有文件
git add .
提交更新:
- 提交到本地仓库: 
git commit -m "comments"
 
推送到远程仓库:
- 推送本地仓库到远程仓库: 
git push
 
Git 常用调试命令:
检查当前文件状态:
- 查看文件状态: 
git status
 
查看已暂存和未暂存的修改:
- 比较当前文件和暂存区域快照之间的差异: 
git diff
 - 查看已暂存的将要添加到下次提交里的内容: 
git diff --staged
 
撤销操作:
- 撤销对文件的修改: 
git checkout <file>
 - 取消暂存: 
git reset HEAD <file>
 
cat readme.txt
1234
update1
update2
update3
git checkout readme.txt
cat readme.txt
1234
update1
update2
git reset HEAD file.txt
git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
file.txt
nothing added to commit but untracked files present (use "git add" to track)
移除文件:
- 删除文件: 
git rm -f <file>
 - 移出暂存区: 
git rm --cached <file>
 
忽略文件:
.gitignore文件。- 有些文件无需纳入 Git 的管理。
 - 比如日志文件,或者编译过程中创建的临时文件。
 
4.gitlab实战
GitLab 帐号:
- 申请账号。
 - 申请权限。
 
配置公钥:
- 找到 id_rsa.pub,复制内容。
 - GitLab -> 我的头像 -> Prefereces。
 - SSH keys。
 - 粘贴公钥,点击 add key。
 

 
5.gitlog分析与检索
Git Log 分析:
- 查看项目历史信息: 
git log
 
Git Log 检索:
- 筛选时间: 
git log --since='2023-02-02 00:00:00'
 - 筛选作者: 
git log --author='feier'
 - 筛选描述: 
git log --grep='update'
 
6.分支管理策略
分支管理:
- 概念: 
- 每次提交,Git 都把它们串成一条时间线,这条时间线就是一个分支。
 
 - 价值: 
- 多人协作。
 - 环境管理。
 
 
创建分支:
- 新建分支,但仍然停留在当前分支: 
git branch 分支名
 - 新建分支并直接切换至该分支: 
git checkout -b 分支名
 
查看分支:
- 列出所有本地分支: 
git branch
 - 列出所有远程分支: 
git branch -r
 - 列出所有本地与远程分支: 
git branch -a
 
切换分支:
- 切换到指定分支: 
git checkout 分支名
 
删除分支:
- 删除指定分支: 
git branch -d 分支名
 
7.git合并与冲突
分支合并应用场景:
- 合入主分支。
 - 主分支合并其他分支: 
- 通常使用 Merge Request 的方式。
 
 
合并分支:
- 合并指定分支到当前分支: 
git merge 其他分支 本分支
 - 变基:重新设置基准: 
git rebase 其他分支
 
什么是冲突?
- 冲突:在并行工作的模式下,工作最终会发生重叠。当多个成员以不同的方式更改同一行内容时,在这种情况下,Git 无法判断哪个版本是正确的,这时就会产生冲突。
 - 冲突场景: 
- 多个分支代码合并到一个分支时。
 - 多个分支向同一个远端分支推送代码时。
 
 
解决冲突:
- 解决冲突方式: 
- IDE 中解决冲突:选择要保留的内容点击 Accept,保存代码。
 - 文件中解决冲突:保留需要的内容,删除其余内容,去掉分割线,保存代码。
 
 - 冲突解决流程: 
- 在本地当前分支上,修改冲突内容。
 - 执行 
git add .添加到暂存区。 - 执行 
git commit -m '提交说明'提交到本地仓库,完成合并。 - 执行 
git push提交到远程仓库。 
 
