버전이란, 하나의 유의미한 변화를 결과물로 만들어낸 것을 의미한다.
게임에서 버전 업데이트를 하는 것과 같이 프로그래밍에서도 버전이라는 것이 있고 그것을 관리해야 한다.
- 보통 많은 개발자들이 협업해서 하나의 새로운 버전을 만든다. 즉, 하나의 버전을 관리하는 과정에서 협업이라는 것이 필연적이다.
- 버전을 관리하는 과정에서 이전의 버전으로 되돌리는 작업이 필요할 수 있다.
- 효율적으로 백업하는 과정이 필요하다.
- 수정 사항의 이력을 남길 수 있다.
이러한 작업을 해주는 것이 Git 버전 관리 시스템이다.
작업공간에서 만든 모든 파일을 무조건 하나의 버전으로 만들어야할까?
그럴 필요는 없다. 작업공간에서 버전이 될 파일을 선별한 후 그것을 다음공간으로 넘길 수 있다.
모든 git 명령어는 git <명령어> 형태로 작성한다.
git init
git init을 하게되면 해당 폴더 안에 .git이라는 숨김파일이 생성되는데 이 파일로 인해서 해당 폴더의 삭제 또는 수정된 것에 대한 모든 변경사항이 감지된다. git status
git add로 인해 작업 공간에서 스테이징 공간으로 넘어가지 않았다는 뜻이다. 즉, 새로 생긴 파일.git add <파일명>
git add . 또는 git add *
git status로 내역을 확인했을 때 changes to be committed: new file: test.txt 라는 문구가 있다면 이는 git add로 인해 스테이징 공간에는 올라왔지만 아직 git commit으로 저장소에 올라가기 직전의 파일이란 뜻이다.
작업 공간에서 스테이징 공간으로 넘겨줄 파일이 직접 처리하기에 많은 경우에는 git add . 또는 git add *를 사용하여 모든 파일을 한번에 넘길 수 있다.
만약 스테이징 공간에서 이미 스테이징 된 파일을 다시 작업 공간으로 unstage하고 싶은 경우 git rm --cached <파일명> 명령어를 사용하게되면 파일이 다시 작업 공간으로 내려가게 된다.
git commit -m "커밋 메세지"
git add 명령어를 통해 스테이징 공간에 올라왔으면 최종적으로 버전으로 저장되어야 하는데, 이때 git commit -m "커밋 메세지" 명령어를 통해 저장해주어야 한다.git commit -am "커밋 메세지"
git log 명령어 사용git push (origin mastser)
git branch <브랜치명>
git checkout <브랜치명>git checkout -b <브랜치명>