git은 파일의 변경 내용을 추적하며 버전을 관리하기 위한 분산 버전 관리 시스템이다
누가 어디서, 무엇을, 왜 바꾸었는지를 저장하며 관리하는데 이를 저장하는 곳을 Repository라고 부른다
이는 협업을 통한 프로그램을 작성할 때 요긴하게 쓰이는데
우리가 단순히 Ctrl+c, Ctrl+v를 이용하여 코드를 저장하고 관리하다 보면 이력 정리가 안돼서 난감한 부분을 이 프로그램이 대신 깔끔하게 정리해준다
1. 생성
- 관리를 하고 싶은 폴더 위치에서 git init을 하면 아래와 같이 git 파일이 생기게 된다
- git을 사용할 환경만 만들어 준 것이지 초기 버전을 등록을 해주어야 관리가 가능해진다
- init만 하고 git status를 보면 현재 아무것도 버젼 관리가 되지 않음을 볼 수가 있다.(설명을 위해 test.txt 파일 추가)
2. 수정 및 커밋
- 기존에 등록된 버전대비 새로운 파일의 추가/삭제/수정 등이 발생하였을 때는 git add . 를 통해
stage area에 등록을 한다
- 지금 보면 untracked file로 새로 추가된 test.txt가 보이는데 이를 staging area(index area)로 보내려면 git add . 를
하면 된다(또는 git add text.txt)
- stageing area에 있는 변경사항들은 git commit을 통해 버전을 관리할 수 있는 log가 남게 된다
3. 돌아가기
- 이미 진행된 commit에 대해서 취소를 할 때는 reset, revert가 있다
- 이 2가지 차이에 대해서는 아래 블로그 영상을 보면 충분히 설명이 되어 있다고 생각한다.
opentutorials.org/module/4032/24550
- reset 옵션
soft : index 보존(add 한 상태, staged 상태), 워킹 디렉터리의 파일 보존. 즉 모두 보존.
mixed : index 취소(add 하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 보존 (기본 옵션)
hard : index 취소(add 하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 삭제. 즉 모두 취소.
4. 원격 저장소와 연동하기
- git을 local에서만 사용할 수도 있지만, 남들과 같이 공유를 하기 위해 원격 저장소에 연결하여 공유를 할 수도 있다.
- 우선 아래와 같이 원격 저장소를 만들었다고 가정하면
사용할 위치에서 아래와 같이 명령어를 쳐준다
이 상태에서 local에 있는 repository를 원격 repository에 올리기 위해서는 아래와 같이 쳐준다
이렇게 하게 되면 아래와 같이 실제 원격 저장소에 나의 로컬 저장소 내용이 반영된 것을 확인할 수가 있다.
※ 명령어 모음(계속 수정예정)
* 기본 명령어
git 생성 : git init
파일 추가 : git add 파일명(untracked -> tracked)
파일 한 번에 추가 : git add ./
파일 체크하면서 추가 : git add -p
git commit : git commit -m "메시지"
* 수정
add 취소하기 : git reset HEAD 파일명( = git rm --cached 파일명)
commit 한 이전 코드 취소하기 : git reset --hard HEAD^
commit 취소하고 코드는 살리기 : git reset --soft HEAD^
commit 덮어 씌우기 : git commit --amend "메시지"
modified 취소 : git checkout -- 파일명 (수정되기 이전 버전으로 돌아감)
* 이력
현재 상태 보기 : git status
history 보기 : git log
모든 이력 보기? : git reflog(git log 대비 한화면에 보임)
작업환경 임시저장 : git stash(다시 load 할 땐 git stash apply)
임시저장 지우기 : git stash drop
* 브랜치
branch 보기 : git branch
branch 생성 : git branch 브랜치명
branch 이동 : git checkout 브랜치명
branch log 확인 : git log --branches --decorate --graph
* 원격저장소
원격 저장소와 link : git remote add origin 원격 저장소
로컬 저장소 commit push : git push origin master
로컬 저장소 update : git checkout -t 원격저장소
댓글