로컬 편집 내용을 되 돌리지 않고 svn add 실행 취소


157

실수로 svn add *저장소에 있으면 안되는 많은 파일을 실행 하고 추가했습니다. 또한 유지하려는 일부 파일에 로컬 편집 내용이 있습니다. svn add로컬 수정 사항을 되 돌리지 않고 실행 취소하는 간단한 방법이 있습니까? Google에서 볼 수있는 주요 제안 svn revert사항은입니다. 이로 인해 로컬 수정 사항이 취소됩니다.

답변:


282

그것은 :

svn rm --keep-local

나에게도 같은 일이 일어났다. :-피

많은 사람들이 당신이 사용해야한다고 언급했습니다.

svn rm --keep-local FILENAME

의도하지 않은 부작용을 일으킬 수있는 모든 것 대신 하나 이상의 파일에 명령을 적용합니다.


1
이것은 나에게 영향을 미치지 않았다. 기본 폴더에서 위와 같이 (후행 포함) 코드를 실행했습니다. 내가 뭔가를 놓치고 있는지 확실하지 않습니다.
zzz

8
명령에 파일 이름을 추가해야합니다 svn rm --keep-local FILENAME. 는 FILENAME*를 사용하여 여러 파일을 일치시킬 수 있습니다 (패턴이있을만큼 운이 좋으면).
Adam Badura

4
경고! -svn externals를 사용하는 동안이 명령을 사용하면 연결된 모든 외부 장치도 제거됩니다.
kostja

2
커밋하면 커밋에 해당 파일을 리포지토리에서 제거하지 않습니까?
jwg

1
// jwg와 같은 질문이 있습니다. SVN 제어 파일을 일부 편집했습니다. 편집 내용을 로컬로 유지하고 싶습니다. 그러나 저장소에서 파일을 모두 제거하고 싶지 않습니다 . 로컬 편집 내용을 파일로 푸시하고 싶지 않습니다.
Nathan Basanese

34

해당 파일이 아직 커밋되지 않은 디렉토리에있는 경우 다음을 수행하여 다음 커밋에서 전체 디렉토리 내용을 제거 할 수 있습니다.

svn delete --keep-local /path/to/directory

그러나 해당 파일이 이미 리포지토리에 있고 커밋하지 않으려는 변경 사항이 포함 된 경우 변경 목록을 사용하여 나머지 파일을 커밋 할 수 있습니다.

svn changelist somename /file/to/be/committed
svn commit --changelist somename

7

다음과 같은 방법으로 체크 아웃을 수정할 수 있습니다.

  1. 로컬 파일 백업
  2. SVN 체크 아웃 되돌리기
  3. 파일을 복원

-

rsync -av --exclude .svn/ YOURDIR/ YOURDIR.bak
svn revert -R YOURDIR
rsync -av YOURDIR.bak/ YOURDIR 

최종 명령은 항상 여분의 디렉토리 레벨을 만듭니다. 즉 YOURDIR/YOURDIR/, 문제는 초기 백업 명령 생성에 있다고 생각하지만 YOURDIR.bak/YOURDIR/.
제임스

rsync를 피하려면 소스 디렉토리에서 슬래시가 필요합니다. 나는 대답을 편집했다.
Brice M. Dempsey

3

나는 같은 문제가 있었는데 실수로 svn add바이너리와 컴파일 된 파일이 들어 있는 / 디렉토리를 추가했습니다 . 이 명령은 실제로 디렉토리를 삭제합니다.

svn rm --force <directory-name>

제 경우에는 디렉토리가 필요 없으므로 삭제해도 안전합니다. 파일 / 디렉토리를 유지하려면 명령을 적용하기 전과 복사 한 후 저장하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.