0

假设我创建了一个名为 fix_5109 的本地分支并对其进行处理。与此同时,主分支发生了变化,一些我没有编辑的文件通常也发生了变化(例如/controllers/AuthController.php)。如果我将更改推送到原点 fix_5109,如果一切顺利,首席开发人员希望将我的分支合并到主分支中。我的分支包含旧的 AuthController.php 来自 master 的新提交后面的旧提交。主分支中的文件会被我的文件版本覆盖,还是会拒绝我的该文件版本并仅更新我在推送的分支中编辑的文件?

4

2 回答 2

1

git以某种方式起作用,如果已经应用了提交,则不会再次应用它(通过提交哈希的唯一性)。因此,对于您的情况,假设您在已经对 AuthController.php 进行更改的某个时间点与 master 分道扬镳,那么您不必担心。因为,git 不会重播现有的提交。

因此,即使您的潜在客户合并了您分支中的更改。他基本上都会有最新的代码。即)最后做了什么改变(没有分歧)。如果更改是单独进行的,那么 git 将尝试解析提交并一个接一个地应用它们。在这种情况下,如果存在冲突,那么您需要明确处理它。

于 2013-02-11T17:38:41.307 回答
0
git checkout master
git pull origin master
git checkout fix_5109
git rebase master

基本上,使用 master 的当前状态重新定位您的分支将解决您关心的问题。

于 2013-02-11T17:53:09.650 回答