#kimtheho
깃 충돌난 file 목록 확인하기:
깃 메시지 한영 사전:
관계 없는 커밋 내역의 병합을 거부합니다(refusing to merge unrelated histories) 조치:
git pull origin
원격 저장소 URL 수정하기:
git remote set-url origin http://192.168.2.203/something.git
원격 저장소 정보보기:
git remote -v
최신 걸로 덮어쓰기(복구가 불가 하오니 어쩔 수없을 때만 사용하시고, 반드시 백업 후 사용하세요!!! 리모트서버까지 영향을 줍니다):
'error: 병합 때문에 추적하지 않는 다음 작업 폴더의 파일을 덮어씁니다:' 와 같이 나온 경우, 덮어쓰기하고 싶을 때 사용
git fetch --all
git reset --hard origin/master
git log 시, 한글 깨짐
set LC_ALL=C.UTF-8
git config --global core.quotepath false
현재 branch 이름보기
or
| git branch --show-current |
특정 파일 보기
git log -p abc.txt
계정 저장하기
(보안은 중요하지 않고 매번 입력하기 귀찮을 때 사용. Windows가 아니라면 일반적으로 Git계정이 저장 되지 않음.)
$ git config credential.helper store 또는 $ git config --global credential.helper 'store --file ~/.my-credentials' |
git 디렉토리 대소문자 반영 안 되는 게 기본값. 폴더 대소문자 반영되도록 하기:
git config core.ignorecase false or git config --global core.ignorecase false |
git file 변경 내용 확인하기
| git diff HEAD example.txt |
.gitignore가 안 먹힐 때
git rm -rf --cached . git add . |
git 특정 상태로 변경하기
git checkout 4자리 이상 hash
git 특정 상태(커밋)끼리 비교하기
$ git diff {4자리 이상 hash 1} {4자리 이상 hash 2} <-중가로는 지우고해야 함.
원격 branch 삭제하기 예)
push할 원격서버를 여러개 설정하기
| git remote set-url --add --push origin http://domain.com/xxx.git |
일반 git을 bare 저장소로 변경하기
git commit 수정
Git 특정 파일 변경 이력 보기
| git log -p --follow --stat -- README.md # 변경 내용, 파일 이름 변경 추적, 통계 정보 포함 |
Git 계정 지우기, Git 자격증명 해제
| git config --global --unset credential.helper |
Git Log를 한번에 보는 방법
Git Log grep 방법
grep은 기본적으로 대소문자를 구분한다. 대소문자 구분 없이 검색하고 싶다면 -i 또는 --regexp-ignore-case 옵션을 함께 붙여준다.
여러 패턴 검색하기 (AND / OR)
- OR 조건 (A 또는 B 포함): --grep 옵션을 여러 번 사용하면 기본적으로 OR 조건으로 동작한다.
| git log --grep="feat" --grep="fix" |
- AND 조건 (A와 B 모두 포함): 모든 패턴이 포함된 커밋을 찾으려면 --all-match 옵션을 반드시 추가해야 한다.
| git log --grep="sidebar" --grep="bug" --all-match |
정규 표현식(Regex) 사용하기
기본적으로 브랜치 환경에 따라 POSIX 기본/확장 정규식을 지원한다. Perl 정규식(PCRE)의 강력한 패턴을 사용하고 싶다면 --perl-regexp(-P) 옵션을 조합할 수 있다.
# 숫자 4자리로 시작하는 커밋 메시지 찾기 git log --grep="^[0-9]{4}" --perl-regexp |
메시지 말고 "코드 내용"을 검색하고 싶다면?
--grep은 커밋 메시지만 검색한다. 만약 소스 코드 변경 사항(히스토리) 내부의 특정 텍스트를 찾고 싶다면 -S (픽스액스 옵션) 또는 -G (정규식)를 사용해야 한다.
-S (특정 문자열의 추가/삭제가 발생한 커밋 찾기):
| git log -S "fetchUserData" |
-G (변경 사항 중 정규식과 일치하는 커밋 찾기):
| git log -G "formatTime\(.*\)" |
Git 기본 에디터 변경
| git config --global core.editor "vim" |
되돌리기
1. 커밋하지 않은 변경 사항 되돌리기
작업 디렉토리(Working Directory)에서 수정한 내용을 아직 커밋하지 않은 경우, 다음과 같은 방법으로 되돌릴 수 있습니다.
로컬 저장소에 커밋은 했지만 아직 원격 저장소(예: GitHub)에 푸시하지 않은 경우, 커밋 자체를 되돌릴 수 있습니다.
3. 원격 저장소에 푸시한 변경 사항 되돌리기
이미 원격 저장소에 푸시한 커밋은 다른 팀원들과 공유되었을 가능성이 높기 때문에 git reset을 사용하면 이력이 꼬일 수 있습니다. 이 경우에는 되돌렸다는 새로운 커밋을 만드는 git revert를 사용하는 것이 안전합니다.