2016-03-12 5 views
0

У меня есть проект git on local,
Если я хочу создать резервную копию на другой жесткий диск, мне нужно скопировать все файлы и папку .git.
Я пробовал git clone /projectpath/ /backuppath/, но все же создаю папку копирования с файлами исходного кода.Резервное копирование и восстановление файлов из .git

Могу ли я просто скопировать папку .git и есть способ восстановить все файлы из нее, сохранить дисковое пространство.
если так, как это сделать?

Я хочу, чтобы держать всю ветку и весь исходный код ...

ответ

0

Это зависит от того, что вы хотите сделать резервную копию.

Если вы хотите зафиксировать историю, то скопируйте .git.

Если вам нужен только новейший статус исходного кода, «git достигать» - это нормально.

Прежде чем делать все это, убедитесь, что все ваши изменения были выполнены.

+0

Я хочу, чтобы весь исходный код, история коммитов, филиал, так же, как исходную папку. поэтому после того, как я копирую .git на новое место, что мне делать? – user1575921

+0

@ user1575921 Скопируйте .git в новую папку, например. Резервное копирование и запуск _git branch_, чтобы отобразить все ветви и контрольную рабочую папку, как вы хотите, в папке «Резервное копирование». Или используйте его как удаленный репозиторий, файл _git clone: ​​///path_to_backup/.git_ – gzh

+0

спасибо за ответ, я до сих пор его не понимаю. после того, как скопируйте папку .git в новое место 'new' и' cd./new' и 'git branch -a', которые просто перечисляют все ветви, но как вернуть все файлы исходного кода? – user1575921

0

Скопируйте все папки, папка .git содержит всю информацию, вам нужно как branches, tags, reflog, objects и многое другое.

Если вы хотите переместить свой проект на другой компьютер, вы также должны скопировать файл .gitconfig, расположенный в вашем каталоге hoe.

Имейте в виду, что когда вы клонируете проект, папка .git создается локально на вашем компьютере и не клонируется, поэтому ваши «тайники», «reflog», «rerere», worktree и т. Д. «Потеряны», если вы не скопировали .git папка.

+0

спасибо за ответ, после копирования всех .git копий папки в новую локацию, а затем как восстановить все файлы исходного кода? какая команда? – user1575921

+0

'git checkout ' или любой другой код, который вы хотите проверить – CodeWizard

+0

, или вы можете распечатать все .git/ref или .git/ref/heads или .git/ref/remotes. Скажите, что именно вы ищете и плохо вам помогли. – CodeWizard

0
  • Скопируйте папку .git в новое место.
  • Отправить команду сброса: "мерзавец сброса --hard commit_hash"

Ex: мерзавец сброс --hard 16ddd1adb79dda40a21f4b83626fbc49e85add61

Это восстановит все файлы из 'головы' в папка.

С Sourcetree:

  • правой кнопкой мыши последний коммит
  • «Сброс текущей ветви к этой фиксации»