第27周JavaSpringboot git初识
Git 课程笔记
一、Git 的介绍
1. Git 的诞生背景
Git 是 Linux 内核的作者 Linus Torvalds 为了更好地管理 Linux 内核开发而创建的版本控制系统。在 Linux 内核开发初期,由于开发者众多,协作成本很高,后来使用了 BitKeeper 工具来辅助协作,但后来由于合作结束,Linus Torvalds 决定自己开发一套版本管理系统,这就是 Git。Git 是开源的,可以在 GitHub 上找到该项目。
2. Git 的作用
Git 的主要作用是帮助我们控制版本。如果没有版本管理系统,我们在开发过程中可能会遇到很多问题,比如无法回到之前的版本、文件备份占用大量空间、多人协作时文件合并困难等。Git 能够很好地解决这些问题。
二、Git 的安装与配置
1. Git 的安装
Git 的安装相对容易,可以在官网找到不同操作系统的安装包。以 Mac OS 为例,可以从官网下载安装器,然后按照提示进行安装。安装完成后,可以通过 git --version
命令验证是否安装成功。
2. Git 的配置
在使用 Git 之前,需要进行一些配置,比如设置用户名和邮箱。可以使用以下命令进行配置:
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
三、Git 的重要概念
1. Git、GitHub 和 GitLab
Git 是一个版本控制系统,GitHub 和 GitLab 是基于 Git 的代码托管平台。GitHub 是目前世界上最大的代码托管平台,很多开源项目都在上面。GitLab 则更适合企业内部使用,可以搭建私有的代码托管平台。
2. 工作区、暂存区和本地仓库
工作区是我们平时编写代码的地方,当我们想要把工作区的变动提交到版本控制系统时,需要先将文件添加到暂存区,然后再提交到本地仓库。
3. HEAD、分支和远程仓库
HEAD 指向当前所在的提交,分支是开发中的不同线路,远程仓库是团队协作时用来共享代码的仓库。
四、单人开发者如何使用 Git
1. 基本工作流程
单人开发的基本工作流程包括创建项目、添加文件、提交变更等。可以使用 git init
创建新的 Git 项目,使用 git add
将文件添加到暂存区,使用 git commit
提交变更。
示例:创建项目并提交变更
-
创建项目目录
mkdir myproject cd myproject
-
初始化 Git 项目
git init
-
创建并编辑文件
touch README.md echo "My Project" >> README.md
-
添加文件到暂存区
git add README.md
-
提交变更
git commit -m "Initial commit"
2. 实际开发场景
在实际开发中,可能会遇到很多问题,比如提交错误、想要撤销变更、查看不同版本之间的差异等。可以使用 git reset
回退版本,使用 git stash
暂时存储未提交的变更,使用 git diff
查看差异。
示例:回退版本
-
查看提交历史
git log
-
回退到上一个版本
git reset --hard HEAD~1
示例:暂存未提交的变更
-
暂存变更
git stash
-
查看暂存列表
git stash list
-
应用暂存的变更
git stash pop
示例:查看差异
-
查看工作区与暂存区的差异
git diff
-
查看暂存区与本地仓库的差异
git diff --staged
五、多人协作下如何使用 Git
1. 基本流程
多人协作的基本流程包括创建项目、克隆项目、提交变更、拉取远程代码等。可以使用 git clone
克隆远程项目,使用 git push
将本地代码推送到远程仓库,使用 git pull
拉取远程代码。
示例:克隆项目并提交变更
-
克隆远程项目
git clone https://github.com/username/myproject.git
-
进入项目目录
cd myproject
-
创建并切换到新分支
git checkout -b new-feature
-
编辑文件并添加到暂存区
git add .
-
提交变更
git commit -m "Add new feature"
-
推送变更到远程仓库
git push origin new-feature
2. 冲突解决
在多人协作中,可能会遇到冲突,比如两个人修改了同一个文件的同一部分。解决冲突的方法是手动修改冲突部分,然后重新提交。
示例:解决冲突
-
拉取远程代码
git pull origin main
-
解决冲突
# 手动修改冲突部分
-
添加解决冲突的文件
git add .
-
提交解决冲突的变更
git commit -m "Resolve conflict"
-
推送变更到远程仓库
git push origin new-feature
3. 工作流
常见的 Git 工作流包括功能分支工作流、GitFlow 工作流等。功能分支工作流是为每个功能创建一个分支,开发完成后合并到主分支。GitFlow 工作流则更加复杂,包括开发分支、发布分支、热修复分支等。
功能分支工作流
-
创建功能分支
git checkout -b feature-branch
-
开发功能
# 编辑文件
-
提交功能
git add . git commit -m "Add feature"
-
合并功能到主分支
git checkout main git merge feature-branch
-
删除功能分支
git branch -d feature-branch
GitFlow 工作流
-
创建开发分支
git checkout -b develop
-
创建功能分支
git checkout -b feature-branch develop
-
开发功能
# 编辑文件
-
提交功能
git add . git commit -m "Add feature"
-
合并功能到开发分支
git checkout develop git merge feature-branch
-
创建发布分支
git checkout -b release-branch develop
-
发布版本
git tag -a v1.0 -m "Release version 1.0"
-
合并发布分支到主分支和开发分支
git checkout main git merge release-branch git checkout develop git merge release-branch
-
删除发布分支
git branch -d release-branch
-
创建热修复分支
git checkout -b hotfix-branch main
-
修复问题
# 编辑文件
-
提交修复
git add . git commit -m "Fix bug"
-
合并热修复到主分支和开发分支
git checkout main git merge hotfix-branch git checkout develop git merge hotfix-branch
-
删除热修复分支
git branch -d hotfix-branch
六、在 IDEA 中优雅地使用 Git
IDEA 集成了 Git 功能,可以方便地进行版本控制操作。可以使用 IDEA 的图形界面进行提交、切换分支、对比代码等操作。
示例:在 IDEA 中提交变更
-
打开项目
# 在 IDEA 中打开项目
-
编辑文件
# 编辑文件
-
查看变更
# 在 IDEA 的 Version Control 面板中查看变更
-
提交变更
# 在 IDEA 的 Version Control 面板中提交变更
-
切换分支
# 在 IDEA 的 Version Control 面板中切换分支
-
合并分支
# 在 IDEA 的 Version Control 面板中合并分支
-
解决冲突
# 在 IDEA 的 Version Control 面板中解决冲突
七、Git Ignore
Git Ignore 文件用于指定哪些文件或目录不需要被 Git 管理。可以使用 *.log
忽略所有日志文件,使用 target/
忽略整个 target 目录等。
示例:创建 Git Ignore 文件
-
创建 Git Ignore 文件
touch .gitignore
-
编辑 Git Ignore 文件
# 忽略日志文件 *.log # 忽略目标目录 target/
-
添加并提交 Git Ignore 文件
git add .gitignore git commit -m "Add .gitignore"
八、总结
1. Git 常用命令总结
命令 | 描述 |
---|---|
git init | 创建新的 Git 项目 |
git clone | 克隆远程项目 |
git add | 将文件添加到暂存区 |
git commit | 提交变更 |
git status | 查看当前状态 |
git log | 查看提交历史 |
git branch | 查看或创建分支 |
git checkout | 切换分支 |
git merge | 合并分支 |
git push | 将本地代码推送到远程仓库 |
git pull | 拉取远程代码 |
git reset | 回退版本 |
git stash | 暂时存储未提交的变更 |
git diff | 查看差异 |
2. 单人开发与多人协作场景总结
在单人开发中,主要关注基本工作流程和实际开发场景中的问题解决。在多人协作中,需要关注基本流程、冲突解决和工作流。掌握这些内容,可以相对熟练地使用 Git 进行版本控制。
图形解释步骤
工作区、暂存区和本地仓库的关系
工作区 -> 暂存区 -> 本地仓库
git add git commit
分支的创建和合并
main
|
v
develop <- feature-branch
^
|
git checkout -b feature-branch
|
v
git merge feature-branch
冲突解决流程
git pull origin main
解决冲突
git add .
git commit -m "Resolve conflict"
git push origin new-feature
希望这些详细的笔记和图形解释步骤对你有所帮助!如果有任何问题或需要进一步的解释,请随时告诉我。