git command 정리

jihyelee·2023년 12월 19일
0

configuration 관련

  • git config --list
    • configuration 확인
  • git config --global -e
    • 에디터를 열어 확인
  • git config --global core.editor "code"
    • code .로 원하는 에디터 연결 가능. 예를 들어 visual studio code에 연결한다면 VScode에서 config 수정 가능
  • git config --global core.editor "coder --wait"
    • 에디터에서 편집이 끝날 때까지 다른 명령어 실행 X
  • git config --global user.name "이름"
    • github의 이름(아이디) 연결
  • git config --global user.email "메일"
    • github의 이메일 연결
  • git config --global user.password "비밀번호"
    • 깃헙에서 본인의 토큰을 발급받을 수 있는데, 이를 비밀번호로 사용
    • name, email, password 등이 제대로 작성되어 있어야 remote-local 연결 가능
  • git config --global core.autocrlf input
    • 개행(new lline) 시에 윈도우의 경우 text\r\n이 들어가고 맥에서는 text\n이 들어가는데, 이처럼 줄바꿈 문자열이 다르기 때문에 이를 수정하기 위해 해당 명령어 사용
  • git config --global alias.st status
    • git status에 대한 alias 설정

Git Workflow

Local

  • working directory(untracked, tracked(unmodified, modified)), staging area, .git directory
  • commit
    • staging area -> .git directory
    • 커밋 시 버전에 관련한 메시지, author, 날짜와 시간 등등 활용해 버전관리 가능
  • checkout
    • .git directory -> working directory

Remote

  • push
    • local to remote
  • pull
    • remote to local

local 관련 자주 사용하는 명령어

  • git init
    • git 초기화 (master branch 생성)
  • git status
    • git 상태 확인
  • git status -s
    • 짧은 버전으로 git 상태 확인
  • git add
    • working directory에서 git이 추적할 수 있는 staging area로 옮기기 위해 사용
    • git add한 파일을 수정하면 수정사항은 staging area에 반영되지 않으나, tracking 시작되었기 때문에 tracked
    • git add *
      • 디렉토리에 있는 모든 파일들이 staging area로 넘어감
    • git add .
      • 모든 파일들이 staging area로 넘어감
  • git commit -m "메시지"
    • staging area에서 git directory로 이동하기 위해 사용 (일반적으로 메세지와 함께 커밋)
    • git commit -a "메시지"
      • -a은 all, 즉 working directory에 있는 파일을 모두 커밋하겠다
    • 커밋 메시지는 동사형, 기본형으로 작성 (예: fix, commit 등)
    • history와 일치하는 commit 메시지를 작성하는 것이 중요 (의미있는 단위로 커밋)
  • git diff
    • working directory에 있는 이전 버전과 이후 버전 비교
    • 빨간색은 삭제, 초록색은 추가된 내용, q로 종료
    • git diff --staged
      • staging area에 대한 diff만 확인 가능
    • git difftool
      • git config --global -e로 edit 모드로 열어 아래 내용 추가하면 변경 내용을 vscode에서 확인 가능
    • [diff] tool = vscode [difftool "vscode"] cmd = code --wait --diff $LOCAL $REMOTE
  • git checkout "브랜치명"
    • branch 이동
    • 일반적으로 main 브랜치는 PR(pull request, 코드리뷰)이 완료된 내용만 merge하기 때문에, 작업 내용마다 새로운 branch를 생성하고 이를 remote에 push
    • git checkout -b "브랜치명"
      • 새로운 브랜치를 생성하고 이동 (해당 브랜치에서 작업)
  • git merge "브랜치명"
    • 작업하고 있는 해당 브랜치에 다른 브랜치를 합침

remote 관련 자주 사용하는 명령어

  • git clone "주소"
    • remote(예: github)에서 repository 복사
  • git remote add origin "주소"
    • remote의 주소를 연결 (fetch, push 가능)
  • git pull origin "branch명"
    • remote에서 해당 branch의 내용을 가져옴
  • git stash
    • git pull을 하기 전 나의 변경내용을 백업
  • git stash pop
    • git pull을 한 이후 나의 변경내용을 pull한 내용과 합침
  • git push origin "branch명"
    • 나의 작업내용을 해당 remote branch로 push

기타 알아두면 좋을 명령어

  • git rm --cached *
    • untracked로 상태 변경
  • echo *.log > .gitignore
    • log 확장자 파일은 모두 add하지 않겠다 (untracked로 유지)
    • 만약 특정 디렉토리 안에 있는 파일들을 track하고 싶지 않다면 directory/와 같이 작성
    • 혹은 그 안의 특정 확장자 파일을 포함하지 않겠다면 directory/*.log와 같이 작성 가능
  • cat a.txt
    • 파일 내용 확인

참고 영상 (link)

profile
Graduate student at Seoul National University, majoring in Artificial Intelligence (NLP). Currently AI Researcher at LG CNS AI Lab

0개의 댓글