문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
git [2020/09/16 12:17] kwon37xi |
git [2023/10/14 13:47] (현재) kwon37xi |
||
---|---|---|---|
줄 3: | 줄 3: | ||
* [[git: | * [[git: | ||
* [[git: | * [[git: | ||
+ | * [[https:// | ||
===== Ubuntu 최신 버전 install ===== | ===== Ubuntu 최신 버전 install ===== | ||
줄 55: | 줄 56: | ||
</ | </ | ||
+ | ===== diff & difftool ===== | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | <code sh> | ||
+ | git difftool -t meld | ||
+ | git mergetool -t kdiff3 | ||
+ | </ | ||
===== Git Diff/Merge -> kdiff3 ===== | ===== Git Diff/Merge -> kdiff3 ===== | ||
* [[https:// | * [[https:// | ||
+ | * 파일 삭제 diff시에 잘 작동 안함. | ||
+ | * https:// | ||
< | < | ||
[diff] | [diff] | ||
tool = kdiff3 | tool = kdiff3 | ||
[difftool " | [difftool " | ||
- | path = <path to kdiff3 | + | path = /usr/bin/kdiff3 |
[difftool] | [difftool] | ||
prompt = false | prompt = false | ||
줄 73: | 줄 85: | ||
keepTemporaries = false | keepTemporaries = false | ||
[mergetool " | [mergetool " | ||
- | path = <path to kdiff3 | + | path = /usr/bin/kdiff3 |
</ | </ | ||
- | ===== Git Diff -> meld ===== | + | ===== Git Difftool/ |
- | * http:// | + | * http:// |
- | * '' | + | * [[https://stackoverflow.com/a/34119867/1051402|Git difftool의 기본과 meld설정에 대한 자세한 설명]] |
- | #!/bin/sh | + | * [[http://blog.marcinchwedczuk.pl/ |
- | meld " | + | |
- | </code> | + | |
- | * add to '' | + | |
- | git config | + | |
- | </ | + | |
- | ===== Git Mergetool -> meld ===== | + | < |
- | * 전역 설정 <code sh> | + | # ------------------ M E R G E ------------------------- |
- | git config | + | [merge] |
+ | tool = meld | ||
+ | |||
+ | [mergetool " | ||
+ | cmd = meld --auto-merge \" | ||
+ | trustExitCode | ||
+ | |||
+ | [mergetool] | ||
+ | # don't ask if we want to skip merge | ||
+ | prompt | ||
+ | |||
+ | # don't create backup | ||
+ | | ||
+ | |||
+ | # ------------------ D I F F ------------------------- | ||
+ | [diff] | ||
+ | guitool = meld | ||
+ | |||
+ | [difftool " | ||
+ | cmd = meld \" | ||
</ | </ | ||
===== Git Diff -> vimdiff ===== | ===== Git Diff -> vimdiff ===== | ||
+ | * [[vim: | ||
* [[http:// | * [[http:// | ||
* '' | * '' | ||
줄 105: | 줄 132: | ||
* 설정의 external 무시하고 vim을 pager로< | * 설정의 external 무시하고 vim을 pager로< | ||
git diff --no-ext-diff -w | vim -R - | git diff --no-ext-diff -w | vim -R - | ||
+ | </ | ||
+ | * 그냥 명령을 직접 주기< | ||
+ | git diff -y -t vimdiff | ||
+ | # -y 는 no prompt | ||
</ | </ | ||
===== .gitignore ===== | ===== .gitignore ===== | ||
줄 130: | 줄 161: | ||
</ | </ | ||
- | ===== Git hook ===== | ||
- | * 기본적으로는 '' | ||
- | * 2.9 부터는 '' | ||
- | * 전역 Hook 파일 설정 (git 2.9+)< | ||
- | git config --global core.hooksPath / | ||
- | </ | ||
- | * [[https:// | ||
===== Commit Template ===== | ===== Commit Template ===== | ||
줄 229: | 줄 253: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
- | * [[http:// | + | * [[git:tig|tig]] 콘솔 기반 리포지토리 브라우저 |
* [[https:// | * [[https:// | ||
* [[http:// | * [[http:// | ||
줄 236: | 줄 260: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * [[https:// | ||
===== 빈 디렉토리 (empty directory) 유지 ===== | ===== 빈 디렉토리 (empty directory) 유지 ===== | ||
줄 252: | 줄 277: | ||
* commit 한다. | * commit 한다. | ||
+ | ===== shallow update not allowed ===== | ||
+ | * '' | ||
+ | * [[https:// | ||
+ | |||
+ | <code sh> | ||
+ | git fetch --unshallow origin | ||
+ | |||
+ | # 이후에 | ||
+ | git push | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== git blame ignore ===== | ||
+ | * [[https:// | ||
+ | * bulk 갱신, 포맷팅 변경 같은 경우 blame 에 자꾸 나오면 오히려 불편함. 특정 commit 을 blame에서 제외하기 | ||
+ | * [[https:// | ||
+ | |||
+ | ===== submodules ===== | ||
+ | * git 에서 다른 리포지토리를 디렉토리로 링크할 수 있음. | ||
+ | * https:// | ||
+ | * submodule 이 있는 리포지토리를 올바로 clone 하려면 '' | ||
+ | |||
+ | <code sh> | ||
+ | git clone --recursive < | ||
+ | </ | ||
===== 문제 해결 ===== | ===== 문제 해결 ===== | ||
줄 282: | 줄 332: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// |