Git 기본&고급 명령어

이의준·2024년 5월 20일
0

Git & GitHub

목록 보기
2/7

Git 기본 명령어

Git 기본 용어

  • main : 깃의 기본 브랜치
  • origin : 깃의 기본 원격 브랜치 별칭
  • HEAD : 현재 작업 브랜치의 위치

Git 설정 명령

  • git config [설정키][설정값] : 해당 깃 저장소의 설정

    • git config user.name Luti
    • git config user.email Luti@gmail.com
  • git config --global [설정키][설정값] : 모든 깃 저장소에 해당하는 설정

    • git config --global user.name Luti
    • git config --global user.email Luti@gmail.com

Git 기본 버전 관리 명령

  • git init : 깃 저장소 생성
  • git help [명령어] : 명령어 도움말 보기
  • git status : 깃 버전 관리 상태 확인 (작업 디렉토리)
  • git add : 버전 관리 파일 준비
    • git add <파일명> ... : 특정 파일을 버전 관리 준비 (스테이징 영역)
    • git add . : 해당 폴더의 모든 파일에 대해 버전 관리 준비 (스테이징 영역)
    • git add -u : 커밋한 적이 있는 모든 파일 추가 (해당 파일이 커밋 이력에 있어야 함)
  • git commit : 버전 관리 저장 (스냅샷, 해시 생성)
    • git commit -m "메세지" : 깃 커밋하면서 메세지 저장
  • git log : 버전 관리 이력 확인
    • git log -숫자 : 숫자 개수만큼 로그 보기
    • git log --pretty=online : 깃 커밋 로그를 한 줄로 보기
  • git restore --staged [파일명] : 해당 파일을 Staging Area에서 제거. 파일 이름 대신 *을 치면 Staging Area가 비워짐
  • git log --oneline : 커밋 이력을 한줄로 짧게 보여줌

staging area에서 삭제

  • git rm --cached [파일명]
  • git reset [파일명]
  • git reset : 현재 폴더의 모든 폴더와 파일을 staging area에서 삭제

untracked 상태의 파일 또는 폴더 삭제

  • git clean -f : 파일만 삭제
  • git clean -fd : 파일과 폴더 모두 삭제
  • git clean -fdx : 파일과 폴더 + .gitignore까지 삭제
  • git clean -i : interactive mode로 삭제

파일의 삭제 및 이름 변경

파일을 추가할 때 뿐만 아니라 삭제하거나 이름을 변경하는 것도 이력에 남아야 하므로 이력을 관리하는 파일은 작업 폴더에서 삭제, 이름 변경하기 보다 git을 통해서 작업을 해야한다.

  • git mv aaa.txt AAA.tx : aaa.txt를 AAA.txt로 이름 변경한다.
  • git commit -m "rename aaa.txt to AAA.txt"

Git 버전 관리 되돌리기 명령

  • git reset HEAD^ : 마지막 커밋을 스테이징 하기 전 상태로 작업 트리를 되돌리기
    • reset의 3가지 옵션
    • --soft : 해당 커밋 파일을 staging area에 저장. 즉 커밋하기 직전 상태로 변경
    • --mixed : 해당 커밋의 파일을 작업 폴더에 저장. 즉 staging area로 add하기 직전 상태로 변경
    • --hard : 해당 커밋의 파일을 작업 폴더에 반영
  • git revert HEAD : 마지막 커밋을 되돌리면서 커밋 만들기 (최근 커밋의 반대)

커밋 이력보기

  • git log : 커밋 아이디가 길게 나옴
  • git log --online : 커밋 아이디가 짧게 나옴 (6자리)
  • git shortlog : 커밋 아이디 안나옴
  • git show [커밋 ID (6자리)]: 해당 커밋의 정보 보기
  • git reflog : HEAD가 가리켰던(ref) 커밋의 변경이력(log)을 보여줌
  • git reflog [브랜치명] : 브랜치별로 reflog를 보여줌
  • git log -g : reflog를 상세히 보여줌

Git 브랜치 관련 명령

  • git branch : 로컬 브랜치 보기
    • git branch [브랜치명] : 로컬 브랜치 만들기
    • git branch -d [브랜치명] : 해당 브랜치 삭제하기 (merge하지 않으면 내용 지워짐)
  • git checkout [브랜치명] : 브랜치를 체크아웃하기 (작업 영역 변경)
    • git checkout -b [브랜치명] : 브랜치를 만들면서 체크아웃 하기
  • git merge [브랜치명] : 해당 브랜치를 현재 브랜치에 merge 하기

Git 고급 명령어

Git 충돌해결 방법

  • 충돌 발생
    • 2개의 브랜치 만들기
    • 2개의 브랜치에서 같은 라인 수정하기
    • 첫번째 브랜치를 메인 브랜치에 mereg
    • 두번째 브랜치를 메인 브랜치에 merge 시도 -> 충돌
  • 충돌 해결하기
    • 충돌된 라인을 원하는 라인으로 수정
    • add, commit

Git 원격 저장소 관련 명령

  • git remote -v : 원격 저장소 정보 보기
  • git clone "원격저장소 주소" : 원격 저장소를 로컬에 복제하기
  • git remote add "원격저장소 별칭" "원격저장소 주소" : 원격 저장소를 등록하기

Git 원격 저장소 업데이트 명령

  • git fetch : 원격 저장소 최신 내용을 받아오기 (merge하지 않음, 직접 merge 해야 함)
  • git pull : 원격 저장소 최신 내용 받아와서 merge 하기
  • git pull [원격저장소][원격브랜치] : 원격 저장소의 최신 내용을 받아와서 merge 하기
  • git push [원격저장소][원격브랜치] : 원격 저장소로 내용을 밀어넣기

Git 추가 내용

  • git rm --chached [파일명] : 실수로 추갛나 파일의 버전 관리 안하기

    • .gitignore 파일생성, 파일 패턴 추가

0개의 댓글