[git] fork 하거나 clone 하거나

박이레·2022년 5월 5일
5

git

목록 보기
3/5
post-thumbnail

 Git은 fork 하거나 clone 해서 작업합니다. 둘은 비슷하지만 약간 다릅니다. 둘의 차이를 알면 좋습니다. 그런데 몰라도 괜찮습니다. 아는 것이 힘이지만 아는 데에 힘이 들면 곤란합니다. 개념이 너무 어렵다면 둘의 차이는 나중에 알아봐도 됩니다.

일단 Git을 통해 코드를 다운로드 하는 것이 목적이니까 아래 그림을 따라 해볼까요? 다 따라하고 나면 차이점을 힘 들이지 않고 알게 됩니다 😚


fork, clone 차이점

fork한 작업은 원본 작업의 변화를 알 수 없습니다. fork는 원본 저장소를 복사하여 새 저장소(내 github에)를 생성하는 작업입니다. 모든 파일을 포함해서 가져오지만 원본 저장소의 변경 사항을 추적하지는 않습니다. 만약 fork를 뜬 후 원본 저장소에서 변경 사항을 적용하려면 fetch나 pull을 해야 합니다.

반면 clone한 작업은 원본 작업의 변화를 알 수 있습니다.



Clone

Clone는 아래와 같이 크게 네가지 명령어를 알면 됩니다. 일단 그림을 보고 따라해볼까요?

① git clone {복사할 주소}
② git add .
③ git commit
④ git push

먼저 Git 연습용 repository를 방문합니다. 초록색 박스로 된 <>Code를 클릭하면 Clone할 수 있는 주소가 나옵니다.

주소를 메모장에서 한번 확인해볼까요?
주소의 구조는 git@github.com:사용자이름/레포지토리이름.git으로 구성돼 있습니다.

그럼 이제 터미널을 이용해 복사할 위치로 이동합니다. 이동 명령어는 cd(Change Directory)입니다. 저는 Documents로 이동하겠습니다.

그럼 이제 clone 명령어를 사용해볼까요?

git clone git@github.com:parkirae/commitConvention.git

clone 명령어가 성공적으로 실행됐습니다. 정말 복사가 잘 되었는지 확인해볼까요? 리스트를 확인하는 명령어는 ls(list)입니다.

commitConvention 폴더가 정상적으로 clone 됐습니다.

GUI 환경에서도 확인해볼까요?

아주 잘 들어왔습니다. 이제 clone 작업은 끝났습니다. 이제 코드를 작성해볼까요?

cd 명령어로 clone한 폴더로 이동합니다.

개인 컴퓨터의 쉘 설정마다 모양은 좀 다를 수 있는데요. 중요한 점은 git:(main) 부분입니다. 우리는 현재 main branch에서 작업을 하고 있다는 뜻입니다.

코드를 작성해볼까요? vim editor를 사용해서 간단하게 작성해보겠습니다.

vi test.txt

I를 눌러 Insert Mode로 진입한 뒤 문구를 작성합니다.(I는 반드시 대문자여야 작동합니다.)

ESC를 눌러 Insert Mode에서 빠져나옵니다.

:wq를 입력한 뒤 Enter를 누릅니다. (wq는 write & quit입니다.)

우리가 작성한 파일을 한번 확인해볼까요? 아래 코드는 Git 상태를 보여줍니다. 터미널에 입력해줍니다.

git status

Untracked files: 부분이 보입니다! 이는 우리가 작성한 test.txt 파일이 우리 컴퓨터에는 저장되어 있지만, 깃허브에는 아직 올라가 않았음을 뜻합니다.

이제 깃허브에 우리가 작성한 파일을 올려볼까요? 아래 명령어를 입력합니다.(add . 사이에는 스페이스가 반드시 들어가야 합니다.)

git add .

우리가 어떤 작업을 한 것인지 메시지(커밋 메시지)를 남겨야 합니다. 아래 명령어를 통해 입력합니다.(커밋 메시지는 규칙이 있습니다. 규칙 확인)

git commit -m "작성하고 싶은 메시지"

이제 깃허브에 우리가 작성한 파일을 올려보겠습니다. 아래 명령어를 입력합니다.

git push origin main

와! 우리가 작성한 파일이 깃허브에 정상적으로 올라갔습니다!
깃허브를 더 스마트하게 사용하기 위해서는 branch, fetch, upstream 등을 알아야 하는데요. 그건 나중에 필요할 때 검색해서 배우면 됩니다.

git clone 작업은 끝났습니다!



Fork

Fork는 아래와 같이 크게 다섯가지 명령어를 알면 됩니다. 일단 그림을 보고 따라해볼까요?

① git clone {포크한 주소}
② git remote
③ git add .
④ git commit
⑤ git push

먼저 Git 연습용 repository를 방문합니다. 우측 상단에 Fork를 선택하고, Create a new fork를 선택합니다.

Create fork를 선택합니다.

차이점이 느껴지시나요? 이제 제 깃허브에 코드가 fork된 겁니다. 왼쪽 상단 이름 부분에 보면 parkirae(Git 연습용 repository)에서 iraedoremi(내 Github)로 변경된 것을 볼 수 있습니다.

다음 작업은 clone과 동일합니다. 먼저 <> Code를 선택하고 주소를 복사합니다.

주소를 메모장에서 한번 확인해볼까요?
주소의 구조는 git@github.com:사용자이름/레포지토리이름.git으로 구성돼 있습니다.

그럼 이제 터미널을 이용해 복사할 위치로 이동합니다. 이동 명령어는 cd(Change Directory)입니다. 저는 Documents로 이동하겠습니다.

그럼 이제 clone 명령어를 사용해볼까요?

git clone git@github.com:iraedoremi/commitConvention.git

clone 명령어가 성공적으로 실행됐습니다. fork작업은 remote 작업을 추가로 해줘야 하는데요.

아래 명령어를 입력합니다.

git remote add upstream git@github.com:commitConvention.git

이제 remote 작업이 끝났습니다! 이후 작업은 clone에서 했던 것과 동일합니다.

cd 명령어로 clone한 폴더로 이동합니다.

개인 컴퓨터의 쉘 설정마다 모양은 좀 다를 수 있는데요. 중요한 점은 git:(main) 부분입니다. 우리는 현재 main branch에서 작업을 하고 있다는 뜻입니다.

코드를 작성해볼까요? vim editor를 사용해서 간단하게 작성해보겠습니다.

vi test.txt

I를 눌러 Insert Mode로 진입한 뒤 문구를 작성합니다.(I는 반드시 대문자여야 작동합니다.)

ESC를 눌러 Insert Mode에서 빠져나옵니다.

:wq를 입력한 뒤 Enter를 누릅니다. (wq는 write & quit입니다.)

우리가 작성한 파일을 한번 확인해볼까요? 아래 코드는 Git 상태를 보여줍니다. 터미널에 입력해줍니다.

git status

Untracked files: 부분이 보입니다! 이는 우리가 작성한 test.txt 파일이 우리 컴퓨터에는 저장되어 있지만, 깃허브에는 아직 올라가 않았음을 뜻합니다.

이제 깃허브에 우리가 작성한 파일을 올려볼까요? 아래 명령어를 입력합니다.(add . 사이에는 스페이스가 반드시 들어가야 합니다.)

git add .

우리가 어떤 작업을 한 것인지 메시지(커밋 메시지)를 남겨야 합니다. 아래 명령어를 통해 입력합니다.(커밋 메시지는 규칙이 있습니다. 규칙 확인)

git commit -m "작성하고 싶은 메시지"

이제 깃허브에 우리가 작성한 파일을 올려보겠습니다. 아래 명령어를 입력합니다.

git push origin main

와! 우리가 작성한 파일이 깃허브에 정상적으로 올라갔습니다!

fork는 clone과 비교했을 때 remote 작업이 추가된 것 외에는 크게 다르지 않지요?
깃허브를 더 스마트하게 사용하기 위해서는 branch, fetch, upstream 등을 알아야 하는데요. 그건 나중에 필요할 때 검색해서 배우면 됩니다.


오류가 발생했다면 댓글로 남겨주세요 :)


끝.

profile
혜화동 사는 Architect

2개의 댓글

comment-user-thumbnail
2023년 8월 24일

음 git clone이 변화를 알 수 없나요..?
Git clone이 되는 순간 remote 가 연결되고
Pull을 받으면 변화사항을 모두 알 수 있지 않나요..?

1개의 답글