소스 코드 기록을 관리하고 추적할 수 있도록 개발된 분산형 버전 관리 시스템.
스냅샷 : 날짜별로 어떤 파일이 어떻게 바뀌었는지 확인이 가능하도록 특정 시점에 생성된 백업 복사본.
commit
을 통해 변경 사항에 대한 스냅샷이 만들어지고, 이전의 기록들에 대한 추적이 가능해진다.
파일이 변경되면 변경 이력을 저장할 수 있다.
이전 버전으로 돌아갈 수 있다.
어떤 변경사항이 발생했는지 알아보기 쉽다.
백업과 협업하기에 좋다.
Git으로 관리되는 폴더
Remote repository : 원격 온라인 서버 상의 저장소. 여러 사람이 함께 공유 가능하다.
Local repository : 내 컴퓨터의 저장소.
git repository를 관리할 수 있는 클라우드 기반 서비스이다. Git으로 버전을 관리하는 폴더들을 Github를 통해 여러 사람들이 공유하고 접근할 수 있다.
git remote add <name> <url>
: 내 Local repository와 Remote repository를 연결해줘야 한다.
fork
: 다른 사람의 Remote repository를 내 Remote repository로 가져오는 것이다. 복사를 의미하기 때문에 fork
해온 파일을 변경해도 원본 파일에는 적용이 안된다.
push
: 내가 연결한 Remote repository에 commit
한 내용을 적용하는 것이다. git push <remote repository 이름> <branch 이름>
pull request
: 원본 repository에 변경을 적용하는 것을 요청한다. 이 때, Local repository에서는 바로 pull request
를 하지 못한다. local repository에서 내 remote repository로 push
를 하고 난 이후에 pull request
를 할 수 있다.
init
: 내 컴퓨터에 있는 디렉토리에 Local git repository를 만든다.
staging area : 변경 사항을 올리는 공간 => git add [경로]
git status
: 현재 staging area의 상태를 확인한다.
git add .
: 모든 변경 사항을 한 번에 업로드한다. 현재 경로를 의미하는 .
을 입력한다.
commit
: staging area에 있는 모든 파일을 하나의 패키지로 묶는다.
git reset
: commit
이전으로 되돌릴 수 있다.