2

我是 github 的新手,正在尝试启动一个存储库。我一直在寻找如何在这里,但人们提到的东西似乎不存在,而且它们没有直接链接。

我安装了 git 并在本地执行了 git init/add/commit 操作。工作正常。我之前还在网站上创建了一个存储库,其中包含 reade 的初始提交。现在我已经在两个不同的地方进行了两次初始提交,似乎没有什么想要同步的。所以我想我会删除存储库 Dan 重新开始。

当我这样做时,我想(如果可能的话)基于我的代码的旧 zip 启动存储库(我在每个版本中都压缩它),然后为每个版本上传 zip 以便我可以拥有存储库中的一些历史记录。

我该怎么做呢?

什么会使原始存储库同步而没有这么多错误?我在推送非快进更新时遇到了错误,我在服务器上运行 git update-server-info 时遇到了错误。合并告诉我我的 URL 没有指向提交。

我查看了 git 上的文档,这似乎也引用了我找不到的东西。所有本地 git 命令似乎都可以工作,但似乎没有涉及与 git 服务器(github)进行通信。

感谢您的任何指导。

4

2 回答 2

1

这涉及一些繁琐的工作,但做起来相当简单。

  1. 收集所有发布的 zip 文件
  2. 将第一个版本的项目内容(我们称之为“v1.0”版本)解压缩到一个名为v1.0.
  3. 创建一个新目录,MyProjectRepository然后递归地将 的内容复制v1.0到该目录中。
  4. 切换到解MyProjectRepository压缩项目内容的顶层目录。
  5. git init .
  6. 用于git add <filenames>添加您希望在 git 存储库中跟踪的所有内容。(请注意,您的版本中可能有一些文件(例如,编译的.o/.dll文件、.pyc文件等)不值得跟踪。请参阅GitHub 上的 gitignore 文件集合,了解哪些文件不值得跟踪在 VCSes 中。)如果您确定所有文件都值得跟踪,那么您可以简单地git add -f *)从项目根目录递归添加所有文件和目录。
  7. 添加所有要跟踪的文件后,执行git commit并添加适当的提交消息;如果您想不出一个,只需说明“提交版本”。
  8. 将项目的下一个按时间顺序发布的内容(我们将其称为“v2.0”)解压缩到一个名为v2.0.
  9. 递归地将v2.0direcotyr 的内容复制到MyProjectRepository目录中。
  10. 记下v1.0 中存在的 v2.0中删除的所有文件;您可以使用 UNIX/GNU Linuxdiff命令来比较目录内容(例如,diff v1.0 v2.0)并查找显示“仅在 v1.0 中”的行。对于这些文件中的每一个git rm <filename>,在您的MyProjectRepository目录中执行一个。
  11. 在您的MyProjectRepository中,运行git status以查看发生了什么变化。请注意下一个版本中 Git 未跟踪的任何新文件。添加那些应该使用git add <filename>. (您也可以使用diff上一步的结果来识别这些文件。)
  12. 一旦您满意您已经删除了 v2.0 中删除的所有文件,并添加了 v2.0 中出现的任何新文件,请继续执行git commit -a,并添加适当的提交消息。
  13. 按时间顺序对每个后续版本重复步骤 8-12,直到您涵盖所有版​​本。这可能很乏味,因此请考虑仅对主要版本执行此操作。
  14. 为所有版本完成此操作后,您就可以将项目推送到 GitHub;按照 GitHub 关于创建新项目的说明进行操作,然后按照 GitHub 提供的推送项目的说明进行操作(如果您遇到困难,请使用此答案中的步骤但跳过该git init步骤 - 您已经在步骤5)

您现在将拥有一个托管在 GitHub 上的项目存储库,其中包含您可以克隆到其他计算机的版本之间的更改历史记录。

于 2012-08-24T14:56:00.943 回答
0

我认为您所做的是创建了两个独立的 git 存储库——一个在本地,一个在 GitHub 上。他们不会匹配,因为他们彼此不了解。

您应该做的是在 github 上创建一个存储库,然后将其克隆到本地,然后进行更改,然后将其推送到 github 上的远程。

于 2012-08-24T14:56:28.827 回答