versioning
Working tree : 파일을 수정하는 곳 (버전으로 만들어지기 전 단계)
-> 일단 어떤 수정이든 실행하면 Working tree에 올라감
Staging area : 버전으로 만들 파일의 모음
-> Working tree에 있는 파일 중 버전관리를 하고픈 것을 (git add를 통해) Staging area로 이동
Repository : (git commit을 통해) 만들어진 버전
git init "디렉토리 경로" : 해당 경로를 리퍼지토리로 하여 버전관리 하라(initialize repository) -> git repository 생성(=.git)
(git init . : 현재 디렉토리를 리퍼지토리로)
git status : 상태 확인 (Working tree 상태)
git add 파일명 : 버전 관리를 위해 해당 파일을 Staging area에 올려라
git add 디렉토리명 : 해당 디렉토리 밑의 모든 파일을 add
(git add . 도 가능)
git commit : 커밋 실행(현재 Staging area의 상태를 가지고 버전 생성) (에디터 뜨면 거기서 동작 수행)
git commit -m "커밋 메세지" : 에디터 생략하고 해당 메세지로 바로 커밋
git commit -a : git add를 -a 옵션으로 주어 한 번에 처리할 수 있다
(단, 최초 한 번은 git add 로 untracked 상태를 벗어나야 -a 로 한 번에 처리 가능해짐. untracked일 때는 -a 안 먹힘)
git commit -amend : 커밋 메세지 수정
git log : 로그 확인
git log --stat : 버전 별로 좀 더 상세하게 로그 확인
git log -p : 버전 별로 삭제, 추가된 부분에 대한 로그 확인
git log --graph : 브랜치 관계를 그림으로 보여줌
git log --oneline : 각 버전을 한 줄로 간단하게 표시함
git diff : 최신 버전과 워킹 트리에 올라간 파일의 차이점을 보여줌
git reset --hard : 워킹트리의 내용을 지우고 파일을 최신 버전의 상태로 바꿈
git reset --hard 커밋ID : 워킹트리 내용도 지우고 해당 커밋 버전으로 리셋하겠다.
(해당 커밋이 마스터가 된다. 헤딩도 된다.)
git checkout 커밋ID : 해당 커밋 버전의 브랜치에 헤드를 둔다
git checkout master : 마스터로 되돌아감
git revert 커밋ID : 해당 커밋에 대한 내용을 바로 이전 버전으로 되돌림
(R4는 유지한 채로 Revert R4를 만든다. 이때 Revert R4의 내용은 R4의 바로 전 버전인 R3과 완전히 동일)
(한참 전의 버전으로 돌아가고 싶다면 역순을 지켜서 revert를 실행해야 한다는데 무슨 말인지 이해 못함)
(당위성은 이해했는데 정확히 어떻게 revert를 해야하는지 모르겠음)
git config --global core.autocrlf true
branch, conflict
git branch : 생성된 브랜치들 모두 확인
(결과창에서는 head가 있는 브랜치에 *이 달려있게 된다)
git branch 브랜치명 : 해당 브랜치명으로 브랜치 생성
브랜치 생성 후 git log 하면 브랜치들까지 함께 확인 가능
여기서 "git check 브랜치명"을 통해 특정 브랜치에 헤드를 두고 해당 브랜치 수정 가능
git merge 브랜치명 : 현재 헤딩된 브랜치에 해당 브랜치의 내용을 병합함
(마스터에 헤딩된 상태에서 merge를 실행하면 병합된 새 브랜치가 마스터가 된다. 마스터가 아닌 브랜치에 헤딩된 상태에서 merge하면 새로운 브랜치가 생겨날 뿐 마스터는 그대로 유지된다.)
'기타' 카테고리의 다른 글
POSIX CLI (0) | 2021.01.09 |
---|---|
Scanner, BufferedReader 입력 (0) | 2021.01.08 |
인텔리제이 주요 단축키 모음 (0) | 2020.12.27 |