1

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

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

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

你会建议我如何进行?那是我第一次使用 Git。当时这似乎没什么大不了的,但现在似乎重新开始比我想象的更难。

我已经寻找说明,并没有真正看到任何适合的东西。因为我对自己的 Git 技能不是很有信心,所以我害怕刚开始尝试我确实找到的一些想法并失去我在服务器上拥有的东西。

(我知道如果我真的把它搞砸了,我可以从备份中恢复,但我不想这样做,因为它会使网站崩溃。)

我可以卸载 git 并从新的仓库重新开始吗?还是有一种安全的方法可以将当前版本推送到 repo?

谢谢你的帮助。

更新:我在其他地方找到了这个答案(在保留问题、wiki 等的同时替换 GitHub 存储库),但我不知道该怎么做:

  • cd 进入“新”存储库
  • git remote add origin git@github.com:myusername/myrepository (相应地替换 myusername 和 myrepository)
  • git push --force 起源大师
  • 可能删除其他远程分支并推送新分支。

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

4

2 回答 2

1
  1. 创建一个新分支并将其推送到 GH。
  2. 在前一个分支的基础上创建一个新分支。
  3. 切换到新分支(在 #2 上创建)。
  4. 删除此分支存储库上的所有文件和文件夹,除了.git文件夹和包含(如果需要,请保留 和其他文件)
    README.md.gitignore
  5. 从服务器复制除 .git文件夹之外的所有文件。
  6. 犯罪。
  7. 切换到本地 Master(在 #1 上创建)
  8. 将这个新分支与前一个分支合并。
  9. 解决冲突
    (我使用具有视觉冲突解决器的SmartGIT,对我有很大帮助,但如果你不想要视觉界面,可以使用gitdiff )
  10. 犯罪
  11. 把它推到GH。

我希望这有帮助

于 2013-11-13T19:53:22.013 回答
0

我想通了。我所做的是:

  1. 在 Github 上创建一个新分支以有效存储备份。
  2. $混帐添加。进行所有更改
  3. $ git commit -m "Commit message" 提交修改
  4. $ git push --force origin master 强制从服务器更改到远程分支 master

一旦我这样做了,我仍然在服务器上删除了数百个文件,这些文件没有反映在远程 github.com 存储库中。我使用了以下内容:

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

请参阅从 Git 存储库中删除已从磁盘中删除的多个文件

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

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

希望对某人有所帮助。

于 2013-11-14T13:13:37.050 回答