停止使用Git - 现在想重新开始。如何同步备份?

时间:2013-11-13 19:25:58

标签: github

我们有很多开发人员使用Git处理大型网站项目。我们有一个GitHub存储库,然后我们在服务器上有网站,而且所有开发人员都有他们的本地版本。

当我们最终启动该项目时,我变得懒惰(羞愧地垂头丧气)并开始直接对服务器进行更改,而不是将它们推回到Github仓库。但是,由于我不太了解的原因,其他人对repo进行了更改,这些更改从未被推送到服务器,现在已经过时或者错误。我们已经这样做了将近七个月。

现在服务器和repo绝对不同步了。我现在想要将最新版本的站点(即服务器)备份到Git存储库,以便我们可以开始另一轮开发。我基本上想要从服务器上的新副本开始。

你会如何推荐我继续?这是我第一次使用Git。这在当时看起来并不是什么大不了的事情,但现在似乎比我想象的更难重新开始。

我已经寻找指示,并没有真正看到任何适合的东西。因为我对自己的Git技能并不是非常自信,所以我害怕开始尝试我找到的一些想法并丢失我在服务器上的内容。

(我知道我可以从备份中恢复,如果我真的搞砸了但是不愿意这样做,因为它会占用网站。)

我可以卸载git并使用新的回购再次启动吗?或者有一种安全的方法将当前版本推送到回购站吗?

感谢您的帮助。

更新:我在别处找到了这个答案(Replace GitHub repo while preserving issues, wiki, etc),但我不知道该怎么做:

  • cd into“new”repository
  • git remote add origin git@github.com:myusername/myrepository(相应地替换myusername& myrepository)
  • git push --force origin master
  • 可能删除其他远程分支并推送新分支。

不确定“新存储库”是什么意思

2 个答案:

答案 0 :(得分:1)

  1. 创建一个新分支并将其推送到GH。
  2. 根据之前的内容创建一个新分支 分支。
  3. 切换到新分支(在#2上创建)。
  4. 删除此分支存储库中的所有文件和文件夹 除了.git文件夹并包含
    (保持README.md.gitignore以及其他文件(如果需要)。
  5. 从服务器复制所有文件,除外 .git文件夹。
  6. 提交。
  7. 切换到本地主人(在#1上创建)
  8. 将此新分支与前一分支合并。
  9. 解决冲突 (我使用具有可视冲突解决方案的SmartGIT并对我有很大帮助,但如果你不想要一个可视界面,你可以使用gitdiff
  10. 提交
  11. 将其推至GH。
  12. 我希望这会有所帮助

答案 1 :(得分:0)

我想出来了。我做的是:

  1. 在Github上创建一个新分支,以有效地存储备份。
  2. $ git add。以暂存所有更改
  3. $ git commit -m“提交消息”以提交更改
  4. $ git push --force origin master 强制从服务器更改为远程分支主机
  5. 一旦我这样做了,我在服务器上删除的数百个文件仍未在远程github.com存储库中反映出来。我使用了以下内容:

    $ git rm $(git ls-files --deleted)

    请参阅Removing multiple files from a Git repo that have already been deleted from disk

    然后重复git commit和git push。现在我的github repo与我的服务器完全匹配。

    我还没有删除我在github上创建的“备份”分支,但我会。

    希望能有所帮助。