실수로 Git 저장소를 rm -r하여 여러 사라지는 사건을 두 번 멈추십시오.

1247 단어 재료Git
인간 누구도 지워서는 안 되는 리포지토리를 실수로 rm -r 해 버리는 일이 있다.
$ rm -r repo
override r--r--r--  uasi/staff for repo/.git/objects/48/a35a5fffec3890bb52584a98898aa2b02a719a? ^C

위험하다고 생각해 ^C 해도 후의 축제다. 가장 중요한 .git/objects 이하의 파일은 리드 온리이므로 겨우 남아 있지만, .git/HEAD.git/config
이런 슬픈 사건은 다시 일어나지 않도록 하자. 실수로 인한 삭제를 방지하려면 읽기 전용 파일 .git/!
$ touch repo/.git/\!
$ chmod a-wx repo/.git/\!

"!"에는 공백을 제외한 인쇄 가능한 문자 중 가장 작은 ASCII 코드가 있습니다. rm는 사전 순서로 파일을 삭제하므로 먼저 .git/!를 지우려고합니다 (그러나 그렇지 않을 수도 있음 → 주석 참조). 그리고 :
$ rm -r repo
override r--r--r--  uasi/staff for repo/.git/!?



“덮어쓰기(오버라이드)”를 “확인(컴팜)”해 주는···.

여기에서 취소하거든 .git/ 의 내용은 전부 무사하게 rm -r 에서 살아난다.

또한 rm -rf 된다면 불가피하게 사라지기 때문에 그 생각으로.

여담: git init 때때로 .git/! 를 배치하도록 템플릿 디렉토리 /usr/local/share/git-core/tmeplates! 를 넣었지만, 복사시에 파일이 쓰기 가능하게 되어 버리지 않았다.

좋은 웹페이지 즐겨찾기