형상관리/GIT

[GIT] 간단 사용법 정리(로컬 디렉토리)

steadyMan 2021. 1. 10. 19:23

github 사용법을 한 번 정리하고싶어 학습 후 정리합니다. 

 

Git Bash 설치 후 Bash를 통해 진행합니다. 

 

git init : 현재 디렉토리에서 버전관리를 시작하겠다고 선언하는 명령어 

 

git init 명령어를 실행하면 master라는 이름의 최초의 branch생성

 

Git init 후 디렉토리에 .git폴더 생성

 

로컬디렉토리의 상태는

 

아래와 같은 단계로 형성되어있는데

로컬디렉토리 구성

최종적으로 버전이 형성되는건 git commit으로 Repository에 들어갈때 형성된다. 

 

로컬디렉토리에 수정, 추가등이 발생하면

 

git add [파일 명] 으로 Staging Area로 보내야합니다.(git에게 변경사항을 알려주는)

이후 하나의 버전을 만들 수정사항을 모두 add 했으면 최종적으로 하나의 버전을 만들기위해

git commit으로 Repository로 전송합니다. 

 

git status : 로컬 디렉토리의 상태를 확인하는 명령어

 

git status로 상태를 확인해보면 

 

add를 하기전은 추적되지 않은 파일이있어 오류가 발생하지만 

 

add 후 status를 확인해보면 test.txt파일이 commit이 가능한 상태로 변한 모습을 확인할수있습니다. 

 

이후 git commit -m "commit message"로 버전을 생성합니다. 

(git commit -am "commit message") : add와 commit을 동시에 - 최초에 commit이 이루어진 파일만 가능 

 

add 한 파일을 삭제할 경우는 

git rm --chached [파일이름]  --> Staging Area에서 제거 

 

git log : 버전변경사항의 로그 확인 명령어

 

git log 명령어로 버전을 확인해보면 

 

first message라는 메세지를 가진 버전이 하나 생성된것을 확인할수있습니다.

(노란색의 난수는 commit에 대한 식별 아이디)

 

만일 git add, commit 한 내용을 되돌리려면

git reset 스크립트를 활용합니다. 

 

HEAD : 가장 최근 버전, 현재 버전

^ : 한 단계 전 버전

ex) HEAD^^ : 최근버전에서 두 단계 전 버전

 

git reset --hard HEAD^ : hard는 working directory, staging area, repository의 내용을 전부 되돌립니다.

 

git reset --mixed HEAD^ : add, commit한 것 까지되돌립니다.(default) - working directory내용만 남는다.

 

git reset --soft HEAD^ : commit한 내용만 되돌립니다. - add를 다시하지않아도된다. 

 

git reset을 한 버전을 다시 reset하기전으로 되돌리고 싶다면?

 

git reset --hard ORIG_HEAD :  repository에 버전만 살아남는다. 

 

버전을 되돌리는 명령어중 또 하나는 git revert입니다. 

 

reset과 차이점은 reset은 되돌린 버전 이후의 버전이 모두 사라지지만, git revert는 되돌린 버전 이후의 버전들은

모두 유지되고, revert한 commit을 추가로 생성합니다. 

(그래서 충돌 발생할수있음)

 

만약 두 개의 버전 OR 브렌치간 변경사항을 비교하고싶다면?

 

git diff <기준 branch> <비교대상 branch>

 

git diff HEAD^ HEAD : 현재와 한 단계이전 버전과의 비교 

 

 

Branch 관리

 

git branch - 현재 어느 branch에 있고 로컬에 존재하는 branch목록을 확인 할 수 있다. 

 

git branch [브렌치명] - 브렌치를 생성한다. 해당 스크립트를 명령하는 브렌치의 내용이 복사된다. 

 

git checkout [브렌치명] - 해당 브렌치로 이동한다. 

 

 

Merge(병합)

 

git merge [병합을 원하는 브렌치명] : 스크립트을 입력한 branch에 명시한 branch를 병합한다.