wiederherstellen von versehentlich gelöschte remote git-repository vom lokalen repository
Habe ich etwas getan, wie die folgenden:
(1) Klon ein remote git-repository auf den lokalen host
local# git clone http://www.foo.com foo
(2) ein weiteres Projekt hinzuzufügen, die auf einem ssh-host(bar) als die zweite remote-repository
local# git remote add bar ssh://bar/home/project
local# git fetch bar
(3) getan, etwas dumm auf dem ssh-host(bar):
bar# rm -rf /home/project
Könnten Sie mir bitte sagen, wie kann ich Sie wiederherstellen Projekt auf dem ssh-host(bar) von meiner lokalen Kopie, damit andere Entwickler auf den ssh-host können Ihre Arbeit fortsetzen, und ich kann 'git fetch-bar", um Ihre commit, genauso wie ich nichts falsch gemacht, um Ihre ssh-host, d.h. rückgängig machen, alles, was ich Tat, um host-bar. vielen Dank.
UPDATE:
bar# mkdir -p /home/project && cd /home/project && git init --bare
local# git branch remote show bar
local# git push bar bar/master:refs/heads/master
local# git push bar bar/branch1:refs/heads/branch1
local# git push bar bar/branch2:refs/heads/branch2
- Wenn Sie das problem gelöst haben, setzen Sie die Befehle in eine neue Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Einstellungen der remote-host als ein neues git-repository, und drücken Sie dann, um es.
Diesem blog geht über wie es zu tun:
Toolman Tim - einrichten eines neuen remote git-repository
vorausgesetzt, Sie haben noch eine bar einrichten als remote-repository, im wesentlichen:
refspec ist Häufig nur die einfachen Namen der Zweig im lokalen repository also:
Sehen die git push-manpage für eine detaillierte Behandlung was qualifiziert für eine refspec. Der BEISPIELE-Abschnitt ist besonders hilfreich für das Verständnis Fortgeschrittener respecs
Anstelle eines von diesen:
für jeden ref würden Filiale im lokalen. Versuchen Sie, diese
Dem obigen Befehl sollte schieben alle remote-refs, die Sie hatte, die lokal zwischengespeichert Rückseite der Fernbedienung und legen Sie Sie in der richtigen Stelle.
Beachten Sie, dass Sie auch schieben müssen alle tags, die Sie hätte haben können:
Auch, es hilft um zu wissen, was passieren wird, bevor Sie tatsächlich tun, die push -:
HINWEIS: früher habe ich die 'bar', wo die meisten Menschen haben würde, die 'Ursprungs' - ersetzen mit dem Namen Ihrer Fernbedienung.
Folgen Mark Carey die Antwort, ich habe particaly erholt die gelöschte repository wie folgt:
bar#
mkdir -p /home/project && cd /home/project && git init --bare
local#
git branch remote show bar
local#
git push bar bar/master:refs/heads/master
local#
git push bar bar/branch1:refs/heads/branch1
local#
git push bar bar/branch2:refs/heads/branch2
UPDATE:
Wie sichern Sie private branches in git