git - 吉特。将其他人的本地更改合并到自己的存储库中
问题描述
前段时间,我从一个对我没有影响的第三方那里获得了一个项目。我将Version 1
收到的内容提交到我的存储库中,没有进行任何更改。
之后,我对其文件进行了更改并提交了它们。
最近我收到了一个存档,其中包含上述第三方所做的更新。
他们从Version 1
我之前收到的开始,并Version 2
更改了很多文件。
现在我需要:
跟踪第三方更改 (
Version 1 -> Version 2
)。方便地将他们的更改合并到我的项目中。
我尝试了以下方法:
update
从 的master
分支初始提交创建一个分支Version 1
。将我收到的更新推送到
update
分支。合并
update
到`master.
这种方式有我想解决的缺点:
假设我file_A
前一段时间发生了变化。
file_A
也已被第三方更改,并且他们的更改在我的存储库中标记为最近的日期,因为我刚刚提交了它们。
当我合并分支时,他们的一些更改可能会覆盖我的更改,因为它们不会发生冲突(它们的提交是在我的之后进行的)。
我唯一能做的就是手动修改所有更改的文件。
我想使Version 2
提交成为过去(就在 之后Version 1
)将通过在我们双方更改的每个文件中引发冲突来解决我的问题。
总而言之,我认为将我们双方都进行了更改的所有文件标记为冲突在我的情况下会起作用,但任何建议都值得赞赏。
这是我现在拥有的可视化图表:
master: V1---A1---A2
\
update: ------------V2
我想要达到的目标:
master: V1---V2---A1'---A2'
解决方案
第一的
git fetch --all
然后
git rebase nameofremotebranch
您的本地分支将使用来自远程的新提交进行更新,并且您的提交将放在所有内容之上。除非他们发生冲突。然后研究交互式rebase,这将需要一些手动工作。
我假设你已经这样做了
git远程添加(等)
并添加了遥控器。
推荐阅读
- javascript - 如何将 HTML/JS 小部件包含到 reactjs?
- java - 我正在尝试插入 sql 但它不断给我错误
- android - 如何在所有单选按钮可以交互的每个项目中使用一个单选按钮创建 Android RecyclerView?
- android - 共享元素转换后 Gif 不播放。滑翔 v 4.8.0
- javascript - 使用 pwa angular 在 ios 中打开新选项卡/窗口
- php - 如何修复此错误“无法将要求解析为可安装的软件包集。”
- opencv - 检测物体上的光反射的最可靠方法是什么
- ocr - 使用 pytesseract 加速 OCR
- google-cloud-firestore - Google Cloud Firestore - 如何对数组项进行 OR 查询
- cmake - CMake variable ignored on first build (CUDA_NVCC_FLAGS)