git의 diff,status,log를 극한으로 압축+편리화
7648 단어 Git
git config --global color.ui auto # 出力先が端末のときに色をつけて表示する
git diff를 더 쉽게 볼 수 있게.
git diff-color-words로 차분을 작게 표시합니다
일반적인git diff는 행위 단위로, 예를 들어 변수 이름을 통일적으로 변경하면 보기 어렵다.
-- color-worlds를 지정하면 기호나 공백으로 구분된 단어 단위의 diff를 표시할 수 있습니다.git를 설정할 필요가 없습니다.
git diff --color-words # 差分を単語単位で色分けで表示する
세밀한 디스플레이를 사용자정의할 수도 있습니다.mangit-diff로 검색해 보세요. -word-diff.
※ 단, 복잡해지면 일반적인git diff는 쉽게 볼 수 있습니다.
. gitattributes를 더 작게 표시하도록 설정합니다.
gitattributes 파일을 설정하면 언어 문법에 따라 변수 이름, 함수 이름 등 단위로 diff를 표시할 수 있습니다
파일을 git diff-color-words로 설정하면 아래와 같이 더 작게 보일 수 있습니다.(이하 js의 예)
설정을 위해 창고의 경로를 선택하십시오.gitattributes를 만들어야 합니다.예를 들면 다음과 같습니다.
*.c diff=cpp
*.h diff=cpp
*.cpp diff=cpp
*.hpp diff=cpp
*.m diff=objc
*.java diff=java
*.html diff=html
*.pl diff=perl
*.pm diff=perl
*.t diff=perl
*.php diff=php
*.py diff=python
*.rb diff=ruby
*.js diff=java
※ 모든 창고에 적용하려면 아래 내용을 참조하세요.gitattributes。모든 창고에gitignore 적용
같은 형식의 파일을 홈 디렉터리 등에 두십시오. ~/.미리 gitconfig로 설정합니다.
git config --global core.attributesfile ~/.gitattributes_global
git config --global core.excludesfile ~/.gitignore_global
git status를 보기 쉽게 만들기
git status-short-branch로 현황 촘촘하게 표시
git status는 ls보다 사용하는 명령이지만, 표시가 길기 때문에 치밀하게 해야 한다.
--short
: 이번 키모--branch
: 맨 위에 있는 "##"행에 branch 이름M 및 U의 표현 예는 다음과 같습니다.
도례
설명
M_
git add 변경됨
_M
변경되지 않음git add (modified)
A_
새 파일이git add
_D
rm을 만들었지만 git add와git rm이 없습니다
??
git(untracked)에 등록되지 않았습니다.
UU
merge branch와 주머니 사정이 변경되어 conflict (unmerged) 를 진행했습니다.
DU
merge에서 한branch가 변경되었지만, 주머니 사정이 삭제되어 conflict가 진행되었습니다
왼쪽은 branch나dd로 표시되고 오른쪽은 branch로 표시되거나 로컬로 변경되면 편리하다는 것을 기억하십시오.
git log를 더 쉽게 볼 수 있게.
(※ 자신이 사용하는 노멀 git log에 가장 가까운 지령은
git log --stat --decorate --find-renames
)온라인에서commiit/merge 이력서를 GUI 도구로 표시
EGit(eclipse),GitX와tig에 표시된git log 정보는 한 줄로 요약되고merge 관계도 나타낸다
commiit의 일람표를 확인하기 위해 매우 편리합니다.이것도git 명령으로 실현할 수 있다.
git log --graph --decorate --oneline
--graph
:commiit 이력서를 그래프 형식으로 표시합니다.메르게 관계를 표시하기 편합니다.※ 미지정 시 로그의 순서는commiit 시간의 새로운 순서입니다.
--decorate
:commiit마다 branch 이름, 탭 이름을 표시합니다.--oneline
: 한 줄로 간단하고 알기 쉬운 표시.자세한 내용은 man git-log의 Commiit Formtting 섹션을 참조하십시오.git log-p-stat으로 차분과 변경된 파일도 같이 보고.
git log -p # 差分を表示
git log --stat # ファイルごとの変更行数を表示
파일 이름 변경 추적,log-p 및 diff 소형화
파일 이름 변경 차이는 일반적으로 모든 delete + 전체add로 표시되지만 git diff와 git log-p에 - M 또는 - find-renames를 추가하면 rename+ 내용의 차이로 표시되기 때문에 촘촘해진다.
편리한 것은 기본 옵션이 있다는 것이다.
git config --global diff.renames true
git log-stat-find-renames는 다음과 같습니다.path/to/{file.pl => renamed_file.pl} | 21 ++++++++++++++++-----
git diff--find-renames와git log-p--find-renames는 다음과 같습니다.diff --git path/to/file.pl path/to/renamed_file.pl
similarity index 82%
rename from path/to/file.pl
rename to path/to/renamed_file.pl
index 357d760..2e18a5c 100644
--- path/to/file.pl
+++ path/to/renamed_file.pl
(ファイルの内容の差分)
참조: http://qiita.com/kenbeese/items/31383bb77848b98161bb파일 이름 변경 추적, 로그 [filename] 한 번에 완료
특정 서류의 이력을 보고 싶을 때는 이용
git log [filename]
할 수 있지만, 이력 중도 서류명 변경 시 이력이 중단된다.변경 전의 파일 이름 중git log를 한 번 더 사용하는 것이 일반적이며
git log --follow [filename]
파일 이름 변경을 자동으로 추적할 수 있습니다.git diff 및 git log의 범위를 간단히 지정합니다.
git log A..B에 특정 범위의commiit 이력서 보이기
예를 들어 다음과 같은 방법을 사용할 수 있다.
git log 1.0.0.. # version 1.0.0から現在のbranchへのcommit履歴を表示
git log master..feature # feature branchに積まれたcommit履歴を表示(masterが進んでいてもOK)
git diff A...B로 branch 전체의 차이를 나타냅니다.
branch에 누적된 모든 차치의 diff를 표시하기 위해서는git log를 통해commiit 번호를 확인할 필요가 없습니다.
git diff master...feature # feature branchに積まれた差分を表示(masterが進んでいてもOK)
어떤 서류가 변경되었는지 보고 싶으면 --name-only
를 더해 주십시오.보충:
git diff A..B
A와 B 사이에 일반 diff를 표시합니다.git diff A
git diff A입니다.HEAD와 같습니다.git diff A...B
는 git diff `git merge-base A B`..B
와 같다.테스트 차분 쉬움
git diff-name-only로 변경된 파일 일람
수정된 파일만 테스트하려면 다음과 같이 하십시오.
prove `git diff --name-only | egrep '\.js$|\.pm$'` # perlのテストを実行
jshint `git diff --name-only | egrep '\.js$'` # jshintを実行
물론 git add를 표시하는 파일 - cached, git diff [branch 이름] 등도 지정할 수 있습니다.your-test-tool `git diff --name-only --cached` # commit予定の差分をテスト
your-test-tool `git diff --name-only origin/master...` # origin/masterにmerge予定の差分をテスト
상술한 모든 것을 편리하게 하다
gitconfig에서 Alias 만들기
예를 들어, 도표에commiit/merge 역사를 표시하는 명령을git graph로 설정하려면 아래 명령을 사용하십시오.
git config --global alias.graph 'log --graph --decorate --oneline'
다음과 같이 삭제합니다.git config --global --unset alias.graph
※ 자주 사용하는 물건은.bashrc야.zshrc의alias를 사용하는 것이 더 편리합니다.
Reference
이 문제에 관하여(git의 diff,status,log를 극한으로 압축+편리화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuya_presto/items/ef199e08021dea777715텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)