나는 오늘 아침에 다음을 수행하여 발을 쏠 수 있었다.
- 내 프로젝트 변경 작업 시작
- 여러 파일을 편집했습니다.
- 내 접근 방식이 모두 잘못되었고 다시 시작해야한다는 것을 깨달았습니다.
- 내 프로젝트의 최상위 수준으로 cd하고 “svn –recursive revert.” 내 로컬 샌드 박스를 변경 전 상태로 복원합니다.
- 내 로컬 샌드 박스에 눈에 띄는 다른 많은 변경 사항이 있다는 것을 깨달았을 때 공포에 휩싸 였고 방금 모든 것을 지 웠습니다. (지난 금요일에 svn 서버가 다운되어 체크인을 할 수 없었고 주말 동안 잊어 버렸습니다)
다행히이 경우 금요일에 퇴근하기 전에 “svn diff> temp.txt”를 수행했고 temp.txt 파일이 여전히 내 하드 드라이브에 있었기 때문에 해당 파일을 “패치”에 넣고 복구 할 수있었습니다. 손실 된 변경.
그러나 내 미래의 참조를 위해 (즉, 다음에 같은 바보 같은 실수를 할 때) … svn에게 “svn 되돌리기”를 실행 취소하도록 지시하는 방법이 있습니까? svn은 로컬 / 체크인되지 않은 diff의 백업을 어디서나 보관합니까?
답변
아니요, (절대적으로) 아니요 .
Subversion에 파일을 되돌려 야한다고 말하면 모든 변경 사항이 바람에 의해 사라집니다.
당신의 기억 만이 그들을 되 찾을 수 있습니다.
예외 : 추가 한 새 파일은 “추가됨”상태 만 손실되지만 파일은이 디렉토리에 남아 있으며 상태 만 알 수 없음 ( “?”)
플랫폼 / 소프트웨어 예외 : Windows에서 TortoiseSVN을 사용하면 Revert는 먼저 파일을 휴지통으로 보낸 다음 되돌립니다. 휴지통을 파헤쳐 파일을 복구 할 수 있습니다.
답변
해결책이 있습니다 … 휴지통으로 이동하면 삭제 된 파일의 최신 버전을 찾을 수 있습니다. 되 돌리는 모든 파일을 휴지통에 “던지기”합니다.
답변
실제로 Subversion에 국한되지는 않지만 Eclipse로 작업하는 경우 로컬 역사에서 운을 시험해 볼 수 있습니다.
이제 조금 더 Subversion에 특화된 것이 있습니다. 모든 변경 사항에 대해 분기를 만들고 싶지 않다면 로컬에서 몇 개의 트렁크를 체크 아웃 할 수 있습니다 (trunk-modif-1, trunk-modif-2 .. .). 각 “수정”은 별도의 트리에서 수행되며 어떤 체크 아웃이 어떤 수정에 해당하는지 목록 만 유지하면됩니다.
또는 로컬에서 Git을 사용할 수 있지만 시도한 적이 없습니다.
답변
최근에 SVN에 새 파일 변경 사항 (약 10 개)을 적용하지 않는이 실수를 저질렀 고 저의 어리석은 실수 때문에 모두 사라졌습니다. 그러나 저를 구한 것은 상황에 맞는 메뉴의 “이전 버전 복원”옵션이었습니다. 안도감과 교훈을 얻은 휴.
답변
svn 명령 줄 클라이언트를 사용하는 경우 파일을 복구 할 수 없습니다 .
그러나 TortoiseSVN을 svn 클라이언트로 사용하는 경우 복구 할 수 있습니다. TortoiseSVN은 자동으로 휴지통으로 이동합니다. 실수로 되 돌린 후 거기에서 복원 할 수 있습니다.
이것은 TortoiseSVN에서 구성 가능한 옵션입니다. 그것은 아래 설정 -> 대화 1 -> 사용 휴지통 복귀.
기본적으로 선택되어 파일이 휴지통으로 이동됩니다. 원하신다면 (대부분이 기능을 사용하지 않으셔도됩니다. 이유가 있으면 알려주세요)
답변
InteliJ를 사용하고 있다면 운이 좋은 사람입니다. 상단 메뉴에는 버전 관리 옵션이 있으며 그 아래에는 로컬 기록 옵션이 있으며, 여기에서 해당 파일로 수행 한 모든 작업 (업데이트, 커밋, 되돌리기)을 포함하여 선택한 파일의 모든 기록을 찾을 수 있습니다.
행운을 빕니다, Arkde
답변
또한 .NET 코드 (.cs 파일 등)를 되돌리고 되돌리기 전에 애플리케이션을 빌드했지만 변경 한 후에는 리플렉터 도구를 사용하여 어셈블리 파일에서 변경 사항을 복구하여 코드를 볼 수 있습니다.