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

时间:2014-09-04 22:11:22

标签: git github gist

我创建了一个项目作为单个文件要点。然后我将我的项目扩展到多个文件(例如,添加README和LICENSE文件)。我现在在我的本地git存储库上设置了两个遥控器,我称之为origin-gist和origin-github。我可以向他们推动,世界上的一切都是正确的。

但我真正想要的是将要点保留为单个文件,而没有添加内容的开销。如何保持一个本地存储库推送到两个遥控器?

顺便说一句,如果我可以控制gist中显示的文件的顺序,我会更少关心。我也不愿意重命名我的文件以使用ASCIIbetical排序来引导所需的顺序。

任何提示?

我发现此问题中的信息很有用:Transfer gist repo to github,但需要澄清一下。

2 个答案:

答案 0 :(得分:2)

最简单的解决方案可能是保留两个独立的分支,一个只包含脚本(我将其命名为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. 如果您merge master分支进入minimal分支,只要您进行更改,它就会将这些额外的文件添加到minimal。但假设minimal分支仅包含实际脚本,您应该能够安全地从minimal合并到master而无需添加这些额外文件:
  3. # 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
    

答案 1 :(得分:2)

这个答案并没有直接回答您提出的具体问题,但它确实解决了手头的问题,因此被添加为答案而不是评论。

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

这个问题的最简单的解决方案,以及我经常看到的,是用README文档取代的要点,如下所示:

  

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

采取这个"前要点"作为一个主要的例子:https://gist.github.com/weakish/492755

通过这种方式,在网上找到要点的人可以直接进入图书馆的最新版本,而且您不必担心将两个不同的位置保持同步。