담백로그

[Git] 자주 사용하는 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 .
모든 변경사항 버리기

$ 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
머지된 내용을 원격에 업로드