일반적으로 자주 사용하는 명령어
$ 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 .
모든 변경사항 버리기
$ git pull [alias] pull/123/head:pr-123
PR 브랜치 가져오기 (마지막 pr-123 은 로컬에 생성될 브랜치 이름을 지정)
$ git fetch [alias]
alias 에 해당하는 또는 접두어로 갖는 브랜치들의 업데이트
$ git fetch [alias] [branch]
특정 브랜치만을 업데이트
포크된 저장소에 원본 저장소 내용으로 업데이트 하기 위한 절차
$ git remote add upstream <REPOSITORY_URL>
포크된 저장소에 upstream 이란 이름으로 원본 저장소 추가
$ git fetch upstream
원본 저장소 내용을 fetch
$ git merge upstream/main
원본 저장소 내용을 현재 저장소에 머지
$ git push
머지된 내용을 원격에 업로드