【问题标题】:How to overwrite a new project to an already existing repository?如何将新项目覆盖到已经存在的存储库?
【发布时间】:2015-05-18 01:20:07
【问题描述】:

由于项目已损坏,我不得不删除链接到我的 GitHub 上的存储库的现有 Visual Studio 项目。

所以我在项目损坏之前从 GitHub 下载了该项目的 zip,并删除了我机器上的现有项目,而不是下载的无错误版本。

但是当我尝试使用 VS13 中的 Team Foundation Server 插件将这个新版本提交到 GitHub 时,需要 Git 存储库 URL。

我的问题,有没有办法可以使用 TFS 将这个项目的新本地副本推送到 GitHub 上已经存在的存储库?由于原始本地项目因损坏而被删除,因此基本上使其成为该现有存储库的新主分支。

当我尝试将新更改提交到新项目副本时显示的屏幕:

【问题讨论】:

  • 为什么不从 github 克隆并恢复到未损坏状态。毕竟,这正是 git 的意义所在。 git 不会丢失你的历史记录!
  • 克隆是否意味着从我的在线仓库中克隆一个副本?如果是这样,存储库连接仍然存在,即,我仍然可以正常从克隆提交到该存储库。也不知道该怎么做。
  • 我不知道 Visual Studio 界面。但在我看来,它应该公开一个克隆存储库的选项,然后这个新克隆应该有一个“存储库连接”(在 git-speak 中称为远程)。
  • @SebastianRiese 您可以在 Visual Studio 中克隆 Git 存储库。
  • 这个演练帮助我克隆了这个项目,它已经为我解决了这个问题,malgreve.net/2014/06/17/… 如果需要,请随时为这个解决方案创建一个答案。

标签: git github visual-studio-2013 tfs


【解决方案1】:

可能发生的情况是您删除了 .git 目录以及旧项目。现在你的机器上没有存储库,TFS 也不知道要推送到哪里。

我建议您通过从 GitHub 存储库克隆来重新开始。这可以在 Visual Studio 或命令行中完成。

命令行方式:

仅用于备份,将当前项目保存在原处。 在新目录中从 github 克隆当前项目:

git clone https://github.com/YourName/repo_name.git

通过任何方式找到一个稳定版本的提交。保存它的 sha1。

备份、重置、推送到仓库。

#that's our backup of master
git checkout master
git checkout -b backup
#can save it on the remote, but that's not necessary
git push -u origin

#return to a stable version on local
git checkout master
git reset --hard <sha1 of stable commit>

#and save changes on GitHub
git push --force origin/master

现在 GitHub 和您的本地存储库都有稳定版本。还有一个怀旧时代的备份。

【讨论】:

    猜你喜欢
    • 2013-05-29
    • 2011-04-07
    • 2010-10-05
    • 2017-04-06
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    • 2017-10-29
    相关资源
    最近更新 更多