hg forget과 hg remove의 차이점은 무엇입니까?


313

수은이 저장소의 현재 상태에서 여러 파일을 제거하고 싶습니다. 그러나 파일이 이전 기록에 존재하기를 원합니다.

어떻게 forget하고 remove다른가, 내가 원하는 것을 할 수 있습니까?


27
걱정하지 마십시오. Mercurial의 이전 기록에서 파일을 제거 할 수 없습니다. 확장자를 사용하지 않으면 기록은 일반적으로 변경할 수 없습니다.
Martin Geisler

답변:


348

' hg forget'은 ' '의 약어입니다 hg remove -Af. ' hg remove'도움말에서 :

... 및 -Af를 사용하여 작업 디렉토리에서 파일을 삭제하지 않고 다음 개정판에서 파일을 제거 할 수 있습니다.

결론 : ' remove'는 디스크의 작업 복사본에서 파일을 삭제하고 ( -Af' 를 사용하지 않는 한 )' forget'는 사용 하지 않습니다.


7
"hg forget"은 Mercurial 1.3에서 "hg remove -Af"를 수행하기 쉬운 방법으로 다시 도입되었습니다. 작업 사본에서 파일을 제거하지 않고 파일 삭제를 스케줄합니다.
Martin Geisler

5
그것을 듣고 기뻐. 'remove -Af'(및 'remove'도움말 페이지의 전체 옵션 테이블)는 미쳤습니다.
Ry4an Brase

32
@ Ry4an : 정말, 그것은 우스운했다. 나는 '잊어 버린'패치를 다시 썼습니다. 내가 그것을 만들었을 때 나는 -Af가 코드에서 완벽하게 이해되었다는 것을 깨달았지만 사용자의 관점에서는 완전히 말도 안된다는 것을 깨달았다.
Steve Losh

10
Heh, 그것은 수은에있어서 큰 장점입니다. 사람들은 사용자의 관점에서 무엇이 의미가 있는지 적극적이고 반복적으로 생각하고 있습니다. 고쳐 줘서 고마워
Ry4an Brase

9
로컬 빌드 구성 파일 등? 시스템마다 다른 로컬 툴의 경로는? 실수로 소스 제어에서 원하지 않지만 저장하려는 로그 파일을 추가 했습니까? 나는 그것이 일어난 것 같아요.
Ry4an Brase

42

넣으려면 가장 좋은 방법은 즉 hg forget이다 동일hg remove 제외시켰다 가 뒤에 파일을 떠난다 당신의 작업 복사본. 파일은 추적되지 않은 파일로 남겨지며 이제의 패턴으로 선택적으로 무시할 수 있습니다 .hgignore.

다시 말해, 나는 당신이 사용했는지 또는 내가 당신에게서 뽑았 는지 알 수 없습니다 . 당신이 실행하는 파일 에는 것입니다 당신이 사용했던 것처럼 - 내가 그 변경 집합에 업데이트 할 때 삭제 하는 대신.hg forgethg removehg forgethg remove


27

문서에서 분명히 명령을 사용하여 파일을 프로젝트 기록에 유지할 수 있습니다. 작업 디렉토리에서 파일을 삭제하기 때문에 제거하려는 것처럼 보입니다.

http://hgbook.red-bean.com/read/ 의 Mercurial 서적에서 :

파일을 제거해도 기록에는 영향을 미치지 않습니다. 파일을 제거하면 두 가지 효과 만 있음을 이해하는 것이 중요합니다. 작업 디렉토리에서 파일의 현재 버전을 제거합니다. 다음 커밋 시점부터 Mercurial이 파일 변경 사항을 추적하지 못하게합니다. 파일을 제거해도 파일 기록은 변경되지 않습니다.

매뉴얼 페이지 hg (1)는 잊어에 대해 다음과 같이 말합니다.

다음 커밋 후에 더 이상 추적되지 않도록 지정된 파일을 표시하십시오. 전체 프로젝트 히스토리가 아닌 현재 브랜치에서만 파일을 제거하며 작업 디렉토리에서 파일을 삭제하지 않습니다.

그리고 이것에 대해 제거하십시오 :

표시된 파일을 저장소에서 제거하도록 스케줄하십시오. 전체 프로젝트 히스토리가 아닌 현재 브랜치에서만 파일을 제거합니다.


3

"hg remove b"상태가 "A"인 파일에 대해 사용 하면 파일이 추가되었지만 커밋되지 않은 경우 Mercurial은 다음과 같이 응답합니다.

  not removing b: file has been marked for add (use forget to undo)

이 응답은 제거와 잊어 버림의 차이점에 대한 명확한 설명입니다.

내 이해는 "hg forget"버전 제어에 의해 추적되지 않도록 추가되었지만 커밋되지 않은 파일을 취소하는 것입니다. 동안은 "hg remove"버전 제어에서 최선을 다하고 파일을 밖으로 데리고입니다.

스레드 에는 hg remove7 가지 유형의 상태 파일에 대해 사용하는 예제가 있습니다.


2

파일을 추적하거나 추적 할 수 없습니다. hg add 를 사용하여 파일을 추적하고 hg remove 또는 hg 를 사용 하여 파일 추적 을 해제하십시오. 플래그없이 hg remove 를 사용 하면 파일을 삭제하고 추적을 해제하며 hg forget 은 파일 을 삭제하지 않고 단순히 추적을 해제합니다.


3
나는 남자가 이미 차임했을 때 왜 당신이이 인용문을 추가 할 필요가 있다고 생각했는지 모르겠지만, 보트에 떠있는 것이 무엇이든간에 요.
Nathan Tuggy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.