[git] 명령어 정리

joyful·2022년 6월 11일
0

git

목록 보기
2/5
post-custom-banner

Git command

1. 기본 사용법

  • 새로운 로컬 저장소를 생성하기

    $ git init [project_name]
  • 저장소 가져오기

    ## master 브랜치
    $ git clone [url]
    
    ## 원하는 브랜치
    $ git clone [url] -b [브랜치명]
  • 변경(수정)된 staged 파일 보기

    $ git diff
  • 로그마다 변경 사항 확인

    $ git log -p
  • 명령 히스토리

    $ git reflog
  • 명령상태 복구

    $ git reset --hard [돌아가고 싶은 sha1 번호]

2. branch

  • 브랜치 생성하기

    $ 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

3. stash

  • 변경사항 임시저장
    $ git stash
  • 임시 저장된 변경사항 복원
    $ git stash pop
  • 임시저장 목록 확인
    $ git stash list
  • stash 적용
    ## 가장 최근 stash를 가져와 적용
    $ git stash apply [stash ID]
  • stash 삭제
    $ git stash drop [stash ID]

4. status

  • 변경된 파일 상태 확인
    $ git status

5. add

  • 저장소에 추가할 파일 선택(스테이징)

    $ git add [파일명]
  • add 취소

    • 파일 상태를 Unstage로 변경
    ## 모든 add 파일 취소
    $ git reset
    
    ## 특정 add 파일 취소
    $ git reset HEAD -- [파일명]

6. commit

  • 파일의 실제 변경사항 확정

    $ 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 이용
      $ git rebase -i HEAD~[거슬러 올라갈 커밋의 수]
      • 사용 예시

        $ git rebase -i HEAD~1
        1. 변경하길 원하는 커밋 i로 입력모드에 진입
        2. pick을 reword로 변경
          gitcommit
        3. 편집창 빠져나가기 (esc > :wq)

          편집창을 빠져나가면 기존 커밋 메시지를 수정하는 창으로 전환됨
        4. 기존 커밋 메시지를 i로 입력모드에 들어가 변경
        5. 편집창 빠져나가기(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^"

7. Git config 설정

  • 사용자 정보 입력
    $ 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

8. Git conflict 해결

$ git checkout [최상위 브랜치]
$ git pull
$ git checkout [작업 브랜치]
$ git merge

conflict 발생한 파일들 수정 후 add, commit, push 

9. remote 저장소

  • 정보 확인
    $ git remote -v
  • 추가
    $ git remote add [저장소명] [url]
  • 저장소명 변경
    $ git remote rename [기존이름] [변경할이름]
  • 연결 삭제
    $ git remote remove [저장소명]
    또는
    $ git remote rm [저장소명]
profile
기쁘게 코딩하고 싶은 백엔드 개발자
post-custom-banner

0개의 댓글