将一个gist与github存储库链接,但向每个存储库推送不同的文件



我创建了一个项目作为单个文件的要旨。然后,我将我的项目扩展到多个文件(例如,添加README和LICENSE文件)。我现在在本地git存储库上设置了两个远程,我称之为origin-gists和origin-github。我可以向他们施压,世界上一切都很好。

但我真正想要的是要点保持为单个文件,没有添加内容的开销。如何在保留一个本地存储库并将其推送到两个远程设备的同时做到这一点?

顺便说一句,如果我能控制文件在要点中显示的顺序,我就不那么在乎了。我也不愿意用ASCIIbetical排序来重命名我的文件以获得所需的顺序

有什么建议吗?

我发现这个问题中的信息很有用:将gist repo转移到github,但需要一些澄清。

这个答案不会直接回答您提出的特定问题,但它确实解决了手头的问题,因此被添加为答案而不是注释

值得问问自己,有没有理由保持旧的要点并更新?

这个问题的最简单的解决方案,也是我经常看到的,是将要点替换为自述文件,其中包含以下内容:

此要点已移至其自己的存储库:http://github.com/OctoCat/HelloWorld

以"前要旨"为例:https://gist.github.com/weakish/492755

这样,在网上找到要点的人就可以被引导到最新版本的图书馆,而且你不必担心让两个不同的位置都保持最新。

最简单的解决方案可能是保留两个独立的分支,一个只包含脚本(我将其命名为minimal),另一个包含所有额外的文件(master)。然后确保每个分支的"上游"设置正确:

# In the 'minimal' branch
git remote add gist git@gist.github.com:/1162032.git
git push -u gist master
# In the 'master' branch
git remote add origin git@github.com:octocat/Hello-World.git
git push -u origin master

之后,您只需要确保两个脚本都是最新的,因此对一个分支所做的任何更改都应该对另一个分支进行。

您可以通过以下两种方式之一使其更容易:

  1. 当您进行更改时,cherry-pick会从一个提交到另一个
  2. 如果您在进行更改时将mergemaster分支minimal分支,它将把这些额外的文件添加到minimal中。但是,假设minimal分支只包含实际的脚本,您应该能够安全地从minimal合并到master,而无需添加这些额外的文件:
# First, make edits to the 'minimal' branch, commit them, then push the changes to 'gist'
# Now, apply those changes to master like this:
git checkout master
git merge --no-ff minimal -m "Update script to latest version"
git push # Push the changes to the GitHub repo

最新更新