본문 바로가기

프로젝트 관리/Git

Git 기본 명령어 정리

728x90
반응형

깃의 3가지 상태

  • Modified : 수정한 파일을 로컬 저장소에 커밋하지 않은 상태
  • Staged : 수정한 파일을 곧 커밋할 것이라고 표시한 상태 (스테이징 영역에 올라가 있는 상태)
  • Committed : 로컬 저장소에 반영된 상태

 

HEAD : 현재 브랜치의 마지막 스냅샷

origin : 원격 저장소의 별칭

master : master브랜치

 

Git Data Transport

생성

새로운 로컬 저장소 생성

  • git init <project_name>

위 명령 실행시 .git 파일이 생성됨

 

원격 저장소에 등록

  • git remote add origin <remote repository 주소>

 

저장소 가져오기

  • git clone <URL>

 

확인

디렉토리 변경 사항 보기

  • git status

 

작업 영역과 스테이징 영역/로컬 저장소의 차이 보기

  • git diff
  • git diff --cached
  • git diff HEAD
  • git diff <시작 지점>
  • git diff <시작 지점> <끝 지점>
  • git diff --stat <시작 지점> [<끝 지점>]

 

변경 이력 보기

  • git log

 

추가 명령어

작업 영역 -> 스테이징 영역

  • git add <파일 명>

ex)

git add .

git add *.txt

git add project/*/

 

작업 영역 -> 로컬 저장소

  • git commit -m “<메시지>” -a

 

스테이징 영역 -> 로컬 저장소

  • git commit -m "<메세지>"

 

로컬 저장소 -> 원격 저장소

  • git push

기본 형식 : git push <원격저장소 명> <브랜치 명>

 

두 인자를 생략할 경우 origin master 가 생략 되어 있다고 볼 수 있다.

 

--delete 옵션 : 원격 저장소의 브랜치 삭제

 

가져오기 명령어

원격 저장소 -> 로컬 저장소

  • git fetch

 

원격 저장소 -> 작업 영역

  • git pull

기본 형식

git pull <원격 저장소 명> <브랜치명>

 

push와 마찬가지로 두 인자 생략 가능

 

  • zip폴더 다운 : .git 폴더 없이 저장
  • clone : .git 폴더 포함 저장
  • pull : remote repository 내용을 local repository로 가져와 병합
    • git fetch + git merge
    • 해당 repository 권한이 있어야 한다.

 

git pull --rebase

fetch + merge가 아닌, fetch + rebase 방식으로 pull 진행

 

 

되돌리기 명령어

커밋 내용 재작성

  • git commit --amend

ex)

git commit -m 'initial commit'

git add forgotten_file

git commit --amend

 

빠뜨린 것이 있을 경우, 최근 커밋 내용을 수정하여 하나의 커밋으로 수정할 때 사용한다.

 

파일 상태를 Unstage로 변경하기

  • git reset

ex)

git reset

git reset HEAD <파일 명>

 

git add 로 staggin area에 올린 파일 목록을 unstage 상태로 되돌릴 수 있다.

reset의 고급 활용 방법

 

Modified 파일 되돌리기

  • git checkout

working directory변경 사항을 되돌린다.

현재 변경 사항이 마음에 안들때 이전 상태로 되돌리는 용도로 사용될 수 있다.

 

이전 커밋 상태로 되돌리기

  • git revert <커밋 번호>

working directory 파일을 해당 커밋 번호 상태로 되돌린다. (특정 파일 or 전체 파일)

 

References

깃 문서

728x90
반응형

'프로젝트 관리 > Git' 카테고리의 다른 글

서브 모듈(submodule)  (0) 2021.01.07