programing

Git 상태 - 특정 디렉토리에서만 변경사항을 표시할 수 있는 방법이 있습니까?

sourcejob 2023. 9. 26. 22:19
반응형

Git 상태 - 특정 디렉토리에서만 변경사항을 표시할 수 있는 방법이 있습니까?

지난번 커밋 이후로 수정된 파일 목록을 보고 싶습니다.git status가 표시되지만, 저는 단일 디렉토리에 있는 파일에만 관심을 가집니다.이것을 할 방법이 방법이 있습니까?나는 노력했다.git status <directory>, 하지만 이것은 완전히 다른 일을 하는 것 같습니다. (모든 변경된 파일을 나열합니다.) 제가 쓴 경우처럼 말이죠.git add <directory>먼저).

git-status에 대한 문서는 git-commit이 하는 것과 동일한 옵션을 수용한다는 사실을 제외하고는 많은 것을 알려주지 않습니다(그러나 git-commit의 목적은 변경된 파일 목록을 보여주는 것이 아닙니다).

디렉토리 내에서:

git status .

어떤 경로라도 실제로 사용할 수 있습니다. 다음 구문을 사용합니다.

git status <directoryPath>

예를 들어 경로가 "my/cool/path/here"인 디렉토리의 경우

git status my/cool/path/here

그 이유는git status와 동일한 옵션을 사용합니다.git commit그것이 목적입니까?git status에 전달한 것과 동일한 옵션을 사용하여 커밋할 경우 어떤 일이 발생할지 보여주는 것입니다.git status. 이 점에 있어서는git status정말로git commit --preview.

원하는 것을 얻으려면 단계별 변경 사항을 표시하는 다음 작업을 수행할 수 있습니다.

git diff --stat --cached -- <directory_of_interest>

단계별 변경 사항을 보여주는 이 정보는 다음과 같습니다.

git diff --stat -- <directory_of_interest>

또는 이 두 가지를 모두 보여주는 것입니다.

git diff --stat HEAD -- <directory_of_interest>

가장 간단한 솔루션:

  1. 디렉토리로 이동
  2. git status | grep -v '\.\.\/'

물론 이것은 색을 버려요.

참고로 git 디렉토리로 이동하지 않고 git stats를 확인할 수 있도록 간소화하면,

### 파일을 만듭니다.sudo nano/usr/local/bin/gitstat
### 이것을 집어넣습니다.
#!/usr/bin/envbash
dir=$1
[[$dir =="]]인 경우echo "디렉토리가 필요합니다!"출입구fi
echo "'$dir'에 대한 Git stat."
git --git-dir=$dir/.git --work-tree=$dir diff --stat
### 이그제큐티브 파마를 해 주다suchmod +x/usr/local/bin/gitstat

그리고 그 간단한 대본을 부르면서:gitstat /path/to/foo-project. 에 있는 동안에도 사용할 수 있습니다.foo-project그냥 하는 것gitstat .그래서 보다 짧게 가정해 보겠습니다.git status -s,git diff --stat아니면git diff --stat HEAD항상 gui 대신 콘솔을 사용하는 경우.

크레딧:

언급URL : https://stackoverflow.com/questions/715321/git-status-is-there-a-way-to-show-changes-only-in-a-specific-directory

반응형