사용자 도구

사이트 도구


git

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
git [2020/10/10 17:07]
kwon37xi
git [2021/02/18 11:09]
kwon37xi [Git 관련 애플리케이션]
줄 58: 줄 58:
   * ''git diff'' 명령에서 실행하는 것이 ''[diff]의 external'' 항목, ''git difftool''에서 실행하는 것이 ''[diff]의 tool'' 항목이다.   * ''git diff'' 명령에서 실행하는 것이 ''[diff]의 external'' 항목, ''git difftool''에서 실행하는 것이 ''[diff]의 tool'' 항목이다.
   * ''diff''는 기본값 그대로 두고 ''difftool''을 바꾸자. ''diff''는 pager 를 끼고 실행되는데, GUI diff 를 사용할 경우 pager가 중간에 끼어든다. "pager = " 설정으로 페이저를 없앨 수 있지만, log 등을 볼 때 페이저가 없어서 문제가 된다.   * ''diff''는 기본값 그대로 두고 ''difftool''을 바꾸자. ''diff''는 pager 를 끼고 실행되는데, GUI diff 를 사용할 경우 pager가 중간에 끼어든다. "pager = " 설정으로 페이저를 없앨 수 있지만, log 등을 볼 때 페이저가 없어서 문제가 된다.
 +  * ''-t <difftool/mergetool이름>'' : diff/mergetool을 여러개 지정하고 원하는 이름의 tool 호출
  
 +<code sh>
 +git difftool -t meld
 +git mergetool -t kdiff3
 +</code>
 ===== Git Diff/Merge -> kdiff3 ===== ===== Git Diff/Merge -> kdiff3 =====
   * [[https://docs.kde.org/trunk5/en/extragear-utils/kdiff3/git.html|Using KDiff3 as a Git Diff and Merging Tool]]   * [[https://docs.kde.org/trunk5/en/extragear-utils/kdiff3/git.html|Using KDiff3 as a Git Diff and Merging Tool]]
-  * 잘 작동 안함.+  * 파일 삭제 diff시에 잘 작동 안함
 +    * https://github.com/KDE/kdiff3/blob/master/ChangeLog :  Version 1.8.3 부터 해결됨.
 <code> <code>
 [diff] [diff]
줄 111: 줄 117:
  
 ===== Git Diff -> vimdiff ===== ===== Git Diff -> vimdiff =====
 +  * [[vim:vimdiff|vimdiff]]
   * [[http://technotales.wordpress.com/2009/05/17/git-diff-with-vimdiff/|Git Diff with Vimdiff]]   * [[http://technotales.wordpress.com/2009/05/17/git-diff-with-vimdiff/|Git Diff with Vimdiff]]
   * ''~/.gitconfig''<code>   * ''~/.gitconfig''<code>
줄 124: 줄 131:
   * 설정의 external 무시하고 vim을 pager로<code sh>   * 설정의 external 무시하고 vim을 pager로<code sh>
 git diff --no-ext-diff -w | vim -R - git diff --no-ext-diff -w | vim -R -
 +</code>
 +  * 그냥 명령을 직접 주기<code sh>
 +git diff -y -t vimdiff
 +# -y 는 no prompt
 </code> </code>
 ===== .gitignore ===== ===== .gitignore =====
줄 248: 줄 259:
   * [[https://live.gnome.org/giggle|Giggle]] GTK+ Git 관리   * [[https://live.gnome.org/giggle|Giggle]] GTK+ Git 관리
   * [[https://live.gnome.org/Gitg|Gitg]] GTK+ 리포지토리 브라우저   * [[https://live.gnome.org/Gitg|Gitg]] GTK+ 리포지토리 브라우저
-  * [[http://jonas.nitro.dk/tig/|tig]] 콘솔 기반 리포지토리 브라우저+  * [[git:tig|tig]] 콘솔 기반 리포지토리 브라우저
   * [[https://github.com/FredrikNoren/ungit|ungit]] 웹기반 Git 인터페이스   * [[https://github.com/FredrikNoren/ungit|ungit]] 웹기반 Git 인터페이스
   * [[http://gitignore.io/|gitignore.io]] 자동으로 ''.gitignore'' 파일을 생성해준다.   * [[http://gitignore.io/|gitignore.io]] 자동으로 ''.gitignore'' 파일을 생성해준다.
줄 255: 줄 266:
   * [[http://yobi.io/|Yobi]] Git 지원 협업 프로젝트 관리 툴   * [[http://yobi.io/|Yobi]] Git 지원 협업 프로젝트 관리 툴
   * [[http://www.maketecheasier.com/6-useful-graphical-git-client-for-linux/|6 Useful Graphical Git Client for Linux]]   * [[http://www.maketecheasier.com/6-useful-graphical-git-client-for-linux/|6 Useful Graphical Git Client for Linux]]
 +  * [[https://gogs.io|gogs]] self hosted git server
  
 ===== 빈 디렉토리 (empty directory) 유지 ===== ===== 빈 디렉토리 (empty directory) 유지 =====
줄 270: 줄 282:
   * ''git ls-files %%--%%stage''로 다시 확인해보면 **100755**로 변경됨.   * ''git ls-files %%--%%stage''로 다시 확인해보면 **100755**로 변경됨.
   * commit 한다.   * commit 한다.
 +
 +===== shallow update not allowed =====
 +  * ''clone --depth=x'' 로 클론한 로컬 리포지토리에서 수정해서 push 하면 ''! [remote rejected] master -> master (shallow update not allowed)'' 오류가 발생한다.
 +  * [[https://stackoverflow.com/questions/28983842/remote-rejected-shallow-update-not-allowed-after-changing-git-remote-url|! [remote rejected] master -> master (shallow update not allowed)]]
 +
 +<code sh>
 +git fetch --unshallow origin
 +
 +# 이후에
 +git push
 +</code>
  
  
git.txt · 마지막으로 수정됨: 2023/10/14 13:47 저자 kwon37xi