1. 解决远程冲突
由于有 code review 的存在,有可能出现这种情况:同时有多个人的代码被 review,如果有一个人改了与你相同地方的代码,并且他的代码先通过 review 并被合进了远程代码库。当你的代码通过 review 并进行合并,此时会产生冲突。由于冲突是发生在远端,不能采用在本地 rebase 的办法,此时需要采取以下步骤来解决冲突:
# 进入工程,假设是ProjectA
cd ProjectA
# 切换到需要被合并的特征分支,例如 FixForBug1922
git checkout FixForBug1922
# 从远程获取代码
git fetch origin
# rebase 到远程分支,命令为 git rebase origin/<remote_branch>
git rebase origin/1.0.1
# rebase 的时候会提示冲突,手动合并冲突
# 将解决冲突后的文件重新加入
git add <conflict_file>
# 继续 rebase
git rebase --continue
# 成功后将最新的特征分支 push 到远端
git push origin FixForBug1922:refs/for/1.0.1
注意:push 后需要重新进行 code review。
以上步骤中有一步:git fetch 。fetch 是比 pull 更细粒度的操作。fetch 是将远端的代码拿下来,而 pull 是执行 fetch 后再与本地的代码合并。所以上面的命令实际是告诉 git 把远端的代码拿下来,但是不要合并(因为我们现在是在特征分支上,合并肯定会冲突出错)。fetch 命令会自动在本地创建一个远程分支的本地拷贝,此拷贝我们不能直接操作(如果你强行调用 git checkout 去切入这个拷贝,git 会自动创建一个本地分支,并切入到那个自动创建的本地分支上)。我们还是使用 rebase 命令重新放置特征分支并解决冲突。
2. 本地 branch 改名
有时候想重命名本地 branch, 命令如下:
git branch -m <old_branch> <new_branch>
# 例如,重命名 feature branch "FixBug123" 至 "FixBug124"
git branch -m FixBug123 FixBug124
3. 合并本地 branch
有时候想在本地将一个 branch 的内容合并到另一个 branch 上。比如,假设在做修改之前没有新建一个 feature branch,而是在原来的 feature branch 上做了修改,push 的时候发现这个 feature branch 所关联的远程的 review 已经通过了(或被 abandon 了),此时会 push 不上去。有一个解决办法就是另外新建一个 feature branch ,然后将新建的修改的内容合并到新的feature branch 上。使用 merge 命令:
# 创建并切换至新的 feature branch
git checkout -b <new_feature_branch>
# 在新 branch 上 merge 旧的 branch
git merge <old_feature_branch>
merge 命令的语法与 rebase 相似,都是先切换到新的 branch 下,然后 merge/rebase 被复制的 branch。例如:
# merge FixBug123 上的内容至 FixBug125
# 1. 切换回 tracking branch:
git checkout 1.0.0
# 2. 在此基础上创建并切换新的 feature branch
git checkout -b FixBug125
# 3. 在新 feature branch 上 merge:
git merge FixBug123
3. 删除本地分支
如果想删除某一本地分支,可执行如下命令:
git branch -D <local_branch>
4. Gerrit上创建新工程
首先,你的用户需要在 Gerrit 上拥有 Administrator 的权限,否则无法执行一下命令。
打开 git bash ,如果本地已经有工程了,进入到工程的根目录。键入如下命令:
ssh -p 29418 review gerrit create-project --name <project_name> --parent <parent_name>
其中 <project_name> 就是要创建的工程的名字,<parent_name> 是父工程的名字(这个是可选的,此处声明父工程可以从父工程中继承很多属性,以免重复设置)。
登录 Gerrit ,在 Admin->Projects 中可以看到新建的工程(目前是空的),选择 Admin->Projects->[project_name]->General ,可以在 Description 中输入工程的描述,在 Project Options 中,推荐选择 'Cherry Pick' ,并勾选 'Automatically resolve conflicts' 和 'Require Change-Id in commit message' 。最后保存。
然后,在 git bash 中继续输入 (注意要在工程的根目录下):
# 初始化,会自动创建 .git 隐藏文件夹
git init
# 加入所有文件夹
git add *
# 加入 .classpath 文件
git add .classpath
# 加入 .project 文件
git add .project
# 提交,并输入 comments
git commit
将本地提交 push 到远程(此时应该在 master 上):
git push origin master:refs/for/master
以上操作将在 Gerrit 上生成一个新的 review,找人 review 直至通过,代码才会 merge 到远程库中。
选择 Admin->Projects->[project_name]->Branches,输入 'Branch Name' 和 'Initial Revision'(一般填 master)创建远程分支。
在本地 git bash 中执行 pull 命令:
git pull
这样会把刚才创建的远程分支信息拉到本地,现在可以在本地创建 Tracking Branch 链接远程分支:
git checkout -b 1.0.0 -t origin/1.0.0
分享到:
相关推荐
以上步骤详细介绍了如何结合 Tomcat、Hudson 和 Samba 配置 Gerrit 服务器,从而搭建一个完整的本地代码管理平台。通过这些配置,可以有效地管理代码变更、实现持续集成,并提供跨平台的文件共享服务。
Gerrit是一款强大的代码审查和项目管理工具,广泛用于Git版本控制系统中,旨在提高代码质量,确保代码在合并到主分支之前经过适当的审查。本文主要介绍如何使用Gerrit进行初始设置、理解其工作流程以及进行本地操作...
Git、Gerrit与JenkinsHudson CI服务器
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
《基于YOLOv8的智慧社区独居老人生命体征监测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
Android Studio Meerkat 2024.3.1 Patch 1(android-studio-2024.3.1.14-mac.dmg)适用于macOS Intel系统,文件使用360压缩软件分割成两个压缩包,必须一起下载使用: part1: https://download.csdn.net/download/weixin_43800734/90557060 part2: https://download.csdn.net/download/weixin_43800734/90557056
侧轴承杯加工工艺编制及夹具设计.zip
NASA数据集锂电池容量特征提取(Matlab完整源码和数据) 作者介绍:机器学习之心,博客专家认证,机器学习领域创作者,2023博客之星TOP50,主做机器学习和深度学习时序、回归、分类、聚类和降维等程序设计和案例分析,文章底部有博主联系方式。从事Matlab、Python算法仿真工作8年,更多仿真源码、数据集定制私信。
板料折弯机液压系统设计.zip
C6150车床的设计.zip
机器学习之KNN实现手写数字
python爬虫;智能切换策略,反爬检测机制
mpls-vpn-optionA-all
56tgyhujikolp[
GB 6442-86企业职工伤亡事故调查分析规则.pdf
汽车液压式主动悬架系统的设计().zip
2000-2024年各省专利侵权案件结案数数据 1、时间:2000-2024年 2、来源:国家知识产权J 3、指标:专利侵权案件结案数 4、范围:31省 5、用途:可用于衡量知识产权保护水平
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
内容概要:本文档详细复现了金融数学课程作业,涵盖欧式看涨期权定价和投资组合优化两大部分。对于欧式看涨期权定价,分别采用Black-Scholes模型和蒙特卡洛方法进行了计算,并对彩虹期权进行了基于最大值的看涨期权定价。投资组合优化部分则探讨了最小方差组合、给定收益的最小方差组合、最大效用组合以及给定风险的最大收益组合四种情形,还对比了拉格朗日乘数法和二次规划求解器两种方法。文中不仅提供了详细的MATLAB代码,还有详尽的中文解释,确保每一步骤清晰明了。 适合人群:金融工程专业学生、量化分析师、金融数学爱好者。 使用场景及目标:①帮助学生理解和掌握金融衍生品定价的基本原理和方法;②为从事量化分析的专业人士提供实用工具和技术支持;③作为教学材料辅助高校教师讲授相关内容。 其他说明:文档还包括了完整的论文结构建议,从封面页到结论,再到附录,涵盖了所有必要元素,确保提交的作业符合学术规范。此外,还特别强调了数据预处理步骤,确保代码可以顺利运行。
脉冲电解射流加工喷射装置设计(1)