【问题标题】:Pull from remote branch, but do not include the whole history从远程分支拉取,但不包括整个历史
【发布时间】:2017-01-25 03:52:53
【问题描述】:

我正在使用 eZ Platform 开源 CMS。 启动项目的方式是使用composer 创建它。 经过一些工作,新版本出来了,唯一的更新方法是从github存储库到git pull,合并它并解决冲突。

整个过程很简单。除了我自己的git repo 中提供了来自 eZ Plaform 的整个开发树。

有没有办法将最新的提交拉入某个分支(开发)的头部,而无需拉取自开始以来的所有历史记录?

基本上我想要这样:

A----B----C----D----E (merge from latest commit on remote branch)
                   /
                  F (basically not even having F in my git tree)

【问题讨论】:

  • 嗯 composer 的全部目的是让你不需要这样做......你为什么不能直接运行 php composer update
  • 这里是如何更新doc.ez.no/display/DEVELOPER/Updating+eZ+Platform的说明。不幸的是,您不能只更改 composer 中的版本。
  • 哇,太糟糕了
  • 为什么你不能在一个临时分支中提取整个历史记录,然后在你想要的分支上挑选最新的提交? Warning: This is subject to conflicts.
  • 试试git fetch <remote> --depth=<n> <branch>,n 为 1 或 2。

标签: php git github ezpublish ezplatform


【解决方案1】:

很简单。

您可以在新创建的分支(比如说分支 "v1.10" )中拉取新版本标签并解决那里的所有冲突。

在解决冲突并拥有一个新版本和干净的分支后,您可以使用 --squash 选项将其合并回您的 master 中。 这样你就不会在你的主分支中获得任何这些外部树或提交。

git checkout master
git merge --squash v1.10
git commit

现在您在 master 中有了新版本,无需任何额外的提交。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-24
    • 2015-03-23
    • 2020-06-10
    • 2012-03-03
    • 1970-01-01
    • 2023-03-28
    • 2021-12-23
    • 2016-09-25
    相关资源
    最近更新 更多