치명적인 파일 시스템 오류 후 GIT를 복원하는 방법은 무엇입니까?
문제
기본 서버에서 파일 시스템 오류 후 GIT 저장소를 복원하는 가장 빠른 경로는 무엇입니까?
OSS 프로젝트의 중앙 서버가 실패하고 복원 후 이틀 동안 모든 커밋이 손실된다고 상상해보십시오. 어떻게 되돌아가나요? 모든 클라이언트에서 "git push"라고 부르는 것만으로도 충분합니까? 아니면 내가 고려해야 할 다른 것이 있습니까?
해결책
모든 저장소는 또한 "메인 리포지토리 (Main Repository)"(컨벤션에 의한 메인 ")의 백업입니다. git push
가장 최근에 한 저장소에서 git fetch
또는 git pull
물론 그 상태에 따라 필요한 전부가되어야합니다. 당신은 갈고리와 그와 같은 것을 돌봐야하지만 지난 이틀 동안의 커밋 만 잃어 버렸다고 말하면 어쨌든 해를 입지 않았을 것입니다.
다른 팁
ㅏ git pull
그리고 a git push
충분해야합니다.
또는 a git push -f
로컬 사본으로 서버를 강제로 업데이트하지만 다른 사람에게는 문제가 발생할 수 있습니다 (여러 커밋자가있는 경우).
더 이상의 문제 나 오류가 발생하면 알려주십시오.
서버에서 새로운 repo를 만드는 것이 더 나을 것이라고 생각합니다.
% ssh user@server
% mv /path/to/repo /path/to/repo.old
% mkdir /path/to/repo
% cd /path/to/repo
% git init --bare
그런 다음 가지고있는 모든 다른 클론에서 밀어 넣으십시오. 내 생각은 기존 repo에있을 수있는 부패한 파일을 피할 것이며, 모든 클론에서 일하는 경우, 아무도 서버 repo에서 엉망이되지 않는다면 전혀 손실이 없어야한다는 것입니다.
제휴하지 않습니다 StackOverflow