단일 파일 / 디렉토리를 커밋하는 방법


216

다음 명령을 시도했습니다 :

git commit path/to/my/file.ext -m 'my notes'

자식 버전 1.5.2.1에서 오류가 발생합니다 :

error: pathspec '-m' did not match any file(s) known to git.
error: pathspec 'MY MESSAGE' did not match any file(s) known to git.

단일 파일 또는 디렉토리 커밋에 대한 잘못된 구문입니까?

답변 : 이 순서대로 인수 예상되었습니다 ...

git commit -m 'my notes' path/to/my/file.ext

업데이트 : 더 이상 엄격하지 않습니다 :)


1
버전이 정확합니까? 업데이트 1.5.2.1? 1.5.2.1은 4 세 이상입니다.
CB Bailey

git 업그레이드를 금지하는 것이 있습니까?
Adam Dymitruk

BTW : 이것은 오래된 레시피에서 나온 VM입니다. 로컬 Git은 최신 버전이었습니다.이 버전이 고대라는 것을 몰랐습니다. 엄격함이 변경되었습니다.
doublejosh

답변:


352

당신의 주장은 잘못된 순서입니다. 을 시도 git commit -m 'my notes' path/to/my/file.ext하거나보다 명확하게하려면 git commit -m 'my notes' -- path/to/my/file.ext.

또한 git v1.5.2.1은 4.5 세입니다. 최신 버전으로 업데이트 할 수 있습니다 (1.7.8.3이 현재 릴리스 임).


2
당신은 좋은 관찰을합니다. 그러나 흥미롭게도 Windows의 Git 1.7.5.1은 거룩하게 받아들입니다.git commit path_to_file -m 'message'
Sri Sankaran

@SriSankaran : 비 순차적 인수를 인식하도록 가르친 것처럼 들립니다. 그러나 문서에 따르면 올바른 순서는 파일 목록을 마지막에 두는 것이며 문서화 된 버전의 것을 사용하는 것이 좋습니다.
릴리 발라드

감사. 이 메시지들의 순서가 바뀌었다. 또는 적어도 순서가 엄격하다;)
doublejosh

1
@DavidDimalanta : 무슨 뜻인가요?
릴리 발라드

1
@ihebiheb 지금은 어떤 다른 비 플래그 매개 변수를 볼 수 없습니다 잘 보면 git commit내가 대답을 추측 있도록하는 것은 없다 "아무것도"하지만 다른 많은 자식의 명령 --으로 (예를 들어, 다른 자유 인수에서 구별하는 경로를 방지 경로에서 대신 수정 범위로 해석 됨)git log--
Lily Ballard


16

파일이 들어있는 폴더에있는 경우

git commit -m 'my notes' ./name_of_file.ext

1
파일에 이미있는 경우 선행 "./"(점 슬래시)가 필요합니까? 사용할 수 git commit -m "my note" name_of_file.txt있습니까?
Chris22

@ Chris22 "파일에 이미 있다면"( "디렉토리에"라는 의미일까요?) ... ./은 일반적인 경로 구문이지만이 예제에서는 필요하지 않습니다.
Jonathan Cross

7

-o옵션을 사용하십시오 .

git commit -o path/to/myfile -m "the message"

-o,-지정된 파일 만 커밋


그 옵션은 필요하지 않습니다. commit 명령에 파일 페이지를 포함 시키면 해당 파일 만 커밋합니다.
더블 조쉬

추가 매개 변수를 망칠 때 확인하고 싶은지 알고 싶습니다. 예 :--amend
Tomas Varga

5

다음과 같이 커밋 메시지를 입력 한 후 경로를 지정하십시오.

git commit -m "commit message" path/to/file.extention

4

Windows 7의 git 1.9.5 : "my Notes"(큰 따옴표)가이 문제를 해결했습니다. 필자의 경우 파일을 -m 'message'앞 또는 뒤에 넣습니다. 차이가 없었다. 작은 따옴표를 사용하는 것이 문제였습니다.

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