1. Git 分支及基础操作指令
1.1 创建分支
# 创建新分支
git branch <branch_name># 创建并切换到新分支
git checkout -b <branch_name>
1.2 切换分支
# 切换到指定分支
git checkout <branch_name># 切换到上一个分支
git checkout -
1.3 查看分支
# 查看本地分支
git branch# 查看所有分支(包括远程分支)
git branch -a
1.4 合并分支
# 将指定分支合并到当前分支
git merge <branch_name>
1.5 删除分支
# 删除本地分支
git branch -d <branch_name># 强制删除本地分支(未合并的分支)
git branch -D <branch_name># 删除远程分支
git push origin --delete <branch_name>
2. Git 分支合并冲突解决
2.1 冲突产生的原因
当两个分支对同一文件的同一部分进行了不同的修改,Git 无法自动合并时,就会产生冲突。
2.2 解决冲突的步骤
- 合并分支时发生冲突:
git merge <branch_name>
- 查看冲突文件:
Git 会在冲突文件中标记冲突部分,例如:<<<<<<< HEAD 当前分支的内容 ======= 合并分支的内容 >>>>>>> branch_name
- 手动修改冲突文件,保留需要的内容,删除冲突标记。
- 添加修改后的文件到暂存区:
git add <file_name>
- 完成合并:
git commit
3. 本地仓库与远程仓库的连接与操作
3.1 建立连接
# 克隆远程仓库到本地
git clone <remote_repo_url># 添加远程仓库
git remote add origin <remote_repo_url>
3.2 推送代码
# 将本地分支推送到远程仓库
git push origin <branch_name># 推送并设置上游分支(首次推送时使用)
git push -u origin <branch_name>
3.3 拉取代码
# 拉取远程分支的最新代码并合并
git pull origin <branch_name># 仅拉取远程分支的最新代码(不合并)
git fetch origin <branch_name>
4. Git 跨团队合作
4.1 Fork 工作流
- Fork 远程仓库到自己的账号。
- 克隆 Fork 的仓库到本地:
git clone <forked_repo_url>
- 添加上游仓库(原始仓库):
git remote add upstream <original_repo_url>
- 同步上游仓库的最新代码:
git fetch upstream git merge upstream/main
- 创建新分支进行开发:
git checkout -b <feature_branch>
- 推送代码到 Fork 的仓库:
git push origin <feature_branch>
- 提交 Pull Request (PR) 到原始仓库。
4.2 分支权限管理
- 主分支(如
main
)通常受保护,只有管理员可以合并代码。 - 开发人员应在自己的分支上开发,并通过 PR 提交代码。
5. Git 变基(Rebase)
5.1 变基的作用
将当前分支的提交“移动”到目标分支的最新提交之后,使提交历史更加线性。
5.2 变基操作
# 切换到当前分支
git checkout <feature_branch># 将当前分支变基到目标分支(如 main)
git rebase main
5.3 解决变基冲突
- 变基过程中发生冲突时,Git 会暂停变基。
- 手动解决冲突后,继续变基:
git add <file_name> git rebase --continue
- 如果放弃变基:
git rebase --abort
5.4 变基与合并的区别
- 合并:保留分支的完整历史,生成一个合并提交。
- 变基:使提交历史更加线性,但会重写提交记录。
一、定义
基本概念:
变基是将一系列提交按照原有顺序应用到另一个基点上的过程。
这会创建一个新的提交历史,而不会影响原始分支。
与合并的区别:
合并(Merge)会保留两个分支的历史记录,并生成一个新的合并提交。
变基则会重写历史,使得分支历史看起来像是连续的。
二、使用场景
整理提交历史:
当你的本地分支有很多零散的小提交时,可以使用变基将这些提交整理成一个或几个更有意义的提交。
避免不必要的合并提交:
在将特性分支合并到主分支之前,使用变基可以避免产生额外的合并提交,使历史更加清晰。
同步远程分支:
当你的本地分支落后于远程分支时,可以先拉取远程分支的最新更改,然后通过变基将这些更改应用到你的本地分支上。
解决冲突:
在多人协作的项目中,如果多个开发者对同一部分代码进行了修改,使用变基可以帮助更有效地解决冲突。
总结
- Git 分支操作包括创建、切换、合并和删除分支。
- 合并冲突需要手动解决,修改后重新提交。
- 本地仓库与远程仓库通过
clone
、push
和pull
进行交互。 - 跨团队合作常用 Fork 工作流和 PR 机制。
- 变基可以优化提交历史,但需谨慎使用,避免重写公共提交记录。