[GIT] 간단 사용법 정리(로컬 디렉토리)
github 사용법을 한 번 정리하고싶어 학습 후 정리합니다.
Git Bash 설치 후 Bash를 통해 진행합니다.
git init : 현재 디렉토리에서 버전관리를 시작하겠다고 선언하는 명령어
git init 명령어를 실행하면 master라는 이름의 최초의 branch생성
로컬디렉토리의 상태는
아래와 같은 단계로 형성되어있는데
최종적으로 버전이 형성되는건 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를 병합한다.