Git:如何正确合并两个功能完全不同的分支?

2024-05-22

想象一下这样一种情况,同一个项目有两个分支,第一个分支的一部分对另一个分支进行了大幅重构。但有一段时间,您需要保持两个分支的功能,因此您需要对两个分支进行错误修复和关键功能添加,有时是以不对称的方式。在某些时候,您必须将重构的分支合并到原始分支上。在这种情况下最好使用什么技术?还能保持历史清白吗?

但更重要的是,在这种情况下我的初始策略应该是什么?


由于任务只是使用另一个分支而不是master,你可以简单地删除master完全分支或将其重命名为 -legacy,然后选择另一个分支并将其重命名为master。就是这样。以下是您可能需要在本地和 GitHub 上执行以实现目标的实际命令:

git branch -m master legacy               # rename local master to legacy
git checkout legacy
git branch -m another_branch master       # another_branch will be our new master

本地我们现在已经完成了。但是你不能简单地删除masterGitHub 上的分支。您需要先将另一个分支作为默认分支。这可以在存储库中完成Settings > Default Branch。完成此操作后,您可以继续:

git push origin :master                   # remove master on GitHub
git push origin master                    # push out our new master branch
git push origin legacy                    # push our legacy branch too

然后回到Settings > Default Branch并将默认分支切换回master。此外,您可以删除在迁移过程中可能创建的所有额外分支。

或者,如果您希望保存历史记录中的所有操作,请检查正确答案here https://stackoverflow.com/questions/2763006/change-the-current-branch-to-master-in-git.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git:如何正确合并两个功能完全不同的分支? 的相关文章

  • 是否应该在 git 中跟踪 .history 文件夹中的文件[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 每当我进行更改时 history 文件夹中的某些文件在我的状态中都会显示为未跟踪 我将如何控制它 即 make 是自动添加或不添加这些内容 而不
  • 致命:早期 EOF 致命:索引包失败

    我用谷歌搜索并找到了很多解决方案 但没有一个适合我 我试图通过连接到 LAN 网络中的远程服务器来从一台计算机进行克隆 从另一台机器运行此命令会导致错误 但是在服务器上使用 git 192 168 8 5 运行相同的克隆命令 一切正常并且成
  • .gitignore 文件夹内容[重复]

    这个问题在这里已经有答案了 可能的重复 在 Windows 上忽略 Git 存储库中的目录 https stackoverflow com questions 343646 ignoring directories in git repos
  • 在 Windows 上将 Mercurial (hg) 存储库转换为 Git (7)

    我现在真的很沮丧 我有一个现有的 hg 存储库 其中有几个月的编码历史 我想将其放入私有 Github 存储库中 以便我可以从那里对其进行处理 不幸的是我使用的是 Windows 我似乎找不到any转换我实际上可以正常工作的存储库的方法 实
  • “git rm --cached”、“git Restore --staged”和“git reset”之间有什么区别

    我遇到了以下三种方法来取消暂存由命令 git add 暂存的文件 git rm cached
  • Python 无法在 git bash 命令行中工作

    Python 不会在 git bash Windows 中运行 当我在命令行中输入 python 时 它会将我带到一个空行 而不会像在 Powershell 中一样显示它已输入 python 2 7 10 它没有给我错误消息 但 pytho
  • 主存储库和本地存储库在同一台机器上

    我是 Git 新手 我已经在 Linux 服务器中创建了一个主存储库 同一个服务器将由 5 组 每组 3 个用户 使用 我想为每个组创建一个本地存储库 小组成员又应该为每个人创建一个本地存储库 使用内容并将修改提交到小组的本地存储库 我该怎
  • 使用 Subversion 进行部分提交

    鉴于我做的案例两个独立的变化 in one文件 例如 添加了一个新方法并更改了另一个方法 我经常不想提交这两项更改 因为one提交 但作为two独立承诺 在 git 存储库上我会使用互动模式 of git 添加 1 http linux d
  • 无法将 git add origin git@anything 与新的 git 目录一起使用

    我有一个项目 我正在生成许多提交 因此它占用的空间正在快速增长 由于我有一个 gitlab 页面来推送提交 因此我决定最好删除本地 git 目录中的这些旧提交 因为我始终可以从 gitlab 获取它们 为此 我只需删除本地 git 目录 然
  • Git 中的合并冲突是由什么构成的?

    git 如何确定特定合并存在冲突以及冲突是什么 我的猜测是这样的 如果正在合并的两个提交有一个共同的父提交 并且如果它们都更改了父提交的 X 行 那就是冲突 让我的理解变得复杂的是 更改 X 行 可能意味着用几行新行替换它 但这仍然显示为一
  • 如何将普通的 Git 存储库转换为裸存储库?

    如何将 普通 Git 存储库转换为裸存储库 主要区别似乎是 在普通的 Git 存储库中 你有一个 git存储库内的文件夹 包含构成工作副本的所有相关数据和所有其他文件 在裸露的 Git 存储库中 没有工作副本和文件夹 我们称之为repo g
  • 通过链接进入 git-repo,无需冗长的对话框

    In a directory I have symbolic links into a git administered directory all under Linux Every time I want to e dit such a
  • 返回到存储库中的特定修订后提交并推送更改?

    我们需要及时返回到某个特定的提交 一些意外的改变是为了掌握 尝试恢复它挖得太深 所以 master 的状态很糟糕 现在我们希望master回到66ada4cc61d62afc 根据git 恢复到某个提交 https stackoverflo
  • 如何查看 github 的 SSH 密钥?

    我最近收到一封来自 Github 的电子邮件 要求我检查我的 SSH 密钥 请检查您的钥匙并确保您 认出他们 如果您有任何疑问 请拒绝钥匙并 上传新密钥 如何在 ubuntu 11 10 上使用 git 检查我的密钥 您可以按照 GitHu
  • 从 github 中删除子项目提交

    我有两个存储库A and B 我错误地在我的机器上将仓库 B 克隆到了 A 内 我从存储库 B 中删除了所有代码 但是当我在源上从 A 推送并合并代码时 它还显示了子项目提交B在 Github 仓库上 我想从我的 master 上删除子项目
  • 是否可以在 git 存储库之外添加和提交文件?

    我们的文本文件分布在系统的各个角落 我们计划将这些文件中所做的所有修改添加到 git 存储库中 每次对这些文件进行修改都是由脚本进行的 因此 我们计划向该脚本添加新命令 以将文件添加到 git 存储库 但是 这些修改是同时进行的 我们可以为
  • Git:压缩 master 上提交的最简单方法[重复]

    这个问题在这里已经有答案了 可能的重复 如何使用 git 将最后 X 次提交压缩在一起 https stackoverflow com questions 5189560 how can i squash my last x commits
  • 致命:不是 git 存储库(或任何父目录):.git [重复]

    这个问题在这里已经有答案了 当我尝试推送 github com 上的现有存储库时 当我输入命令时 网站提示我将其输入终端 我收到了以下致命错误消息 Not a git repository or any of the parent dire
  • 致命:无法将 HEAD 解析为有效引用

    我正进入 状态fatal Failed to resolve HEAD as a valid ref 每当我尝试承诺时 我努力了 echo ref refs heads master gt git HEAD 但它不起作用 也尝试过 git
  • 按时间顺序将多个文件夹提交到 git 中

    我有数百个网站备份 每个文件夹一个 我想将它们放入 git 存储库中 每个备份作为一个版本 这些变化主要涉及图像文件和每天 2 个数据库备份 大小约为 25 GB 并且不断增加 有没有办法告诉 git 获取其中一个文件夹并将其提交到存储库中

随机推荐

  • 如何在FireFox中检查用户访问麦克风的权限是否被拒绝

    有没有办法查明用户是否拒绝或允许媒体设备的权限 例如 Firefox 中的麦克风 摄像头 在 Chrome 中 我可以使用 navigator permissions query 检查这一点 但在 Firefox 中会失败并出现 TypeE
  • Azure Functions 的实例正在共享变量吗?

    不确定这个问题是否有意义 但这就是我所观察到的 我的 Azure 函数使用 BlobTrigger 处理上传到 Blob 存储的 PDF 文件 一切工作正常 直到我一次上传多个 blob 在这种情况下 使用下面的代码我观察到以下内容 第一个
  • 贪心技术与穷举搜索有何不同?

    我正在为一些示例问题编写伪代码 并且我注意到贪婪技术和详尽搜索之间存在令人担忧的模式 Job 1 Job 2 Job 3 Job 4 Job 5 Person 1 9 2 7 8 Person 2 6 4 3 7 Person 3 5 8
  • 当以编程方式触发 d3.behavior.zoom 事件时,如何设置平移和缩放的初始值?

    下面示例中的方块是具有初始平移和比例设置的 SVG 组的一部分 单击正方形会启动缩放过渡 但过渡设置的初始值与我的默认值不同 这一点从过渡开始时的不和谐就可以明显看出 如何在以编程方式启动的缩放过渡上设置平移和缩放的初始值 var svg
  • 如何使用 python 让 selenium 同时按下 Shift + Enter 键盘?

    我制作了一个 Whatsapp 机器人和一个网络爬虫来获取冠状病毒病例 我想在换行符上发送每个数据 例如 Cases x 死亡人数 是 回收 z 但由于我使用的是 Whatsapp n 不起作用 并且会发送每一行 我也尝试过 ActionC
  • 通过电子邮件生成 iCal 预约和后续更新,但不提供接受/拒绝选项

    我们正在编写一个具有预订功能的系统 我们计划让它通过电子邮件向与会者发送 ics 文件 以便他们可以轻松地将约会添加到日历中 活动类型包括培训课程 例如下午 3 点在董事会会议室 我们已经做到这一点 系统发送 ics 并使用 Gmail 和
  • 查询,无法选择列数

    Tag joins quote tags group quote tags tag id order count desc select count tags id AS count tags id tags name Build quer
  • 性能:cakephp-mysql 中的 UUID 与自动递增

    我正在搜索 cakePHP 生成的 UUID 32 个字符长 是否比自动增量在性能上更快 插入和选择操作的比较 我应该使用 cakePHP 生成的 UUID 还是使用 MySQL 的简单自动增量生成的 UUID 这是我发现的一个案例研究 但
  • drf-nested-routers RuntimeError('未找到父级注册资源')

    我正在尝试利用包 drf nested routers 在我的 API 中创建嵌套路由 我试图遵循文档 https github com alanjds drf nested routers https github com alanjds
  • 我可以在 r 中使用传单“map_shape_click”事件来用数据表填充 box() 吗?

    我已经在网络上搜索了好几个星期 试图找到一个示例或代码来实现我想要用我的闪亮应用程序 shinydashboard 完成的任务 我是 r 的新手 我开始认为我想做的事情是不可能的 我基本上有一个带有县多边形 shapefile 的传单地图
  • Asp.Net Identity - 不区分大小写的电子邮件和用户名

    有没有办法让 Asp Net Identity 的电子邮件地址和用户名不区分大小写 目前 如果我调用 FindByEmailAsync email 只有在电子邮件地址完全按照键入的方式存储时 区分大小写 它才会起作用 您可以更改用户的注册方
  • 如何在 Three.js 中从 3D 点创建 3D 表面?

    我正在制作一个项目来制作带有点和线 弯曲或非弯曲 的简单 3D 模型 对于第一个版本 我使用 SVG 元素进行简单渲染 平滑曲线和鼠标事件 现在我正在尝试使用Three js渲染器而不是 SVG 我必须创建 3d 管来替换曲线 但我不知道如
  • JCE 策略是否与 openjdk 8 捆绑在一起?

    我正在尝试打包 java 1 8 0 openjdk jre 和 jdk 我无法找到 openjdk 8 的 jce 策略 我在哪里可以找到它 谁能指点我链接 根据以下页面 JCE 似乎默认与 OpenJDK 捆绑在一起 https git
  • JodaTime 向下舍入到最近的一刻钟

    如果时间是 10 36 我想将时间四舍五入到 10 30 如果时间是 1050 我想将时间四舍五入到 10 45 等等 我不知道该怎么做 有任何想法吗 这个怎么样 public static LocalTime roundToQuarter
  • 用于计算数据文件中数字列表的平均值的脚本

    文件data txt包含以下内容 1 00 1 23 54 4 213 2 3 4 脚本的输出应该是 ave 54 646 一些简单的脚本是首选 这是一种方法 awk s 1 END print ave s NR RS file ave 5
  • 仅从 AD 获取计算机名称

    我是 Power Shell 新手 正在测试一些命令和想法 我坚持认为应该很简单的事情 我想将 AD 中计算机对象的名称提取到文件中 到目前为止我正在尝试的方法是这样的 computers Get ADComputer Filter For
  • Laravel 中的高级 whereNotNull 语句

    在 Laravel 4 中可以执行以下操作吗 DB table myTable gt select DB raw columnNames gt whereNotNull function query use columns foreach
  • 我应该存储密码的哈希值吗?

    用户系统和密码 我正在查看 MD5 内容 我想知道密码的正常 良好做法是什么 现在 我认为人们对密码进行超级加密并存储哈希值 如果是这样 密码检查如何工作 我只是让输入的密码再次经过加密过程 然后用存储的哈希值检查哈希值 对吗 这个问题可能
  • 在我的例子中,GIT 添加恢复(保留更改)

    在我对文件进行更改之后 我用git add FILE NAME 然后 我想将其恢复为未添加但与此同时保留更改 这个怎么做 git reset FILE NAME会做的 See the git reset manual https git s
  • Git:如何正确合并两个功能完全不同的分支?

    想象一下这样一种情况 同一个项目有两个分支 第一个分支的一部分对另一个分支进行了大幅重构 但有一段时间 您需要保持两个分支的功能 因此您需要对两个分支进行错误修复和关键功能添加 有时是以不对称的方式 在某些时候 您必须将重构的分支合并到原始