git을 사용하지만 명령어는 늘 헷갈려서 검색해고 있다. 그래서 그냥 velog에 정리하려한다.
git init
git 초기화, 새로운 저장소 생성
git clone <git_path>
path 에서 코드가져오기 (다운로드, 복제)
git status
현재 git 프로젝트 파일의 상태를 보여준다.
git branch
브랜치 목록
git branch <브랜치 이름>
새 브랜치 생성
git branch -d <브랜치 이름>
브랜치 삭제
git switch <브랜치 이름>
브랜치 변경
git restore <파일명>
unstaged 상태의 변경 파일을 원상복구
git restore --staged <파일명>
staging 된 파일(git add)을 unstaged 상태로 되돌림
git add .
모든 변경 내용을 스테이징 영역에 추가
git add <파일명>
파일명의 변경 내용을 스테이징 영역에 추가
git commit -m "message"
변경된 내용 저장
git push <저장소명> <브랜치명>
로컬 저장소(브랜치)의 코드 변경 이력들을 원격 저장소로 전송
git checkout
브랜치 변경, 복원하는 명령어지만 Git 2.23 부터 checkout을 대신할 switch, restore 이 도입되어서 checkout 대신 switch, restore 명령어 사용하자
git fetch
원격 저장소에서 데이터 가져오고 병합 x
git merge <브랜치명>
브랜치 병합
git merge --abort
merge 하기 전으로 되돌림 (conflict 발생 시 취소)
git pull
원격 저장소에서 데이터 가져오고 병합 (fetch + merge)
git reset
커밋 취소 (되돌린 버전 이후의 버전이력이 사라짐)
- git reset --soft : commit을 취소하고 해당 파일들은 스테이징 영역에 보존
- git reset --hard : commit을 취소하고 해당 파일들의 변경점 삭제
- git reset, git reset --mixed : commit을 취소하고 해당 파일들은 unstaging
- git reset -merge : 바로 이전 병합 취소
예시
- git reset HEAD^ : 현재부터 commit 1개 이전으로 복원
- git reset HEAD~6 : 현재부터 commit 6개 이전으로 복원
git revert
지정한 커밋으로 되돌림 (되돌린 버전 이후의 버전이력이 남음)
- git revert <커밋해시, 태그명> : 특정 태그나 커밋으로 되돌리고 커밋
- git revert <커밋해시, 태그명> -n : 특정 커밋으로 되돌리지만 커밋은 안하고 staging 상태
git stash
현재 작업중인 변경점을 임시 저장하거나 불러올 수 있다. (다른 branch로 가서 작업 하기전에 사용하면 유용)
- git stash list : stash 리스트 확인
- git stash save (이름) : (이름) 이라는 이름으로 현재 변경점 저장
- git stash apply (이름) : (이름) stash 불러와 적용
- git stash pop : 가장 최근의 stash 가져와 적용하고 삭제
- git stash drop : 가장 최근의 stash 제거
- git stash drop (이름) : (이름) stash 제거
git diff
마지막으로 커밋된 소스와 현재 unstaged 상태의 변경점과 비교
git diff --staged
마지막으로 커밋된 소스와 현재 staging 된 변경점과 비교
git log
commit 목록 확인
git show
commit의 상세 정보 확인
git remote -v
설정된 원격 저장소 보기