버전이란, 하나의 유의미한 변화를 결과물로 만들어낸 것을 의미한다.
게임에서 버전 업데이트를 하는 것과 같이 프로그래밍에서도 버전이라는 것이 있고 그것을 관리해야 한다.
- 보통 많은 개발자들이 협업해서 하나의 새로운 버전을 만든다. 즉, 하나의 버전을 관리하는 과정에서 협업이라는 것이 필연적이다.
- 버전을 관리하는 과정에서 이전의 버전으로 되돌리는 작업이 필요할 수 있다.
- 효율적으로 백업하는 과정이 필요하다.
- 수정 사항의 이력을 남길 수 있다.
이러한 작업을 해주는 것이 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 <브랜치명>