Git fork

박다현·2023년 7월 22일
0

likelion

목록 보기
14/23
post-thumbnail

01 fork


fork
다른 사람의 github repository 를 복제하여 어떤 부분을 수정, 추가, 삭제를 용이하도록 해주는 복제 기능

fork 한 저장소는 원본 (repository) 와 연결되어 있어 원본에 변화가 생기면 그대로 forked 된 repository로 반영할 수 있음

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Comfortible" content="IE=edge">
    <meta name="viewpoint" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
  </head>
  <body>
    <h1>hihi</h1>
  </body>
</html>

repository 비교하기

원본 저장소

fork 한 저장소



02 clone


clone
원본 저장소의 소스코드 등을 내 로컬 저장소로 그대로 가져오는 기능

STEP 1 내 repository를 clone 하기 위해 fork 한 저장소 주소 복사하기

STEP 2 clone

git clone [로컬 저장소 주소] [생성 폴더명]

git clone https://github.com/arcenciells/practice-4team.git

// 생성 폴더명을 생략한다면 저장소 이름과 동일한 이름으로 생성
// 원격지에 있는 데이터가 내 로컬에 받아지고 로컬 레포지터리가 생성 되는데 이것이 원격지랑 연결 되는 것임

STEP 3 내용까지 동일하게 clone 된 것을 확인 가능



03 remote


remote

외부의 깃허브 저장소가 있는 url에 대한 별칭을 만들어 관리하기 위한 명령어

STEP 1 저장소 목록 확인하기

git remote -v

STEP 2 원본 저장소 추가하기

git remote add upstream [원격저장소 이름]

git remote add upstream https://github.com/likelionhyw/hywoman.git

// 보통 fork에서 원본 저장소의 이름은 upstream 사용

STEP 3 추가한 후 저장소 목록 확인하기

STEP 4 코드 수정하기

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Comfortible" content="IE=edge">
    <meta name="viewpoint" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
  </head>
  <body>
    <h1>hihi</h1>
    <div>park da hyun</div>
  </body>
</html>

STEP 5 stage area에 저장하기

git add.

// add를 하여 모든 파일의 변경 사항들을 commit 단계 이전의 공간인 stage area 저장

STEP 6 commit 수행하기

git commit -m "[메세지]"

git commit -m "title, div"

// commit : 의미 있는 변화에 대해 기록하는 것 

STEP 7 원격 저장소로 push 하기

git push origin main

// 변경 사항들을 연결시켜 둔 원격 저장소 (내 repository)로 push 해주는 것



04 pull request


pull request

사용자가 원격 저장소에 push 하여 새로운 사항이 적용됐을 경우, 다른 사용자에게 push된 상황을 알리는 것을 의미

STEP 1 pull request or 1 commit ahead

push 한 코드들을 보내기 위해 나의 포크한 레퍼지토리에 접속한 후 보내기 위해

STEP 2 new pull request click

어느 부분이 수정되었고 삭제 되었는 지 확인 가능

STEP 3 제목과 내용을 적어준 후 create pull requests 해주기

STEP 4 관리자가 merge 해주면 원본 저장소에 수정 내역이 반영된 모습을 확인 가능

STEP 5 confirm merge > merge 수행되어짐



05 변경사항 불러오기


STEP 1 git fetch upstream

% git fetch upstream
// 외부 원본 저장소의 최신 내용 가져오기

remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 3 (delta 1), pack-reused 0
Unpacking objects: 100% (3/3), 286 bytes | 17.00 KiB/s, done.
From https://github.com/arcenciells/practice-4team

STEP 2 git merge upstream/main

% git merge upstream/main
// 원본 저장소의 변경사항을 로컬 브랜치에 merge 해주기

Updating 2daeb44..33d1460
Fast-forward
 h.html     | 0
 hello.html | 2 +-
 2 files changed, 1 insertion(+), 1 deletion(-)
 delete mode 100644 h.html

STEP 3 추가된 div 태그 확인하기

STEP 4 merge 한 변경사항들을 나의 레퍼지토리에도 보내주기 위해 push 하기



git fork 방식을 통해 협업 진행 할 수 있는 실습 위주로 스터디 진행


0개의 댓글