2017-10-17 88 views
0

我有一个Git仓库,它存在于Github上。我在具有相同文件结构的远程服务器上拥有相同的存储库。事情发生了,并在我的远程服务器上.git目录被删除。如何开始重新生成git存储库?

有没有办法我可以改变的远程服务器上我的仓库与Github上库作为origin再次跟踪在Github上的人吗? 完成之后,我希望远程服务器上的存储库的行为与Github上的存储库的行为完全相同。

我不能删除从远程服务器的存储库,并从GitHub再次克隆它。

回答

0

这是我能做到这一点。它涉及到创建远程服务器上的临时master分支,然后用origin/master

git init 
git remote add origin <url/to/origin> 
git fetch -a 

替换它在这一点上,你就会有一堆未跟踪文件。我们现在将提交并在远程服务器上创建master分支,该分支将与Github上的分支不同。

git add . 

您可能不希望将所有文件放到提交中,而是保持它们不跟踪。使用git reset -- </path/to/file/to/unstage>来取消这些文件或目录的权限。

git status # Check the files that you're going to commit. 
git commit # Create a temporary master branch for now. 

现在重命名主分支并创建另一个master跟踪origin/master

git branch -m master temp-master # Rename the just created master 
git branch --track master origin/master # Track origin/master in master 

现在删除temp-master

git checkout master 
git branch -d temp-master # You might need to use -D 

检查一切正常

git log 
1

是的,您的远程服务器上使用:

git remote set-url origin <your github remote url> 
0

,你可以这样做:

git init 
git remote add origin <remote-url> 
git pull 
  1. 由于. git文件夹被删除,git init将在远程服务器
  2. 重新初始化混帐回购协议
  3. 添加origin可以帮助您跟踪github中的回购本地回购
  4. 一旦添加了origin,就会从github中获取更改。
+0

因为.git文件夹被删除,'git init'会初始化git repo,然后可以发出第二个命令来跟踪原点 – learner

+0

我不明白这一点。我了解到他正在跟踪的远程回购已将其.git文件夹删除。我删除了我的评论。 – lilezek

+0

我更新了一下我的问题。我希望远程服务器上的回购行为像Github回购的克隆一样。这个答案中的命令将简单地添加一个'remote',其中的原点名称指向Github。我将如何从Github获取更改和分支信息? – Waseem

相关问题