git show 줄을 추가하고 줄을 변경하고 줄을 제거하는 방법이 있습니까?
"git diff --stat"및 "git log --stat"는 다음과 같은 내용을 표시합니다.
$ git diff -C --stat HEAD c9af3e6136e8aec1f79368c2a6164e56bf7a7e07
app/controllers/application_controller.rb | 34 +++-------------------------
1 files changed, 4 insertions(+), 30 deletions(-)
그러나 그 커밋에서 실제로 일어난 일은 4 줄이 변경되고 26 줄이 삭제 된 것인데, 이는 4 줄을 추가하고 30 줄을 삭제하는 것과 다릅니다.
델타 LOC (이 경우 26)를 얻을 수있는 방법이 있습니까? 나는 추가되거나 제거 된 줄을 구별하는 것에 대해 정말로 신경 쓰지 않습니다.
당신이 사용할 수있는:
git diff --numstat
수치 차이 정보를 얻으려면.
추가 및 제거 쌍에서 수정 사항을 분리하는 한 --word-diff
도움이 될 수 있습니다. 다음과 같이 시도해 볼 수 있습니다.
MOD_PATTERN='^.+(\[-|\{\+).*$' \
ADD_PATTERN='^\{\+.*\+\}$' \
REM_PATTERN='^\[-.*-\]$' \
git diff --word-diff --unified=0 | sed -nr \
-e "s/$MOD_PATTERN/modified/p" \
-e "s/$ADD_PATTERN/added/p" \
-e "s/$REM_PATTERN/removed/p" \
| sort | uniq -c
약간 길어서 대신 자신의 스크립트에서 구문 분석 할 수 있습니다.
id가있는 커밋에 의해 추가 / 변경 / 삭제 된 줄을 알고 싶다면
commit-id
다음을 사용할 수 있습니다.git show commit-id --stat
또는
git diff commit-id-before commit-id --stat
범위 커밋에 의해 추가 / 변경 / 삭제 된 줄을 알고 싶다면 다음을 사용할 수 있습니다.
git diff commit-id1 commit-id2 --stat
각 커밋별로 추가 / 변경 / 삭제 된 줄을 알고 싶다면 다음을 사용할 수 있습니다.
git log --stat
git은 diff 형식으로 행을 추가하고 삭제 한 "통합"diff를 사용합니다. 정보 추가, 삭제 및 변경을 보여주는 diff를 얻으려면 외부 작업을 수행해야합니다.
https://wiki.postgresql.org/wiki/Working_with_Git#Context_diffs_with_Git 는 일반적인 이전 "diff"를 실행할 수있는 스크립트에 대한 링크를 제공하며, 여기서 "context"diff 출력을 생성 할 수 있습니다 . 컨텍스트 차이는 추가, 제거 및 변경된 행을 표시하므로 원하는 데이터를 얻을 수 있습니다.
모든 파일이 커밋을 위해 준비된 경우 --numstat
다음과 같이 이동합니다.
git diff --numstat HEAD~
'programing tip' 카테고리의 다른 글
새로운 C # await 기능은 무엇을합니까? (0) | 2020.09.25 |
---|---|
Node.js로 외부 HTTP 요청을 만드는 방법 (0) | 2020.09.25 |
손상된 git 저장소를 수정하는 방법은 무엇입니까? (0) | 2020.09.25 |
ObjectMapper를 사용하여 기본 생성자없이 불변 객체를 de / serialize하는 방법은 무엇입니까? (0) | 2020.09.25 |
Postgresql 집계 배열 (0) | 2020.09.25 |