git

jooooo·2022년 11월 29일
0
post-custom-banner

it Command

  1. git init : 저장소 생성

    # 현재 디렉토리를 Git 저장소로 생성
    # .git 폴더(숨김 폴더)가 생성됨
    git init
  2. git status : 현재 상태 확인

    git status
    
    # 변경된 파일명이 빨간색으로 보일 경우 Working Directory 상태
    # 변경된 파일명이 초록색으로 보일 경우 Staging Area 상태
    # nothing to commit, working tree clean의 경우 변경 내용이 없음을 나타냄
  3. git diff : 파일의 변경내용 비교하기

    # difftool을 사용하여 파일의 변경내용을 비교
    git config --global -e
    [diff]
    	tool = vscode
    [difftool "vscode"]
    	cmd = code --wait --diff $LOCAL $REMOTE
    
    git difftool
  4. git add : 파일의 변경 사항을 index(Staging Area)에 추가

    # 특정 파일을 Staging Area에 추가하기
    git add <file>
    # 변경 내용이 있는 모든 파일을 Staging Area에 추가하기
    git add *
    git add .
  5. git restore <file> : 작업 내용 취소

    # Working Directory에 변경 내용을 취소할 경우(Tracked File) 
    git restore <file>
    # Staging Area에 변경 내용을 Working Directory로 되돌릴 경우
    git restore --staged <file>
  6. git commit -m  : 파일의 변경 사항에 대한 이력 생성

    # 마지막 커밋 메시지 수정
    git commit --amend "수정할 커밋 메시지"
    또는
    git commit --amend
    # VS Code에 COMMIT_EDITMSG 창에 수정할 커밋 메시지 입력 후 창 닫기
  7. git rebase -i <hash>  : 특정 커밋 수정

    # pick -> reword로 수정한 후 커밋 메시지 수정
    reword <hash> "수정할 커밋 메시지"
  8. git log : 커밋 이력 확인

    # Log를 한줄, 그래프 형태로 보기
    git log --oneline
    git log --oneline --graph
  9. git checkout HEAD~ : 과거 커밋 이력 확인

    # 이전 2개의 커밋으로 이동
    git checkout HEAD~2
    # 특정 커밋으로 이동
    git checkout <hash>
    # 마지막 커밋으로 복귀
    git checkout main
  10. git reset HEAD~ : 이전 상태로 복원(이력 제거)

    # 이전 2개의 커밋으로 돌아가기 (--mixed : default)
    # 커밋 기록은 삭제되지만 Working Directory에 변경 사항은 남김
    git reset HEAD~2
    # 커밋 기록은 삭제되지만 Working Directory와 Staging Area에 변경 사항은 남김
    git reset --soft HEAD~2
    # HEAD~2 커밋으로 복원되며 이후에 변경된 커밋 기록은 모두 삭제
    git reset --hard HEAD~2
  11. git branch : 브랜치 생성 및 이동

    # likelion이라는 브랜치를 생성
    git branch likelion
    # likelion이라는 브랜치로 이동
    # checkout 명령이 여러 기능을 가지고 있기때문에 Git 2.23.0 버전에서는 
    # 브랜치 이동을 위한 기능으로 switch 명령이 추가 됨 (checkout, switch 모두 사용 가능)
    git checkout likelion
    git switch likelion
    # main 브랜치로 복귀
    git switch main
    # likelion 브랜치를 main 브랜치로 병합
    git merge likelion
    # likelion 브랜치 삭제
    git branch -d likelion
  12. git reset HEAD~ : 이전 상태로 복원(이력 제거)

    # 이전 2개의 커밋으로 돌아가기 (--mixed : default)
    # 커밋 기록은 삭제되지만 Working Directory에 변경 사항은 남김
    git reset HEAD~2
    # 커밋 기록은 삭제되지만 Working Directory와 Staging Area에 변경 사항은 남김
    git reset --soft HEAD~2
    # HEAD~2 커밋으로 복원되며 이후에 변경된 커밋 기록은 모두 삭제
    git reset --hard HEAD~2
  13. git remote : 리모트(Remote) 브랜치

    # 리모트 브랜치 조회
    git remote -v
    # 리모트 브랜치 추가
    git remote add origin <https://github.com/ID/REPOSITORY>
    # 리모트 브랜치 삭제
    git remote remove origin
    git remote rm origin
  14. git push : 로컬의 변경 이력을 리모트로 전송

    # 로컬의 main 브랜치의 변경 이력을 리모트 main 브랜치로 보내기
    git push origin main
  15. git pull : 리모트의 내용을 로컬에 반영 (fetch + merge)

profile
INFP🖐
post-custom-banner

0개의 댓글