首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Git更新基础库但保持更改

使用Git更新基础库但保持更改
EN

Stack Overflow用户
提问于 2015-07-07 22:08:45
回答 2查看 229关注 0票数 0

我有一个例子,那就是我工作的图书馆的历史和我的作品的历史有分歧。在我从包含库1.0的原始分支中分离出来之后,库的开发人员发布了一个更新,我需要将它合并到最终结果中,保持在此基础上所做的更改。

对于类似的问题,here已经有了一个答案。然而,许多有经验的Git用户不建议重新设置已经公开的提交,并且有一个很好的理由:历史将被重写。与前一次提交相关的任何内容都将丢失。保留对“记账”的请求将变得毫无用处。所以,如果我想实现类似的结果,但是保持历史上正常的,更重要的是,拥有本地协作者的库一致的,那么最好的方法是什么?

我希望底层库的开发人员会偶尔发布新的版本,这个过程每次都需要重复,有所有的缺点。这张图应该是这样的:

代码语言:javascript
复制
product ------P1--P2--P3--P4'--P5--P6'
             /           /        /
library ---L1----------L2-------L3

有没有人?

EN

回答 2

Stack Overflow用户

发布于 2015-07-07 22:13:59

使用git merge而不是git rebase。这将创建一个“合并提交”,而不是重写历史。

例如:

代码语言:javascript
复制
git fetch
git merge library/master
票数 0
EN

Stack Overflow用户

发布于 2015-07-07 23:33:16

我找到的答案是使用重基,然后合并。重基是在临时分支上完成的。

代码语言:javascript
复制
product         P1--P2--P3------P4--P5--P6--P7------P8---
               /        |      /            |      /
integration   /         P3--P3'             P7--P7'
             /             /                   /
library ---L1------------L2------------------L3---

实现这一点的方式如下:

代码语言:javascript
复制
$ git checkout library
$ git fetch --no-tags library master
$ git merge library/master
$ git checkout -b integration
$ git rebase library
$ git checkout product 
$ git merge --squash integration
$ git branch -D integraton
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31280202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档