본문 바로가기

Git

[Git] fork와 clone

728x90
반응형

clone

원격 공간에서는 수정하거나 작업할 수 없기 때문에 clone을 통해 원격에 공개된 저장소를 작업할 로컬 공간에 내려 받는 기능입니다.

github의 원격 저장소에서 [clone or download] 버튼을 클릭하면 https:~~ 주소(Use SSH 로도 가능)가 보이고 그 주소를 복사해서 clone할 수 있습니다.



$ git clone [가져올 원격 저장소 주소] (폴더명 지정)


커맨드 창에서 원하는 로컬 위치에 원격 저장소를 clone 해봅시다.

주소 뒤에 원하는 폴더명까지 입력하면 기존 이름의 git이 아닌 자신이 입력한 이름으로 폴더명을 지정할 수 있습니다.


디렉토리를 확인하면 실제로 git폴더가 생기고 그안에 원격에 존재했던 자료들이 그대로 가져와진 것을 볼 수 있습니다.



(+) 추가 내용


로그 거꾸로 출력

$ git log --reverse

내가 가져온 git의 첫 커밋을 확인할 수 있습니다. (Lonus Torvalds의 영광 스러운 첫 커밋...)



첫 번째 커밋으로 체크아웃

$ git checkout e83c5163316f89bfbde7d9ab23ca2e25604af290

첫 커밋으로 체크아웃 하면 log를 확인해도 첫 커밋 로그가 나오고, ls -al 명령어로 커밋했을 때의 상태 파일들만 볼 수 있습니다.



이처럼 다른 사람의 원격 저장소 내용을 확인하고 다양한 정보를 확인할 수 있습니다.



다른 사람의 원격 저장소를 clone하면 그 저장소로 수정하고 반영시킬 수 없습니다.

하지만 내 원격 저장소를 clone한 경우라면 수정하고 push해서 반영시킬 수 있습니다.

다른 사람의 원격 저장소에 있는 내용을 사용해하거나 수정해보고 싶다면 내 저장소로 복제해와서 clone하면 되겠지요.

그 방법이 아래에서 설명하는 fork 입니다.




fork


fork는 원격 저장소(github)에 있는 다른 사람이 올린 저장소 상태를 그대로 복사해서 자신의 Github 계정에 원격 저장소를 생성하고 복제하는 기능입니다.



누군가의 원격 저장소 공간으로 들어가면 이런 식으로 화면이 출력됩니다.

저는 git의 저장소를 들어갔습니다.

맨 오른쪽 상단에 [Fork] 라는 버튼이 있습니다. 옆에 숫자는 이 저장소를 몇명이 fork해 갔는지를 나타냅니다.


fork를 해보기 위해 [fork]버튼을 클릭해봅니다.



fork 중인 상태가 뜨게 되고 완료 되면,


위 처럼 내 원격 저장소 공간에 같은 이름의(git)의 저장소 상태가 복제되어 만들어진 것을 확인할 수 있습니다.


fork는 git의 기능이 아니라 git의 기능을 추상화해서 제공하는 github의 기능 입니다. 따라서 git 명령어도 없습니다.

git clone 기능을 github에서 사용한 거라고 볼 수 있습니다.

contributors에 소속되어있지 않아도 fork할 수 있고, fork하면 복제된 내 저장소에서는 코드를 수정하고 반영해볼 수 있습니다.






참고 : 생활코딩 - 지옥에서 온 Git

728x90
반응형