본문 바로가기
git

[git] 명령어 모음(commit, push, pull, fetch 등등)

by Junk_Seo 2023. 11. 7.
반응형

1. git 기본 명령어 모음

  • git을 자주 사용하는데, 자주 사용하지 않는 명령어의 경우에 다시 찾아봐야 하는 귀찮음이 있어서 여기에 정리합니다.

    1.1. git init

    • 로컬 Git 저장소를 만듭니다.
      ex) # git init

    1.2. git status

    • 현재 작업 중인 파일의 상태를 확인합니다.
      ex) # git status

    1.3. git add [-A] [<pathspec>...]

    • 현재 상태 추적, 파일의 변경 사항을 인덱스(Index)에 추가합니다.
    • Git은 커밋하기 전에 인덱스에 먼저 커밋할 파일을 추가합니다.
    • '-A' 옵션을 이용하여 전체 파일을 인덱스에 추가합니다.
      ex) # git add -A

    1.4. git commit [-m <msg>]

    • 로컬 저장소에 변경 이력을 저장합니다.
    • 현재 상태 저장하고 인덱스에 추가된 변경 사항을 이력에 추가합니다.
    • '-m' 옵션을 이용하여 첫 번째 이력에 대한 메시지 작성
      ex) $ git commit -m "v1 commit"

    1.5. git push <저장소명> <브랜치명>

    • commit으로 로컬 저장소에 저장된 변경 이력을 원격 저장소로 보내기 위해 push 명령어를 사용합니다.
    • 원격 저장소에 처음으로 push 하는 경우 "--set-upstream"을 추가해야 합니다.
      • git push --set-upstream origin <브랜치명> : 원격 브랜치와 로컬 브랜치를 연결하고 로컬 브랜치가 원격 브랜치를 추적하도록 설정합니다.
      • git push -u origin <브랜치명>와 의미가 동일합니다. 

    1.6. git pull <origin> <브랜치명>

    • 원격 저장소의 최신 변경 사항을 가져와 로컬 브랜치를 업데이트하는 명령어입니다.
    • 원격 저장소로부터 변경 사항을 가져와 로컬 브랜치와 병합합니다.

    1.7. git fetch <origin>

    • 원격 저장소의 최신 변경 사항을 로컬 브랜치로 가져와 확인할 수 있습니다.
    • git pull과 다르게 로컬 브랜치를 업데이트하지 않습니다.

    1.8. git remote

    • 원격 저장소를 관리하는 명령어입니다.
    • git remote : 원격 저장소의 이름을 출력합니다.
    • git remote -v : 원격 저장소의 이름과 경로 URL을 출력합니다.
    • git remote add <원격 저장소 이름> <경로 URL> : 새로운 원격 저장소를 추가합니다.
    • git remote show <원격 저장소 이름>: 원격 저장소의 branch 정보 등 상세 정보를 출력합니다. 
    • git remote rm <원격 저장소 이름> : 원격 저장소를 제거합니다.

    1.9. git rm [--cached] [file name]

    • 파일을 삭제합니다.
    • "--cached" 옵션을 사용할 경우 로컬 디렉터리에서는 파일을 유지하고 원격 저장소의 파일만 삭제할 수 있습니다.
    • 삭제 후 commit을 해야 합니다.

    1.11. git mv [source] [destination]

    • git에 저장된 파일을 이동시키거나 이름을 변경할 때 사용합니다.

    1.10. git log  [<option>] [<revision range>] [[--] <path>...]

    • git의 로그 정보를 확인합니다.
      ex) $ git log

    1.11. git reset  [<commit>] [--soft | --mixed [-N] | --hard | --merge] | --keep]

    • 특정 커밋까지 이력을 초기화합니다. 바로 전, 또는 n번 전까지 작업했던 내용을 취소할 수 있습니다.
      작업한 내용이 필요 없어질 때 사용합니다. 
    • 이력이 지워지기 때문에 주의해야 합니다. 

    1.12. git revert <commit>...

    • 특정 커밋을 취소하는 새로운 커밋을 만듭니다.
    • 이력은 남겨두고 원하는 시점으로 돌아간다. 즉, 이전의 commit 내역을 남겨두고 새로운 commit을 생성하면서 과거로 돌아가게 된다.

    1.13. git checkout

    • 브랜치 변경 및 워킹 트리의 파일을 복원한다. 
    • 2.23.0 버전부터 checkout 기능을 switch와 restore을 통해 각각 분리하였다.
    • 원격 저장소의 브랜치를 로컬 브랜치로 가져올 때 '-t' 옵션을 사용하면 원격 브랜치의 이름을 로컬 브랜치의 이름으로 사용합니다.
    • ex) # git checkout -t <원격 브랜치 명>

    1.14. git switch

    • 브랜치를 변경한다.
    • '-c' 옵션은 브랜치 생성과 브랜치 이동을 한 번에 수행한다.

    1.15. git restore

    • 작업 중인 파일을 되돌린다. 
    • 작업 중인 파일 중 기존 마지막 커밋의 상태로 되돌리고자 할 때 사용한다.

    1.16. git branch  

    • 브랜치를 관리하는 명령어
      '-a' : 원격/로컬 모든 저장소의 브랜치 확인
      '-r' : 원격 저장소의 브랜치 확인
      '-v' : 브랜치의 마지막 커밋 메시지 확인
    • 브랜치 생성 : # git branch [브랜치 명]
    • 브랜치 이동 : # git switch [브랜치 명]
    • 브랜치 삭제 : # git branch -d [브랜치 명]
    • 원격 브랜치 삭제 : # git push origin --delete [브랜치 명]
    • 생성한 브랜치 원격 저장소에 push 
        # git switch test
        # git push --set-upstream origin test (# git push -u origin test 명령어와 동일)
        (로컬 저장소를 원격 저장소에 처음 push 할 때는 --set-upstream 옵션을 줘야 한다. 그래야 tracking 정보가 성정 되기 때문)

    1.17. git merge

    • 브랜치 합치기

    1.18. git config

    • # git config --global user.name [이름]
    • # git config --global user.email [이메일]
    • # git config --list 
    • git config로 설정한 내용 삭제 방법
    • git config [--global] --unset [설정]
    • # git config --global core.autocrlf false //설정
    • # git config --global --unset core.autocrlf //삭제

    1.19. git 계정 정보 저장하기

    • # git config --global credential.helper store
    • 해당 명령을 실행하면 로그인 정보 입력 후 이후 입력을 요청하지 않는다.

2. git 추가 사항

    2.1. 원격 저장소와 연결한 뒤 로컬 저장소로 가져오기

    • git init
    • git remote add origin <경로 URL>
    • git fetch
    • git remote -v
    • git branch -r
    • git checkout -t origin/develop

    2.2. 원격 브랜치 동기화

    • git 브랜치를 GUI로 삭제 처리한 경우 해당 로컬 저장소 커맨드라인에서 삭제된 브랜치가 보이는 경우가 존재함
    • 다음 명령어를 사용하여 로컬과 원격 브랜치를 동기화한다.
    • # git fetch --all --prune  

    2.3. Windows에서 텍스트 파일 git 업로드, 다운로드 시 개행문자가 변경되는 현상

    • 개행 문자의 종류는 다음과 같습니다.
      • CR + LF : Windows에서 사용되는 개행문자 (2 Byte)
      • LF : Linux/Unix 에서 사용되는 개행문자 (1 Byte)
    • Windows에서 텍스트 파일을 생성하면 개행문자는 CR + LF가 되지만 해당 텍스트 파일을 Git에 업로드(Push)하면 Git 원격저장소에는 개행문자가 LF로 변경되어 업로드됩니다.
    • Windows에서 해당 텍스트 파일을 다운로드(Pull)를 하면 개행문자가 CR + LF로 변경되어 Windows 로컬에 저장된다.
    • 하지만 해당 텍스트 파일을 Linux에서 다운로드(Pull) 하는 경우 개행문자를 LF 그대로 로컬에 저장된다.
    • git 원격 저장소에 개행문자 저장 시 자동으로 변경되지 않게 하려면 다음을 설정합니다.
      • git config --global core.autocrlf false
반응형