假设有项目存储库(在GitHub上)和我的fork(也在GitHub上)。我的fork是相同的,除了包含一个单个文件的修订(一个bug修复),它尚未被项目存储库接受。我正在尝试向第三方提供有关如何下载最新版软件的安装说明,包括我的错误修复。
据我所知,他们必须这样做:
git clone http://projectrepo
git remote add myrepo http://myrepo
git fetch myrepo
git cherry-pick a12345
git remote rm myrepo
(假设我不打算保持myrepo最新 - 我希望我的指示能够超过我对项目的参与,这可能会很快结束。还假设可能会对此文件进行其他更改,因此只需下载一个整个文件的副本不安全。)
有几个次优的原因:
有更好的解决方案吗?您能以更简单的方式获得单一修订吗?
答案 0 :(得分: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>
答案 1 :(得分:2)
略过remote add
/ remote rm
:
git clone http://projectrepo
git fetch http://myrepo remote-branch-name
git cherry-pick a12345
如果您知道提交是remote-branch-name
的HEAD,那么您可以改为git cherry-pick FETCH_HEAD
。
答案 2 :(得分:0)
AFAICT没有必要手动告诉git获取两个repos。你可以去
git clone http://myrepo
cd myrepo; git co <rev/branch> # maybe
git / github会处理所有细节。