[깃허브(Github)] 16. 리모트 저장소

Github 사용법 2016. 8. 15. 10:09

728x90
반응형

흠... 회사에서 포스팅 하고 맥으로 포스팅 하고...

이번엔 집에서 포스팅 하고 하니깐 중구난방이네요 ㅠㅠ

그래도 천재이신 여러분이라면 충분히 알아볼 꺼라 저는 확신 합니다!

브랜치란 독립적으로 어떠한 작업을 진행하기 위한 개념입니다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니다.




1. 리모트 저장소 확인하기



1. 현재 폴더가 리모트 저장소로 관리하고 있는지 어떤지를 알아보려 합니다.

git init 로 저장소를 생성했다고 해서 '리모트저장소' 인건 아닙니다.

일단 git init 를 선행했던 폴더로 경로를 바꿔서 확인해야 합니다. 하지만, 저는 집컴이라... 폴더를 따로 하나 더 만들겠습니다.;;

cd d:\test03 -> D드라이브 하위의 test03 폴더로 경로 이동

git init -> Git 저장소 생성

git remote -> 리모트 저장소 인지 확인 (저장소를 Clone하면 origin이라는리모트 저장소가 자동으로 등록되기 때문에 origin이라는 이름을 볼 수 있습니다.)

근데... 눈을 씻고 찾아봐도 origin이라는 건 안보입니다.

네. 이건 리모트 저장소가 아니기 때문입니다.









2. 그래서 저희가 2장에 했었던 github 아이디 만들고 테스트 한게 있을꺼예요. (http://recoveryman.tistory.com/251) 이 저장소를 Clone 해보겠습니다.

그랬더니 origin 이라는 이름이 나왔습니다.









3. -v 옵션을 추가하면 단축 이름과 URL을 함께 볼 수 있습니다.

git remote -v

붉은 네모박스를 잘 보시면 앞에 origin(단축 이름), 뒤의 주소(URL)이 확인 됩니다.

리모트 저장소가 여러 개 있다면 이 명령은 등록된 전부를 보여준다고 하는데, 저는 저 혼자서 하니 제것만 나오나 봅니다.






====================================================================================================



2. 리모트 저장소 추가하기



4. 새 리모트 저장소는 쉽게 추가할 수 있습니다.

git remote add [단축 이름] [URL] 명령으로 추가합니다.








5. 이제 URL 대신에 test03라는 이름을 사용할 수 있습니다.

예를 들어 로컬 저장소에는 없지만 gitest01의 저장소에 있는 것을 가져오려면, git fatch [단축 이름] 이라고 입력하면 됩니다.

근데 해보다 보니  3번 사진에서 처럼 한 폴더에 여러개의 리모트 저장소를 할 수 있네요.

로컬에서 test03/master가 gitest01의 master 브랜치 라고 합니다. 이 브랜치를 로컬 브랜치 중 하나에 Merge(합병) 하거나 Checkout해서 브랜치 내용을 자세히 확인할 수 있다고 합니다.

저는 브랜치라는 개념을 하나의 프로젝트를 여러명의 개발자가 개발을 할때 작업을 따로따로 하더라도 나중에 합칠 수 있는거라 알고 있습니다. 이 개념이 틀리면 즉시 이 문구는 정정하겠습니다. (git 초보예요.. ㅎㅎ...)






====================================================================================================





3. 리모트 저장소를 Pull하거나 Fetch하기



6. git fetch [remote-name] : 4번과 5번의 스샷과 내용을 보시면 아시겠지만 리모트 저장소의 데이터를 가져오는건  입니다.

이 명령은 로컬에는 없지만, 리모트 저장소에는 있는 데이터를 모두 가져온다고 합니다.

git pull [URL] : git fetch 와 git merge를 함께 하는것 이라고 합니다. (번역 : http://stanleykou.tistory.com/104, 원본 : http://stackoverflow.com/questions/292357/what-are-the-differences-between-git-pull-and-git-fetch)

 제가 실험을 살짝 해봤는데요.

test03 폴더를 삭제 한 후 이번엔 git pull을 진행해 봤습니다. 그랬더니 git clone 한것과 비슷하게 리모트 저장소의 파일을 가져오더군요.

git fetch는 리모트 저장소의 파일을 가져오진 않았습니다.

아무래도 후의 브랜치 라는걸 할때 merge(병합)에 대해 자세히 다뤄볼 수 있을꺼 같습니다.

/*====== ======*/


# Outsider's Dev Story (http://blog.outsider.ne.kr/572)


git clone 저장소주소 폴더명

원격저장소를 복제하여 저장소를 생성합니다. 폴더명을 생략 가능합니다.


git fetch

원격저장소의 변경사항을 가져와서 원격브랜치를 갱신합니다.


git pull

git fetch에서 하는 원격 저장소의 변경사항을 가져와서 지역 브랜치에 합치는 작업을 한꺼번에 합니다. 파라미터로 풀링할 원격저장소와 반영할 지역 브랜치를 줄 수 있습니다.



/*====== ======*/

└ 1. 저는 일단 실험을 위해 test03 폴더를 완전 삭제후 다시 생성하였습니다.

└ 2. cd d:/ => D드라이브로 이동

└ 3. cd d:/test03 => D드라이브의 test03 폴더로 이동

└ 4. git init => git 저장소 생성

└ 5. git remote add test03 https;//github.com/gitest01/gitest01 => test03 리모트 저장소 추가

└ 6. git pull test03 master => test03(https;//github.com/gitest01/gitest01)의 변경 사항 등을 현재 test03 폴더로 끌어오기.






====================================================================================================




4. 리모트 저장소에 Push하기



7. git push [remote-name] [branch-name] 

저는 이 명령을 사용해서 내가 신규로 만든 파일이나 수정한 파일을 리모트 저장소로 보냈습니다.

이 명령은 Clone한 사람이 여러 명 있을 때, 다른 사람이 Push한 후에 Push하려고 하면 Push할 수 없습니다. 먼저 다른 사람이 작업한 것을 가져와서 Merge한 후에 Push할 수 있습니다.

일단 저의 테스트용 리모트 저장소 gitest01 에는 파일이 README.md 파일 하나뿐이 없었습니다.

index.html을 신규로 만들고 커밋하고 push 명령을 이용해서 리모트 저장소로 보냈습니다.









8. 저의 테스트 저장소를 열람해 봤습니다. (여러분은 여러분의 테스트 저장소 또는 작업 저장소를 이용해 주세요.)

index.html이 21분전 등록되었다고 표시가 되어 있네요.





====================================================================================================



5. 리모트 저장소 살펴보기



9. git remote show [remote-name] 를 입력하면 스샷과 비슷한 내용이 출력됩니다.

이 명령은 git pull 명령을 실행할 때 master 브랜치와 Merge할 브랜치가 무엇인지 보여준다고 합니다.

브랜치란 독립적으로 어떠한 작업을 진행하기 위한 개념입니다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니다.






====================================================================================================



6. 리모트 저장소 이름을 바꾸거나 리모트 저장소를 삭제하기


10. git remote rename [old-remote-name] [new-remote-name]

이 명령을 실행하면 리모트 저장소 이름이 바뀝니다.

삭제하는 명령어는 git remote rm [remote-name] 입니다. (저는 아직 삭제할 생각이 없어서 이 명령어는 사용 안하겠습니다.)



반응형