#kimtheho
깃 충돌난 file 목록 확인하기:
깃 메시지 한영 사전:
관계 없는 커밋 내역의 병합을 거부합니다(refusing to merge unrelated histories) 조치:
git pull origin
Git remote 저장소 아이디와 패스워드 입력:
git push https://username:password@myrepository.biz/file.git --all
OSX에서 source tree로 push 사용할 때 설정해줘야하는 설정 값:
git config —global credential.helper osxkeychain
원격 저장소 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 이름보기
| $ git 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 삭제하기 예)
| git push origin -d dev |
push할 원격서버를 여러개 설정하기
| git remote set-url --add --push origin http://domain.com/xxx.git |
일반 git을 bare 저장소로 변경하기
| https://stackoverflow.com/questions/2199897/how-to-convert-a-normal-git-repository-to-a-bare-one 결론만 말하면 .git 폴더만 복사해서 bare로 설정해주면 끝이다. $ cd repo $ mv .git ../repo.git # renaming just for clarity $ cd .. $ rm -fr repo $ cd repo.git $ git config --bool core.bare true |
git commit 수정
| git commit --amend |
Git 특정 파일 변경 이력 보기
| git log -p --follow --stat -- README.md # 변경 내용, 파일 이름 변경 추적, 통계 정보 포함 |
Git 계정 지우기, Git 자격증명 해제
| git config --global --unset credential.helper |
Git Log를 한번에 보는 방법
| git --no-pager log |
되돌리기
1. 커밋하지 않은 변경 사항 되돌리기
작업 디렉토리(Working Directory)에서 수정한 내용을 아직 커밋하지 않은 경우, 다음과 같은 방법으로 되돌릴 수 있습니다.
특정 파일 되돌리기
git restore [파일명] 또는 이전 버전의 Git에서는 다음 명령어를 사용합니다.
git checkout -- [파일명] 이 명령어는 특정 파일의 수정 사항을 마지막 커밋 상태로 되돌립니다.
모든 변경 사항 되돌리기
git restore . 또는
git checkout -- . (끝에 쩜 있음)
현재 디렉토리의 모든 수정 및 추가된 파일을 마지막 커밋 상태로 되돌립니다.
추가한 파일(Untracked file) 삭제하기
새로 추가했지만 아직 git add 하지 않은 파일을 한 번에 삭제하려면 다음 명령어를 사용합니다.
git clean -fd -f: 삭제를 강제합니다.
-d: 디렉토리까지 함께 삭제합니다.
2. 커밋한 변경 사항 되돌리기 (원격 저장소에 푸시하지 않은 경우)
로컬 저장소에 커밋은 했지만 아직 원격 저장소(예: GitHub)에 푸시하지 않은 경우, 커밋 자체를 되돌릴 수 있습니다.
가장 최근 커밋 되돌리기
git reset HEAD^ 이 명령어는 가장 최근의 커밋을 취소하고, 해당 커밋에서 변경되었던 내용들은 작업 디렉토리에 그대로 남겨둡니다. (Staged 상태도 해제됩니다.)
--soft: 커밋만 취소하고 변경 내용은 Staged 상태로 유지합니다.
--hard: 커밋을 취소하고 해당 변경 내용을 작업 디렉토리에서 완전히 삭제합니다. (주의: 복구가 어렵습니다.)
특정 커밋으로 되돌아가기
git reset [커밋 해시] 특정 커밋 지점으로 프로젝트의 상태를 되돌립니다. [커밋 해시]는 git log 명령어로 확인할 수 있습니다.
3. 원격 저장소에 푸시한 변경 사항 되돌리기
이미 원격 저장소에 푸시한 커밋은 다른 팀원들과 공유되었을 가능성이 높기 때문에 git reset을 사용하면 이력이 꼬일 수 있습니다. 이 경우에는 되돌렸다는 새로운 커밋을 만드는 git revert를 사용하는 것이 안전합니다.
특정 커밋의 변경 내용 되돌리기
git revert [커밋 해시] 이 명령어는 [커밋 해시]에 해당하는 커밋에서 적용된 변경 사항을 되돌리는 새로운 커밋을 생성합니다. 기존의 커밋 기록은 그대로 유지됩니다.
명령을 실행하면 커밋 메시지를 작성하는 편집기 창이 나타나며, 저장 후 종료하면 새로운 되돌리기 커밋이 생성됩니다. 이 새로운 커밋을 원격 저장소에 푸시(git push)하면 수정 사항이 반영됩니다.