새로운 로컬 저장소를 생성하기
$ git init [project_name]
저장소 가져오기
## master 브랜치
$ git clone [url]
## 원하는 브랜치
$ git clone [url] -b [브랜치명]
변경(수정)된 staged 파일 보기
$ git diff
로그마다 변경 사항 확인
$ git log -p
명령 히스토리
$ git reflog
명령상태 복구
$ git reset --hard [돌아가고 싶은 sha1 번호]
브랜치 생성하기
$ git branch [브랜치 이름]
브랜치 목록 확인
## local 브랜치 확인
$ git branch
## remote 브랜치 확인
$ git branch -r
브랜치 변경하기
$ git checkout [브랜치 이름]
remote 브랜치 최신화
$ git fetch -p
브랜치 접속
## local 브랜치 접속
$ git checkout [브랜치 이름]
## remote 브랜치 접속
$ git checkout -t [브랜치 이름]
## 브랜치 만들면서 접속
$ git checkout -b [브랜치 이름]
브랜치 삭제하기
$ git branch -d [브랜치 이름]
## remote 브랜치 삭제
$ git push origin --delete [브랜치 이름]
## 유효하지 않은 remote 브랜치 삭제
$ git remote prune origin
또는
$ git remote update --prune
$ git stash
$ git stash pop
$ git stash list
## 가장 최근 stash를 가져와 적용
$ git stash apply [stash ID]
$ git stash drop [stash ID]
$ git status
저장소에 추가할 파일 선택(스테이징)
$ git add [파일명]
add 취소
## 모든 add 파일 취소
$ git reset
## 특정 add 파일 취소
$ git reset HEAD -- [파일명]
파일의 실제 변경사항 확정
$ git commit -m "[커밋 메시지]"
스테이징과 커밋, 메시지를 동시에 진행
$ git commit -am "message"
commit 메시지 수정
$ git commit --amend
push 후 commit 메시지 수정(택 1)
$ git commit --amend -m "원하는 변경 내용 입력 하기"
$ git push [remote 저장소명] [브랜치명] -f # 변경 내용 강제 push
$ git rebase -i HEAD~[거슬러 올라갈 커밋의 수]
사용 예시
$ git rebase -i HEAD~1
- 변경하길 원하는 커밋
i
로 입력모드에 진입- pick을 reword로 변경
- 편집창 빠져나가기 (
esc
>:wq
)
편집창을 빠져나가면 기존 커밋 메시지를 수정하는 창으로 전환됨- 기존 커밋 메시지를
i
로 입력모드에 들어가 변경- 편집창 빠져나가기(
esc
>:wq
)
## 변경 내용 강제 push
## 강제 push 해야 수정된 커밋 메시지 반영 가능
$ git push [remote 저장소명] [브랜치명] -f
또는
$ git push [remote 저장소명] [브랜치명] --force-with-lease
push 전 commit 취소
## commit을 취소하고 해당 파일들을 staged 상태로 워킹 디렉토리에 보존
$ git reset --soft "HEAD^"
## commit을 취소하고 해당 파일들을 unstaged 상태로 워킹 디렉터리에 보존. 즉, unstaged 상태
$ git reset ---mixed "HEAD^"
$ git config --global user.name "홍길동"
$ git config --global user.email "support@webisfree.com"
$ git config user.name
$ git config user.email
$ git config --unset --global user.name
$ git config --unset --global user.email
$ git config --list
$ git checkout [최상위 브랜치]
$ git pull
$ git checkout [작업 브랜치]
$ git merge
conflict 발생한 파일들 수정 후 add, commit, push
$ git remote -v
$ git remote add [저장소명] [url]
$ git remote rename [기존이름] [변경할이름]
$ git remote remove [저장소명]
또는
$ git remote rm [저장소명]