하위 모듈을 무시하려면 `git commit -a`를 사용하시겠습니까?

하위 모듈을 무시하려면 `git commit -a`를 사용하시겠습니까?

의 동작은 git commit -a하위 모듈 내부에 새로운 커밋이 있는 경우 하위 모듈에 대한 변경 사항을 포함하는 것으로 보입니다. 이것은 내가 일반적으로 원하는 것이 아니며 때로는 포함할 의도가 없는 하위 모듈 변경 사항이 포함된 커밋을 실수로 푸시하는 경우가 있습니다.

git commit -a하위 모듈을 무시하도록 설정하는 방법이 있습니까 ? 들어가 봤는데 git help config아무것도 안 보이더라구요.

(덜 좋은) 대안은 하위 모듈을 포함할지 git status여부를 한눈에 더 명확하게 만드는 것입니다 . git commit -a현재는 다음 중 하나를 보여줍니다.

modified:   submodule (modified content)

또는

modified:   submodule (new commits)

그리고 그것들은 짜증날 정도로 비슷합니다. submodule.<name>.ignore구성 옵션이 내가 원하는 것과 유사한 작업을 수행할 수 있는 것 같습니다 . 그러나 이상적으로는 하위 모듈에 대한 변경 사항을 보고 싶습니다. git commit -a추가하지 않는 한 다른 모든 변경 사항과 동일한 위치에 있지는 않습니다.

답변1

git config 또는 .gitmodules 파일에서 submodule.ignore를 설정할 수 있습니다.

참고: GIT는 이것에 대해 일종의 바보입니다. git commit -a를 사용하여 정상적인 동작을 얻으려면 무시 = all로 설정하면 명시적으로 추가할 때 git show/diff의 하위 모듈도 무시됩니다. 후자를 해결하는 유일한 방법은 명령줄 옵션 --ignore-submodule=none을 사용하는 것입니다.

참고 2: diff.ignoreSubmodules 구성은 기본 명령줄 옵션 --ignore-submodule을 설정할 수 있다고 가정하지만 수년 동안 손상되었으며 .gitmodules가 대회에서 승리함에 따라 아무 작업도 수행하지 않으므로 명시적인 명령줄 옵션만 얻을 수 있습니다. 당신 제정신이군요.

답변2

하위 모듈이 많지 않은 경우 가장 편리한 방법은 먼저 모두 커밋한 다음 실행하는 것입니다.

git 재설정 HEAD^1 하위 모듈_경로

아무런 변경 없이 git commit --amend를 실행하면 언제든지 이 명령 구문을 상기할 수 있습니다. 주석이 달린 지침 상단 근처에 표시됩니다.

관련 정보