Mercurial (HG)은 특정 파일 만 커밋
Mercurial에서 특정 파일 만 커밋하려고합니다. 변경 사항을 커밋하려고 할 때마다 자동 추가 기능이 있기 때문에 모든 파일을 커밋하려고합니다. 그러나 특정 파일이 아직 "준비되지 않았기 때문에"원하지 않습니다.
있다
hg commit -I thefile.foo
그러나 이것은 하나의 파일에만 해당됩니다. Git에서와 같이 자동 추가 기능을 해제 할 수 있다면 더 좋은 방법입니다. 이게 가능해?
tonfa가 쓰는 것처럼 명령 행에서 파일을 지정할 수 있습니다.
$ hg commit foo.c foo.h dir/
그것은 단지 효과가 있으며 그것은 항상 내가하는 일입니다. --include
찾은 플래그를 사용할 수도 있으며 다음 과 같이 여러 번 사용할 수 있습니다.
$ hg commit -I foo.c -I "**/*.h"
파일 세트 를 사용 하여 커밋하려는 파일 을 선택할 수도 있습니다.
$ hg commit "set:size(1k - 1MB) and not binary()"
자동 추가 동작을 끄고 Git처럼 Mercurial을 작동시키는 설정은 없습니다. 그러나 mq 확장자 는 관심이있을 수 있습니다. 그것은 고급 확장 기능이지만 할 수 있습니다.
$ hg qnew feature-x # create new patch
$ hg qrefresh -s foo.c # add a file to the current patch
$ hg qrefresh -s bar.c # add another file to the patch
$ hg qfinish -a # convert applied patches to normal changesets
커맨드 라인에서 파일 이름을 지정하는 것으로 충분하기 때문에 실제로이 목적으로 MQ를 실제로 사용하지는 않습니다.
몇 개의 파일을 커밋하고 다른 파일을 많이 제외하려면 커밋하려는 파일을 명시 적으로 나열하십시오. -I
파일 대신 패턴을 사용하려는 경우에만 필요합니다.
많은 파일을 커밋하고 일부 파일 만 제외하려는 경우 사용하는 -X
것이 더 편리합니다.
예를 들어, "file_1", "file_2"및 "file_3"을 포함하는 저장소에서 다음은 동일하지만 후자는 입력하기가 더 쉽고 빠릅니다.
hg commit file_1 file_2
hg commit -X file_3
3.8 hg commit --interactive
부터 파일을 선택하는 데 사용할 수도 있습니다 (3.8 이전 에는 비슷한 기능을 위해 crecord 확장명 을 사용할 수 있습니다 ). --interactive
(또는 -i
) 플래그를 사용하면 커밋에 포함 할 파일을 요청하는 HG의 원인이됩니다. 추가 보너스로 파일 내에 청크를 포함 / 제외 할 수도 있습니다.
다음은 인터페이스의 모습에 대한 예입니다. 이것은 (실제로 crecord의) 오래된 스크린 샷이므로 인터페이스가 약간 변경되었습니다 (그러나 기본 사항은 동일합니다).
해당 인터페이스를 얻으려면 curses 인터페이스를 활성화해야합니다. 단일 실행을 위해 hg commit --config ui.interface=curses --interactive
또는 일반적으로 다음을 추가하여 수행 할 수 있습니다 .hgrc
.
[ui]
interface = curses
이 스택 오버플로 질문 에서 제안한 것처럼 가장 간단한 방법은 다음과 같습니다 hg shelve
.
참고 URL : https://stackoverflow.com/questions/8188605/mercurial-hg-commit-only-certain-files
'Programing' 카테고리의 다른 글
HG 버전간에 변경된 파일 목록 생성 (0) | 2020.07.20 |
---|---|
GitHub에서 특정 파일 이름을 검색 할 수 있습니까? (0) | 2020.07.20 |
BSON이란 무엇이며 JSON과 정확히 어떻게 다릅니 까? (0) | 2020.07.20 |
요소가 0 인 배열이 필요합니까? (0) | 2020.07.20 |
select * vs select column (0) | 2020.07.20 |