A Simple Developer's Life

Git Basic - 자주 사용하는 Git Command 모음

$ git init
로컬 레포지토리 초기화

$ git add .
로컷에서 신규 추가된 파일 모두 tracked files로 추가

$ git commit -m "Init"
로컬에서 변경사항 커밋

$ git commit -am "Init"
로컬에서 변경파일 추가 후 변경사항 한 번에 커밋

$ git remote add origin {URL}
원격지 URL 추가

$ git remote set-url origin {URL}
원격지 URL 설정

$ git push -u --force origin master
원격지 master로 강제 푸시

$ git push origin master
원격지 master로 푸시

$ git push --set-upstream origin master
현재 브랜치와 마스터를 합병 후 푸시

$ git config --global core.autocrlf true
줄 바꿈 문자로 LF를 사용하는 Linux와 Mac에서는 Checkout할 때 Git이 LF를 CRLF로 변환할 필요가 없다. 게다가 우연히 CRLF가 들어간 파일이 저장소에 들어 있어도 Git이 알아서 고쳐주면 좋을 것이다. core.autocrlf 값을 input으로 설정하면 커밋할 때만 CRLF를 LF로 변환한다.

$ git config --global core.autocrlf input
이 설정을 이용하면 윈도에서는 CRLF를 사용하고 Mac, Linux, 저장소에서는 LF를 사용할 수 있다.

$ git config -l
계정정보 확인

$ git commit --amend
이전 커밋 수정

$ git clone --mirror https://ogoons@bitbucket.org/ogoons/asoto.git
완전 백업

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
계정정보 수정

$ git rebase -i HEAD~2
마지막 2개의 커밋 합치기 (주의: 이미 원격지에 푸시된 커밋을 rebase 시 중복 커밋이 발생함!)

$ git stash save <STASH_NAME>
워킹 디렉토리 잠시 복사해두기 (책갈피)

$ git stash pop
복사해 둔 작업 복원 후 복사본 제거

$ git stash apply
복사해 둔 작업 복원

$ git clean -f -d
워킹 디렉토리 삭제 (추적 중이지 않은 모든 정보 제거)

$ git clean -d -n
워킹 디렉토리 삭제 시 어떤 일이 발생되는지 시뮬레이션

$ git checkout --force
마지막 commit 상태로 되돌리기

$ git checkout <FILE_NAME>
특정 파일을 최종 커밋 상태로 되돌리기

$ git reset HEAD~
원격에 올리지 않은 마지막 commit 취소

$ git merge --abort
실패한 merge를 취소

$ git push --delete origin <TAG_NAME>
원격에 푸시한 태그 삭제

$ git rm <FILE_NAME>
원격, 로컬 저장소 파일 삭제

$ git rm -r --cached <FILE_NAME>
원격 저장소 파일 삭제 (디렉토리 재귀)

$ git checkout -- <FILE_NAME>
수정한 변경사항 버리기

$ git restore .
모든 변경사항 버리기