文章目录
-
- [1. Git 基础操作](#1. Git 基础操作)
-
- [1.1 初始化 Git 仓库](#1.1 初始化 Git 仓库)
- [1.2 克隆现有仓库](#1.2 克隆现有仓库)
- [1.3 配置 Git 用户信息](#1.3 配置 Git 用户信息)
- [1.4 查看 Git 配置信息](#1.4 查看 Git 配置信息)
- [2. 文件操作](#2. 文件操作)
-
- [2.1 查看文件状态](#2.1 查看文件状态)
- [2.2 添加文件到暂存区](#2.2 添加文件到暂存区)
- [2.3 提交文件到本地仓库](#2.3 提交文件到本地仓库)
- [2.4 查看提交历史](#2.4 查看提交历史)
- [2.5 回退到上一个提交](#2.5 回退到上一个提交)
- [3. 分支操作](#3. 分支操作)
-
- [3.1 创建新分支](#3.1 创建新分支)
- [3.2 切换分支](#3.2 切换分支)
- [3.3 查看所有分支](#3.3 查看所有分支)
- [3.4 删除本地分支](#3.4 删除本地分支)
- [3.5 合并分支](#3.5 合并分支)
- [3.6 解决合并冲突](#3.6 解决合并冲突)
- [4. 远程操作](#4. 远程操作)
-
- [4.1 添加远程仓库](#4.1 添加远程仓库)
- [4.2 查看远程仓库信息](#4.2 查看远程仓库信息)
- [4.3 拉取远程仓库更新](#4.3 拉取远程仓库更新)
- [4.4 推送代码到远程仓库](#4.4 推送代码到远程仓库)
- [4.5 删除远程分支](#4.5 删除远程分支)
- [4.6 拉取并合并远程分支](#4.6 拉取并合并远程分支)
- [5. 标签操作](#5. 标签操作)
-
- [5.1 创建标签](#5.1 创建标签)
- [5.2 查看标签](#5.2 查看标签)
- [5.3 推送标签到远程仓库](#5.3 推送标签到远程仓库)
- [5.4 删除标签](#5.4 删除标签)
- [6. Git 流程与工作流](#6. Git 流程与工作流)
-
- [6.1 使用 Git Flow 工作流](#6.1 使用 Git Flow 工作流)
- [6.2 基本的 Git Flow 操作](#6.2 基本的 Git Flow 操作)
- [7. 进阶操作](#7. 进阶操作)
-
- [7.1 使用 Git Rebase](#7.1 使用 Git Rebase)
- [7.2 Git Stash](#7.2 Git Stash)
- [7.3 检查文件的修改记录](#7.3 检查文件的修改记录)
- [8. Git 常见问题与解决](#8. Git 常见问题与解决)
-
- [8.1 如何取消未提交的更改?](#8.1 如何取消未提交的更改?)
- [8.2 如何强制推送?](#8.2 如何强制推送?)
- [8.3 如何重命名本地分支?](#8.3 如何重命名本地分支?)
1. Git 基础操作
1.1 初始化 Git 仓库
在一个空目录中初始化一个新的 Git 仓库:
bash
git init
1.2 克隆现有仓库
复制一个已经存在的远程仓库
bash
git clone https://github.com/yourusername/yourrepository.git
1.3 配置 Git 用户信息
在本地使用 Git 前,需要配置用户名和邮箱,这将与提交记录关联:
bash
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
1.4 查看 Git 配置信息
要查看当前的 Git 配置信息,可以使用以下命令:
bash
git config --list
2. 文件操作
2.1 查看文件状态
查看工作区和暂存区的文件状态:
bash
git status
2.2 添加文件到暂存区
将修改后的文件添加到 Git 暂存区:
bash
git add <file_name>
要添加所有修改过的文件,可以使用:
bash
git add .
2.3 提交文件到本地仓库
提交文件时,需要写明提交信息,描述这次提交的更改:
bash
git commit -m "Commit message"
2.4 查看提交历史
查看提交历史记录:
bash
git log
使用 --oneline
可以简化显示:
bash
git log --oneline
2.5 回退到上一个提交
如果想撤销上一次的提交,并将文件恢复到暂存区:
bash
git reset --soft HEAD~1
如果想彻底撤销上一次的提交并恢复工作区文件:
bash
git reset --hard HEAD~1
3. 分支操作
3.1 创建新分支
创建一个新分支并切换到该分支:
bash
git checkout -b new-branch
3.2 切换分支
切换到已有的分支:
bash
git checkout branch-name
3.3 查看所有分支
查看当前仓库的所有分支:
bash
git branch
3.4 删除本地分支
删除本地分支:
bash
git branch -d branch-name
如果分支尚未合并,你可以强制删除:
bash
git branch -D branch-name
3.5 合并分支
将指定分支的内容合并到当前分支:
bash
git merge branch-name
3.6 解决合并冲突
合并时可能会遇到冲突,Git 会标记冲突的文件,你需要手动编辑文件解决冲突,编辑后使用:
bash
git add conflicted-file
git commit -m "Resolve merge conflict"
4. 远程操作
4.1 添加远程仓库
将远程仓库与本地仓库关联:
bash
git remote add origin https://github.com/yourusername/yourrepository.git
4.2 查看远程仓库信息
查看当前配置的远程仓库信息:
bash
git remote -v
4.3 拉取远程仓库更新
从远程仓库拉取最新代码,并自动合并:
bash
git pull origin branch-name
4.4 推送代码到远程仓库
将本地的更改推送到远程仓库:
bash
git push origin branch-name
4.5 删除远程分支
删除远程仓库中的分支:
bash
git push origin --delete branch-name
4.6 拉取并合并远程分支
如果你要拉取并合并远程分支到当前分支:
bash
git fetch origin
git merge origin/branch-name
5. 标签操作
5.1 创建标签
创建一个新的标签(例如:v1.0):
bash
git tag v1.0
5.2 查看标签
查看所有标签:
bash
git tag
5.3 推送标签到远程仓库
将本地标签推送到远程仓库:
bash
git push origin v1.0
5.4 删除标签
删除本地标签:
bash
git tag -d v1.0
删除远程标签:
bash
git push origin --delete tag v1.0
6. Git 流程与工作流
6.1 使用 Git Flow 工作流
Git Flow 是一种常见的 Git 分支管理工作流,分为以下几种分支类型:
- master:稳定版,始终可部署。
- develop:开发版,包含即将发布的功能。
- feature/:功能开发分支。
- release/:发布分支,准备生产环境部署。
- hotfix/:修复分支,用于生产环境问题的修复。
6.2 基本的 Git Flow 操作
初始化 Git Flow(只需执行一次):
bash
git flow init
开始新功能开发:
bash
git flow feature start new-feature
结束功能开发并合并到 develop
:
bash
git flow feature finish new-feature
创建发布分支:
bash
git flow release start 1.0
发布并合并到 master
和 develop
:
bash
git flow release finish 1.0
修复生产环境 bug:
bash
git flow hotfix start fix-bug
结束并合并到 master
和 develop
:
bash
git flow hotfix finish fix-bug
7. 进阶操作
7.1 使用 Git Rebase
rebase
可以将分支的修改历史重新应用在另一个分支上,常用于保持项目历史记录的整洁。
bash
git rebase master
7.2 Git Stash
git stash
可以暂存当前工作区的更改,以便切换到其他分支而不丢失修改:
bash
git stash
恢复暂存的更改:
bash
git stash pop
7.3 检查文件的修改记录
查看文件的修改历史:
bash
git log -- <file_name>
查看文件的每次修改:
bash
git blame <file_name>
8. Git 常见问题与解决
8.1 如何取消未提交的更改?
如果你在工作区修改了文件,但还没有提交,可以使用以下命令取消修改:
bash
git checkout -- <file_name>
8.2 如何强制推送?
如果你需要强制推送本地分支到远程仓库(如覆盖远程分支),可以使用:
bash
git push -f origin branch-name
8.3 如何重命名本地分支?
如果你想重命名当前分支,可以使用:
bash
git branch -m new-branch-name
如果想重命名其他分支:
bash
git branch -m old-branch-name new-branch-name