원격 저장소 깃허브
브랜치를 공부할 때까지 내 자신의 컴퓨터 안에 커밋을 진행했었다.
이 저장소를 지역 저장소(local repository)라고 부른다.
하지만, 협업을 하는 데 있어서 이렇게 지역 저장소에 저장을 하고 사용하게 되면
다른 사람들과 공유를 할 수 없고, 같이 작업을 할 수 없다.('백업'과 '협업' 불가)
그래서 사용하는 것이 바로 깃허브이다.
깃허브는 원격 저장소(romote repository)이다.
깃과 관련해 가장 많이 사용하는 서비스이기도 하다.
깃허브는 원격 저장소에서 깃을 사용할 수 있기 때문에 개발자들 사이에서는 자주 사용된다고 볼 수 있다.
(여러 오픈 소스들이 깃허브에 올라와있고, 협업하기에도 쉽기 때문이다.)
깃허브는 지역 저장소를 백업할 수 있는 기능도 가지고 있다.
깃허브에 원격 저장소를 만들고, 사용자의 컴퓨터에 있는 지역 저장소를 연결한 후 동기화하면
지역 저장소를 인터넷상에 백업할 수 있다.
그렇다면 깃허브를 시작하기 위해선 무엇부터 해야 할까?
당연히 가입부터 해야 한다. www.github.com에 접속한 후 [sign up]을 눌러 가입하자.
(특별한 상황이 아니라면 무료로 가입하면 된다.)
가입이 완료되었다면 이제 깃허브에 원격 저장소를 만들어보자.
회원가입이 완료되어 로그인하면 오른쪽 위에 [New repository] 버튼을 선택한다.
[Owner] : 사용자의 아이디가 나온다.
[Repository name] : 원격 저장소 이름을 입력한다.
[Description] : 저장소에 대한 간단한 설명을 입력한다.(입력 안 해도 됨)
[Public / Private] : '공개 or 비공개'를 선택함으로써 누군가 볼 수 있도록 할지 말지 정한다.
[Initialize this repository with a README] : 저장소에 대한 설명을 작성하는 README 파일을 자동으로 만든다.
[Add.gitignore] : 어떤 언어와 관련된 것들을 gitignore 파일에 지정할지 선택한다.
(그 언어와 관련된 라이브러리나 실행 파일을 깃에서 무시하도록 파일을 만들어준다.)
[Add a license] : 오픈 소스 프로젝트를 위한 저장소를 만들 경우 해당 오픈 소스의 라이선스를 선택한다.
일단 아무것도 건들지 않고 저장소 이름과 설명만 입력한 뒤 만들었다.
이제 https 주소만 알고 있으면 언제든지 깃허브 저장소에 접속하여 파일을 올릴 수 있다.
지역 저장소를 백업하거나 다른 사람과 협업도 가능하다.
HTTPS로 접속하는 주소는 다음과 같다.
[https://github.com/아이디/저장소명]
-----------------------------------------------------------------------------------------------------------------------------------
이제 지역 저장소를 원격 저장소에 연결해보자.
우선 지역 저장소를 만든다. git bash를 실행시키자.
'git init local-rep'
'cd local-rep'
'vim test.txt'
차례대로 입력 후 vim 편집기에 아무 글자나 입력한 뒤, :wq로 빠져나오자 (저장 후 종료)
그리고 커밋을 완료한다.
'git add test.txt'
'git commit -m "add test"'
'git log'
이제 저장소에 파일도 만들었으니, 지역 저장소와 깃허브를 연결해보자
우선 깃허브 주소를 복사한다.
이후 다음과 같이 명령어를 입력한다.
'git remote add origin 복사한 주소'
(자신이 만든 주소를 입력할 것)
이후 아무것도 나오지 않는다면 제대로 된 것이다.
원격 저장소에 제대로 연결이 되었는지 확인하기 위해
'git remote -v'
입력해보자.
다음과 같이 origin이 가리키는 주소가 옆에 표시될 것이다.
이것으로 잘 연결된 것을 확인할 수 있다.
-----------------------------------------------------------------------------------------------------------------------------------
이제 원격 저장소를 연결했으니 이용을 해보자.
지역 저장소의 소스를 원격 저장소에 올리는 것을 '푸시(push)'라 한다.
원격 저장소에서 지역 저장소로 내려받는 것은 '풀(pull)'이라 한다.
우선 푸시부터 연습해보자.
터미널 창에 다음과 같이 입력한다.
'git push -u origin master'
지역 저장소의 브랜치를 origin, 즉 원격 저장소의 master 브랜치로 푸시하라는 명령이다.
-u는 지역 저장소의 브랜치를 원격 저장소의 master 브랜치에 연결하기 위한 것이다. (한 번만 사용)
그럼 이렇게 로그인 창이 나타나는데 로그인을 하면 된다.
그럼 다음과 같이 푸시가 진행된 후 끝나게 된다.
이렇게 진행되면 지역 저장소의 커밋이 원격 저장소로 올라갔다는 뜻이다.
이제 깃허브 저장소가 열려있는 웹 브라우저에서 새로고침 한 뒤 확인해보자.
그럼 이런 식으로 test.txt 파일이 원격 저장소로 올라가 있게 된다.
여기서 1 commit을 클릭하면 내가 커밋한 내용이 똑같이 나와있다. (add test)
이제 그다음부터는 파일을 수정한 후 커밋한 뒤에
'git push' 명령어만 입력하면
원격 저장소로 푸시가 진행된다.
(이미 연결을 해뒀기 때문이다.)
이제 다시 깃허브 화면으로 돌아가서 확인해보면
가장 최근에 수정한 파일 내용이 들어가 있다.
이제 깃허브 사이트에서 커밋하는 방법을 알아보자.
여기서 Create new file을 클릭한다.
파일 제목을 입력하고
내용을 입력한 뒤에 맨 밑으로 내려가
[commit new file] 버튼을 입력하면
새로운 커밋이 추가된다.
(test2.txt 파일이 추가되었다.)
-----------------------------------------------------------------------------------------------------------------------------------
만약 원격 저장소에 있는 소스 파일을 다른 사용자가 수정하거나,
깃허브 사이트에서 직접 커밋하게 되면 지역 저장소와 차이가 생기게 된다.
이때 원격 저장소와 지역 저장소의 상태를 같게 만들기 위해 사용하는 것이 pull 하는 것이다.
앞에서 local-rep 지역 저장소를 원격 저장소에 연결한 후 푸시했었다.
그 후 test2.txt 파일은 깃허브 사이트에서 커밋했다.
이제 지역 저장소에는 test2.txt 파일이 없을 것이다.
'git pull origin master'
명령을 입력하면 원격 저장소의 내용을 master 브랜치로 가져오게 된다.
이렇게 진행상황이 나타나고 완료된다.
가져오기가 끝났으니 확인해보자.
'git log'를 이용한다.
Create test2.txt라는 커밋이 잘 나타난다.