저장소에 파일을 추가/삭제, 까먹는(forget) 방법.



/****************************** 
add : 저장소에 파일 추가
******************************/

// 저장소 상태 확인 - added.txt란 파일이 tracked 되지 않은 상태이므로 추가해야 함
C:\rep> hg status
? added.txt

// 저장소에 added.txt 파일 추가
C:\rep> hg add added.txt

// 옵션
-I 혹은 --include 패턴 : 추가할 파일명의 패턴 지정. 여러개 지정 가능.
-X 혹은 --exclude 패턴 : 추가에서 제외할 파일명의 패턴 지정. 여러개 지정 가능.
-S 혹은 --subrepos : sub-repository 포함.
-n 혹은 --dry-run : 실제로 추가하지는 않고 뭐가 추가될 지 미리 볼 수 있음.

// 추가한 파일을 커밋하기 전에 제외시키고 싶다면 hg forget 사용
// added.txt란 파일이 추가되어 다음 커밋에서 적용될 예정
C:\rep> hg status
A added.txt

// added.txt란 파일을 제외
C:\rep> hg forget added.txt

C:\rep> hg status
? added.txt




/****************************** 
remove : 저장소에서 파일 삭제
  - 짧게 rm 만으로도 가능
******************************/

// added.txt 란 파일을 저장소에서 삭제
C:\rep> hg rm added.txt

C:\rep> hg status
R added.txt

C:\rep> hg commit -m "remove added.txt"
// 이제 added.txt 는 저장소에서 사라졌음


// 현재 add 되어 A 상태인 파일을 삭제하려면 -f 옵션 사용
C:\rep> hg status
A removed.txt

// 그냥 rm 명령어로 삭제하려하면 삭제가 안됨
C:\rep> hg rm removed.txt
not removing removed.txt: file has been marked for add (use forget to undo)

C:\rep> hg rm -f removed.txt
// 실제로 삭제는 되지 않고 untracked 상태로 변함
C:\rep> hg status
? removed.txt




/****************************** 
addremove : 새 파일은 추가하고 지워진 파일은 삭제처리 
******************************/

// added.txt 란 파일이 추가되어 있고, missing.txt란 파일이 hg remove가 아닌 외부요인으로 삭제되어 있음
C:\rep> hg status
? added.txt
! missing.txt

// addremove 시도
C:\rep> hg addremove
adding added.txt
removing missing.txt

// 결과확인
C:\rep> hg status
A added.txt
R missing.txt






Posted by bloodguy
,