Git에서 말하는 저장소란 말 그대로 파일을 저장하는 장소
이다. 파일을 저장하는 장소란 즉, 프로젝트를 담고있는 디렉토리
이다. 사용자가 프로젝트를 작성한 디렉토리를 저장소라 부른다. Git에서 사용하는 저장소는 로컬저장소와 원격저장소가 있다.
프로젝트를 생성하고 관리할 때 내 PC에도 저장을 하지만 보통 깃허브에 프로젝트를 올려서 관리한다. 내 PC에 저장되는 저장소(디렉토리)를 로컬 저장소
라고 부르며 깃허브에 올린 프로젝트 디렉토리를 원격 저장소
라고 부른다. 로컬 저장소는 본인이 작성하고 가져온 코드만 가지고 있으며 개발자들은 로컬 저장소에서 개발을 진행한다. 원격 저장소는 협업하는 모든 개발자가 접근할 수 있으며 개발된 프로젝트를 통합하여 관리한다.
저장소를 관리하기 위해 깃허브를 사용하였으며 git GUI 툴은 git fork를 사용하였다.
내 PC에 개발하려는 프로젝트의 폴더를 생성한다.
프로젝트를 관리하는 폴더(project)에서 새로운 프로젝트 폴더(test)를 생성하였다. 현재는 일반 폴더일 뿐 저장소로 사용한다고 명시하지는 않았다.
git init
프로젝트로 사용할 폴더로 이동하여 깃 저장소 초기화 명령어를 입력한다. git init
명령어로 test 폴더를 로컬 저장소로 초기화하였다.
git remote add 원격저장소이름 url
현재 생성한 로컬 저장소를 관리할 원격 저장소를 미리 생성한다.
로컬 저장소와 같은 test라는 이름의 원격 저장소를 생성하였다. 미리 생성되어 있는 원격 저장소를 로컬 저장소와 연결한다. 저장소들을 연결짓기 위해서는 원격 저장소의 url의 필요하다. url은 사용자 깃허브 주소/깃허브 아이디/원격 저장소 이름.git
이며
원격 저장소에서 url을 복사할 수 있다.
git remote add 원격저장소이름 url
명령어로 로컬 저장소와 원격 저장소를 연결지을 수 있다. git remote -v
으로 현재 로컬 저장소에 연결되어 있는 원격 저장소의 정보를 알 수 있다. 원격 저장소를 연결지을 때 이름을 따로 지정하지 않으면 (git remote add url 만 입력) 기본 이름은 origin으로 설정된다.
로컬 저장소를 생성하면 git fork에서 관리할 수 있으며 원격 저장소를 연결하여 Remotes탭에 test 원격 저장소가 추가되었음을 확인할 수 있다.
이후에 add, commit, push에 대해 포스팅 하겠지만 commit이란 하나의 작업 단위이다. 어떤 기능을 개발하면 현재까지 개발한 지점을 중간저장하는것과 같다. 로컬 저장소에서 파일을 생성하면 다음과 같이 변경사항이 활성화된다. git status
로 파일들의 변경사항을 확인할 수 있다. 현재 브런치는 master이며 변경사항이 발생한 파일은 init.txt라는 것임을 알려주고 있다. 원격 저장소로 푸쉬하기 전, 이전에 깃허브에서 디폴트 브런치로 master를 사용하였으나 의미상 애매한 부분이 있어 main으로 변경하였기 때문에 main 브런치를 먼저 생성해준다.
git checkout 브런치 이름
으로 이미 생성한 브런치로 이동할 수 있으며 생성과 동시에 브런치로 이동하기 위해 -b 옵션을 추가한다. git status
명령어를 이용하여 현재 바뀐 브런치 이름을 확인할 수 있다. git branch
명령어로도 확인할 수 있지만 지금 생성된 브런치가 디폴트 브런치 하나뿐이기 때문에 입력해도 아무것도 출력되지 않는다. 변경사항을 추가하고 커밋을 생성하여 원격 저장소로 푸쉬한다. git add 파일명 또는 폴더명
으로 변경사항을 기록할 파일 또는 폴더를 추가한다. add 하는 파일을 제한함으로써 원하는 부분만 커밋할 수 있다. git commit 메시지
명령어로 커밋을 생성한다. commit 명령어에 -m 옵션을 추가하면 한줄짜리 메시지를 바로 입력할 수 있다.
main 브런치로 생성하였으며 저장소를 생성한이래 처음 생성한 커밋임을 알려준다. 총 1개의 파일이 수정(생성)되었으며 1줄이 추가되었다고 알려준다.
생성한 커밋을 git push 원격저장소이름 브런치이름
명령어로 푸쉬한다. 푸쉬를 하면 로컬 저장소에서 생성한 커밋들을 원격 저장소에 보낼 수 있다. 원격 저장소에 파일이 하나라도 존재하면 이전에 푸쉬하라는 설명이 사라지고 저장소의 모습이 나타난다.
git fork에는 최소 한번의 커밋이 발생해야 브런치 정보가 보여진다. 현재 선택된 브런치는 main 이며 우측에는 커밋 이력을 보여준다.