git의 diff,status,log를 극한으로 압축+편리화

7648 단어 Git
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),GitXtig에 표시된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 Agit diff A입니다.HEAD와 같습니다.
  • 가지를 나눈 후의commiit 번호 자체를 알고 싶을 때git merge-base A를 사용합니다.git diff A...Bgit 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를 사용하는 것이 더 편리합니다.

    좋은 웹페이지 즐겨찾기