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>
원본 저장소
fork 한 저장소
clone
원본 저장소의 소스코드 등을 내 로컬 저장소로 그대로 가져오는 기능
STEP 1 내 repository를 clone 하기 위해 fork 한 저장소 주소 복사하기
STEP 2 clone
git clone [로컬 저장소 주소] [생성 폴더명]
git clone https://github.com/arcenciells/practice-4team.git
// 생성 폴더명을 생략한다면 저장소 이름과 동일한 이름으로 생성
// 원격지에 있는 데이터가 내 로컬에 받아지고 로컬 레포지터리가 생성 되는데 이것이 원격지랑 연결 되는 것임
STEP 3 내용까지 동일하게 clone 된 것을 확인 가능
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 해주는 것
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 수행되어짐
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 방식을 통해 협업 진행 할 수 있는 실습 위주로 스터디 진행