Tutorial2: 저장소 공유
Github에 원격 저장소 생성하기
우선 원격 저장소를 Github 상에 만든다.
- New repository 버튼을 누르고
- repository 정보를 입력한다.
- 다 쓰면 Create repository 버튼을 누른다.
원격 저장소에 푸시(Push)하기
원격 저장소의 주소는 이름으로 기록해 둘 수 있다. 기록 해두면 push 할 때마다 긴 원격 저장소의 주소를 입력할 필요가 없다. 우선 origin
이라는 이름으로 원격 저장소를 등록하고 push 한다.
$ git remote add <name> <url>
<name>에 origin
을, <url>에는 github 저장소의 HTTPS 주소를 넣어주면 된다.
$ git remote add origin https://github.com/kyY00n/kyY00n.git
-
저장소를 push하려면 push 명령어를 사용한다.
$ git push <repository> <refspec>
<repository>는 push 경로의 주소, <refspec>은 push할 브랜치가 들어간다.
$ git push -u origin master
다음 명령어를 실행해 원격 저장소 origin
에 커밋을 push 한다. 실행 옵션에서 한 번 -u를 지정하면, 이후에는 그 브랜치명 지정을 생략할 수 있다. 단, 비어있는 원격 저장소에 최초로 push할 때는 원격 저장소명과 브랜치명을 생략할 수 없다.
중간에 사용자명과 비밀번호를 물어보면 github의 사용자명과 비밀번호를 입력하면 된다.
원격 저장소 복제(Clone)하기
저장소를 복제하려면 clone 명령어를 이용한다. <repository>는 원격 저장소의 URL, <directory>는 복제 대상의 폴더명을 지정한다.
$ git clone <repository> <directory>
위의 명령어를 실행하면 이렇게 된다
$ git clone https://github.com/kyY00n/kyY00n.git kyY00n2
Cloning into 'kyY00n2'...
Username: <사용자명>
Password: <비밀번호>
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
복제한 저장소에서 다시 푸시하기
pwd: kyY00n2
어머! 원격저장소에 있는 'git-tutorial.txt'에 오타가 있네!
내가 만약 원격 저장소를 clone하고 그 안의 파일의 오타를 수정한 뒤 그걸 다시 푸시하고 싶으면..
$ git add git-tutorial.txt
$ git commit -m "오타를 수정함"
이런 식으로 하면 된다.
이제 이 변경 내역을 push하여 원격 저장소를 업데이트한다. pwd: kyY00n2
복제한 저장소에서 push할 때는 파라미터 origin master를 생략할 수 있다.
$ git push
Username: <사용자명>
Password: <비밀번호>
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 351 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/kyY00n/kyY00n.git
486789c..1ef5c8c master -> master
원격 저장소에서 풀(Pull)해오기
위에서 kyY00n2
로부터 원격 저장소로 푸시한 내용을 내PC의 kyY00n
폴더로 가져오자.
Pull을 수행할 때 만약 저장소명이 생략되면 origin의 이름으로 등록되어 있는 저장소 밑에 pull을 수행하게 된다.
$ git pull <repository> <refspec>
pwd: kyY00n
다음 명령어를 실행하자
$ git pull origin master
Username: <사용자명>
Password: <비밀번호>
From https://github.com/kyY00n/kyY00n
* branch master -> FETCH_HEAD
Updating ac56e47..3da09c1
Fast-forward
git-tutorial.txt | 1 +
1 files changed, 1 insertions(+), 1 deletions(-)
이제 kyY00n의 git-tutorial.txt는 오타가 없는 파일이 되었다 >_<