git合并教程
常用git分支管理命令,掌握这些命令可以帮助开发者更高效地进行团队协作和项目管理。
名词解释
拉取(Pull):从远程仓库获取最新代码并合并到本地分支。命令为
git pull
,相当于git fetch
和git merge
的组合。推送(Push):将本地仓库的提交发送到远程仓库。命令为
git push [远程仓库名] [分支名]
。变基(Rebase):将一个分支的修改融合到另一个分支,但不同于合并,变基会重写提交历史,使其更加线性和整洁。命令为
git rebase [目标分支]
。挑拣(Cherry-pick):选择特定的提交应用到当前分支,而不是合并整个分支。命令为
git cherry-pick [提交哈希]
。暂存(Stage/Add):将修改的文件加入到下一次提交的暂存区。命令为
git add [文件名]
。提交(Commit):将暂存区的修改保存为一个新的提交。命令为
git commit -m "提交信息"
。签出(Checkout):切换到指定分支或恢复指定文件。命令为
git checkout [分支名/文件名]
。合并(Merge):将指定分支的内容合并到当前分支。命令为
git merge [分支名]
。冲突(Conflict):当两个分支修改了同一文件的同一部分时,Git无法自动合并而产生的状态。
远程仓库(Remote):存储在网络服务器上的Git仓库,可以与多人共享。
新建分支
新建分支是开发新功能或修复bug的常用方式,它可以让你在不影响主分支的情况下进行开发。
基本用法
1 | # 创建新分支但不切换 |
从特定提交创建分支
1 | # 从特定的提交创建分支 |
从远程分支创建本地分支
1 | # 跟踪远程分支 |
切换分支
在不同分支间切换是Git日常工作流的重要组成部分。
基本切换
1 | # 传统方式切换分支 |
强制切换
1 | # 强制切换,丢弃当前未提交的修改 |
保留修改并切换
1 | # 暂存当前修改 |
分支合并
分支合并是团队协作中最常见的操作之一,用于整合不同分支上的修改。
快进合并(Fast-forward)
当目标分支是当前分支的直接后继时,Git会执行快进合并。
1 | # 切换到目标分支(通常是主分支) |
非快进合并(No-fast-forward)
保留分支历史记录的合并方式。
1 | git merge --no-ff feature-branch |
处理合并冲突
当两个分支修改了同一文件的同一部分时,会产生合并冲突。
1 | # 合并时发生冲突 |
合并策略选项
1 | # 使用'ours'策略,保留当前分支的修改 |
撤销合并
1 | # 如果合并后还未推送,可以使用reset撤销 |
删除分支
在分支合并完成后,通常需要删除不再使用的分支以保持仓库整洁。
删除本地分支
1 | # 删除已合并的分支 |
删除远程分支
1 | # 删除远程分支 |
清理过时的远程跟踪分支
1 | # 列出已经不存在于远程的本地分支引用 |
高级分支管理技巧
分支重命名
1 | # 重命名当前分支 |
查看分支信息
1 | # 查看所有分支 |
如何把dev分支的代码应用到master分支上?
如何将 dev 分支的代码应用到 master 分支上
要将 dev 分支的代码应用到 master 分支上,你可以使用以下几种 Git 方法:
方法一:合并(Merge)
这是最常见的方法,将 dev 分支的所有更改合并到 master 中:
1. 切换到 master 分支
git checkout master
2. 确保 master 是最新的
git pull origin master
3. 将 dev 分支合并到 master
git merge dev
4. 解决冲突(如果有的话)
5. 将更改推送到远程仓库
git push origin master
方法二:变基(Rebase)
如果你想要保持一个更干净的提交历史:
1. 切换到 dev 分支
git checkout dev
2. 确保 dev 是最新的
git pull origin dev
3. 切换到 master 分支
git checkout master
4. 确保 master 是最新的
git pull origin master
5. 将 master 变基到 dev 的更改上
git rebase dev
6. 解决冲突(如果有)
7. 将更改推送到远程仓库
git push origin master
方法三:挑选提交(Cherry-pick)
如果你只想将 dev 分支上的特定提交应用到 master:
1. 切换到 master 分支
git checkout master
2. 确保 master 是最新的
git pull origin master
3. 找到你想要应用的提交的哈希值
git log dev
4. 挑选特定的提交
git cherry-pick <提交哈希值>
5. 推送更改到远程仓库
git push origin master
方法四:通过拉取请求(Pull Request)
如果你使用 GitHub、GitLab 等平台:
在平台上创建一个从 dev 到 master 的拉取请求(Pull Request)
审查代码更改
如果没有冲突,直接合并
如果有冲突,解决后再合并