将 gist 仓库转移到 github

65
6个回答

49
你可以将 Github 代码仓库添加为你已经检出的 Gist 代码仓库的远程仓库。
git clone git@gist.github.com:1234.git
git remote add github git@github.com:ChrisJamesC/myNewProject.git

将其推送以在 GitHub 上初始化 git

git push -u github master

如果您的 GitHub 存储库不是完全空的(例如,您创建了一个自述文件、许可证等,而您不介意失去这些),则必须在推送时进行强制覆盖

git push -f -u github master
如果您不想丢失现有的提交记录和文件,请参阅https://dev59.com/5WYr5IYBdhLWcg3wcJx0#40408059
这也会更改分支的上游,因此github将成为默认值。
您现在可以重命名gist的远程名称:
git remote rename origin gist
每当您进行更改(或从 GitHub / gist 拉取更改)时,您可以执行以下操作:
git push                 # To github
git push gist master     # To gist

这也会将您所做的更改推送回gist,而不仅仅是github仓库。


编辑:当 GitHub 上的 Git 为空时,您可以直接推送,而无需重置分支。这样更好。 - gzm0
2
它将推送的分支设置为远程跟踪分支(使得无需参数即可进行拉取操作)。 - gzm0
1
上面的gist的git clone命令对我不起作用,我不得不将其更改为以下命令:git clone git@gist.github.com:1234.git - Noah Sussman
1
这似乎确实是这样做的首选方式(从Gist的界面来判断)。我更新了答案。感谢提醒。 - gzm0
这是一个很棒的问答,但我认为它已经过时了。当我尝试使用git clone命令来克隆gist时,我收到了一些错误信息。我怀疑解决办法可能是使用GitHub CLI和类似gh gist clone <gist>的命令。 - EJ Mak

44

Github现在有一个新功能 - 从其他存储库导入。因此,步骤大大简化:

  1. 使用导入功能并指定存储库的URL。
  2. 利润!

更新:

你不必创建存储库。现在右上角的 + 按钮有“导入存储库”作为选项。

来自Github的屏幕截图


1
您不必创建一个空白存储库。只需访问https://github.com/new/import并填写2个框即可。这里有一些注意事项,我在我的答案中进行了介绍https://dev59.com/yHzaa4cB1Zd3GeqPRY62#40407301 - Bruno Bronosky

5

将这个Gist克隆到本地硬盘(例如git clone git://gist.github.com/123.git),然后设置origin的新URL(例如git remote set-url origin https://github.com/ChrisJamesC/myNewProject)。 将更改推送到新仓库(git push origin master)。祝你使用Git愉快!


你可以添加一个新的远程仓库而不是覆盖“origin”。然后你就可以推送到两个仓库。但说实话,如果你已经有了一个完整的仓库,维护Gist也没有太多意义。 - poke
2
我正在进行一个可视化项目,http://bl.ocks.org/ 网站是基于 gist 的。因此,我更倾向于保留 gist,但这并不是必须的。这个问题也是为了看到我的当前问题之外的一些东西。感谢您的帮助! - Christopher Chiche

4

很抱歉搬起了一个老问题,而且我无法评论,不过按照gzm0提供的第二步可能需要使用--force参数,即:

git push -f -u github master

可能是因为Github仓库中有README文件,但我猜其他人也会遇到这个问题。


2
请注意,通常情况下使用 --force 是非常危险的,因为它会覆盖存储库。也许最好创建另一个新的存储库,而不包括 README(无论如何都会消失)。请参阅 --force considered harmful; understanding git's --force-with-lease - Atlassian Developers - nealmcb

1

我的编辑对已接受的答案变得很冗长,所以我创建了一个单独的答案来保留它。

如果您的存储库不为空并且不想丢失现有的提交和文件,则 已接受的答案 不适用于您。 您将不得不执行以下操作之一:

  1. 如果您不关心Gist的提交历史记录...
    • 复制文件,git addgit commit
  2. 如果您想保留Gist的提交历史记录...

1
你可以在本地克隆这个 gist。
将 Github 仓库添加为新的远程仓库。
将本地仓库推送到新的 Github 远程仓库。
删除 gist 中除 README.md 文件外的所有文件。在此文件中,您可以编写提示,说明该 gist 已移动到新的仓库中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接