기본적인 Git 명령어와 무슨 동작을 하는지?
-
git init
- 아직 버전관리를 하지 않는 로컬 디렉토리에 git 저장소를 적용하는 방법
- 디렉토리를 Git 저장소로 만든다.
- 디렉토리에 .git 폴더가 생기면서 버전관리를 시작한다.
-
git clone <저장소 url> [클론 할 폴더명]
- 프로젝트의 히스토리를 전부 받아온다.
- 실제로 서버의 디스크가 망가져도 클라이언트 저장소 중에서 아무거나 하나 가져다가 복구하면 된다(만능)
- 해당 url로 디렉토리를 만들고 그 안에 .git 폴더를 만든다. 저장소의 데이터를 모두 가져와 최신버전으로 checkout 한다.
-
git status
- Git 로컬 저장소의 파일 상태 확인
- 파일상태에 따라 Tracked, unTracked로 나뉜다.
- Tracked
- unmodified : 수정되지 않음(과거랑 현재가 같다)
- modified : 수정되었지만, 로컬에 staging이 안됨
- staged : commit을 통해 로컬 저장소에 기록됨
- unTracked : git에서 추적하지 않는 파일
-
git add <파일명> or .
- git에서 변경상태를 추적한다(변경여부를 지속적으로 확인하는 추적리스트에 올린다)
- 파일 상태가 변경이 되면 status의 상태를 modified로 바꿔 알려준다.
-
git diff
- diff를 통해 add 하기전에 파일의 수정사항을 확인
--staged
옵션을 걸어주면 add한 이후의 수정사항도 확인 가능
-
git commit
- 수정된 파일을 staged 상태로 변경하여 로컬저장소에 등록해준다.
-m
옵션으로 인라인으로 메세지를 작성할 수 있다.- 수정된 파일을
-a
옵션으로 commit 하면 git이 자동으로 git add를 실행하고 commit 단계로 진입
-
git rm <파일명> or <폴더명>
- git 로컬 저장소에서 삭제한다. 동시에 로컬 디렉토리에서도 사라진다.
- 지워진 파일/폴더는 staged 상태가 된다.
-
git log
- 저장소의 커밋 히스토리를 시간순으로 보여준다(최신이 맨위)
-p
옵션으로 파일이 어떻게 변경되었는지도 확인 가능--stat
옵션으로 파일이 얼마나 바겼는지 통계 확인 가능
-
git remote add <원격 저장소 별칭>
- 해당 로컬에서 원격 저장소(github, gitlab...)을 remote로 등록
-
git fetch
- remote로 연결된 저장소에서 모든 파일과 데이터를 가져오지만!!!
no merge
- remote로 연결된 저장소에서 모든 파일과 데이터를 가져오지만!!!
-
git pull
- git fetch와 동일하게 작동하지만, 현재 로컬과
merge
가 된다(중요)
- git fetch와 동일하게 작동하지만, 현재 로컬과
-
git push <원격 저장소 별칭> <로컬 브런치>
- 등록한 원격 저장소로 나의 브런치를 선택하여 파일을 보낸다
-
git branch <새롭게 만들 브랜치 명>
- 브랜치가 생성된다(또 하나의 디렉토리가 생성된다. 안에 있는 파일은 동일)
- 단, 생성 전 현재 작업하고 있는 브랜치의 파일 상태를 staged 상태로 변경하여야 한다.
-v
옵션으로 현재 브랜치의 목록을 확인할 수 있다.
-
git checkout <옮길 브랜치명>
- 브랜치를 변경한다.
-b
옵션으로 생성과 함께 checkout을 할 수 있다.
-
git merge <merge할 브랜치>
- merge 할 브랜치를 선택하여 파일을 합친다.
-
git mergetool
- merge시 conflicts(충돌 == 파일을 자동으로 합칠 수 없다)나면 직접 합치는 도구
- 화면 구성은 <대상 파일> <충돌 된 파일> <머지 할 파일> , 충돌 된 파일을 수정하면 된다.
-
git reset
- hard 옵션
- 리셋하기 전까지 했던 staging area, working directory 작업까지 reset
- "환생 수준"
- soft 옵션
- 리셋하기 전까지 했던 staging area, working directory 작업까지는 남겨둠
- 리셋한 버전과 현재까지의 작업을 합쳐 새로운 버전을 만들때
- mixed 옵션(default)
- staging area : reset , working directory : 남겨둠
- 현재 작업물은 지우지 않고, 이전버전으로 돌아가서 add할지 말지 결정할때 사용
- hard 옵션
-
git revert
- git을 특정 버전을 다시 돌린다.
- git reset은 돌아가면 그 전의 상태를 다 없애지만, revert는 history를 그래로 남긴다.
-
git reflog
- 저장된 HEAD 변경 이력을 보는 명령어
- reset --hard 복구시 사용