[version-control] hg forget과 hg remove의 차이점은 무엇입니까?

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

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



답변

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

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

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


답변

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

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


답변

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

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

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

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

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

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

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


답변

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

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

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

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

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


답변

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


답변