1

假设有项目存储库(在 GitHub 上)和我的 fork(也在 GitHub 上)。我的 fork 是相同的,除了包含对单个文件(错误修复)的一个修订,该文件(尚未)被项目存储库接受。我正在尝试向第三方提供有关如何下载最新版本软件的安装说明,包括我的错误修复。

据我所知,他们必须这样做:

git clone http://projectrepo
git remote add myrepo http://myrepo
git fetch myrepo
git cherry-pick a12345
git remote rm myrepo

(假设我不打算让 myrepo 保持最新 - 我希望我的指示能够比我参与该项目的时间更长,该项目可能很快就会结束。还假设此文件可能会发生其他更改,因此只需下载一份整个文件不安全。)

一些次优的:

  1. 他们需要转移两个完整的 Git 存储库
  2. 仅获取一个文件就需要三个额外的命令。

有更好的解决方案吗?你能以更简单的方式获得一个修订版吗?

4

3 回答 3

4

仅仅创建一个补丁文件并告诉他们应用它有什么问题吗?您甚至可以将其保存为要点,以避免通过电子邮件发送。

创建补丁:

git format-patch -1 a12345

应用它:

git clone http://projectrepo
cd projectrepo
wget https://raw.github.com/gist/<patch-file>
git am -3 <patch-file>
于 2012-04-23T03:37:35.540 回答
2

跳过remote add/ remote rm

git clone http://projectrepo
git fetch http://myrepo remote-branch-name
git cherry-pick a12345

如果您知道提交是 HEAD 的remote-branch-name,那么您可以这样做git cherry-pick FETCH_HEAD

于 2012-04-23T07:01:41.660 回答
0

AFAICT 无需手动告诉 git 获取两个存储库。你可以去

git clone http://myrepo
cd myrepo; git co <rev/branch> # maybe

并且 git/github 负责所有细节。

于 2012-04-23T03:15:01.173 回答