Git 이란? (해당 사이트에서 Git 이란? 타이틀만 참고해주세요.)

0. Git 설치

1. GitHub Organization의 Repository 로컬로 들고오기

1-1. https://github.com/likelion-PNU-12th-BE (해당 링크에 권한이 없으시다면 Organization 초대 수락을 해주세요.)

**1-2. week-assignment 레포지토리를 클릭해서 들어가주세요.**

![스크린샷 2024-04-05 오후 11.17.31.png](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/e2c731b4-33e7-4a56-b92f-32772ec3b2de/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-04-05_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_11.17.31.png>)

**1-3. 과제 레포지토리 포크 하기**

![스크린샷 2024-04-05 오후 11.23.04.png](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/69414fd5-1f91-4170-a67f-fe2020f72db7/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-04-05_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_11.23.04.png>)

**1-3-1. 페이지 하단의 Copy the `main` branch only 체크 해제해주세요.**

![스크린샷 2024-04-05 오후 11.32.00.png](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/fb28ace5-4307-45a0-934c-e739211d13c4/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-04-05_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_11.32.00.png>)

**1-3-2. 이후 Create fork 를 클릭해주세요.**

**1-3-3. 아래처럼 본인의 깃허브 저장소에 과제 레포지토리가 생성되면 성공이에요.2. 과제 레포지토리 클론하기**

![스크린샷 2024-04-05 오후 11.36.13.png](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/08c249e2-7851-474a-95b2-36610ccd6178/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-04-05_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_11.36.13.png>)

## 2. 프로젝트 복사하기

1. **로컬 저장소(내 컴퓨터)에 레포지토리 클론하기 [clone이란?](<https://www.atlassian.com/ko/git/tutorials/setting-up-a-repository/git-clone>)**
    
    ![이미지 2024. 4. 5. 오후 11.42.jpg](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/73bdb14f-37ca-4668-87f2-41464d7c1785/%E1%84%8B%E1%85%B5%E1%84%86%E1%85%B5%E1%84%8C%E1%85%B5_2024._4._5._%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_11.42.jpg>)
    
    1) 클릭하기
    2) Git 주소 복사하기
    
    2-1. 윈도우 기준 레포지토리 저장 경로
    
    ```jsx
    C:\\Users\\[자신의 로컬 경로]\\...\\Documents\\GitHub
    
    ex) C:\\Users\\jonghan\\Documents\\GitHub
    ```
    
    해당 경로에서 우클릭 후 `Git Bash Here` 를 선택하면 Git Bash 창이 뜨게 됩니다.
    
    ![Untitled](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/180119e8-bac1-4a28-a2a7-3a5035d4450b/Untitled.png>)
    
    ![Untitled](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/eb194425-ed06-4848-ada9-2c36d66f09aa/Untitled.png>)
    
    **2-2. 맥 기준 레포지토리 저장 경로**
    
    ![스크린샷 2024-04-05 오후 11.48.31.png](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/4fa5096a-5c6d-46c9-be32-4a67b2c4c6f0/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-04-05_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_11.48.31.png>)
    
    최종 경로가 GitHub 인 상태에서 위에서 복사한 Git 을 클론해주세요. 아래 명령어 줄을 cmd 창, 터미널에 입력하시면 됩니다.
    
    ```jsx
    git clone <https://github.com/깃허브> 닉네임/week-assignment.git likelion-BE-weekly
    ```
    
    위에 표기된 주소는 복사-붙여넣기 시 동작하지 않으니 꼭 깃허브에서 복사한 주소로 클론해주세요.
    
    <aside>
    💡 명령어를 사용해서 원하는 디렉토리 경로에 복제합니다.
    이 때 전체 명령의 뜻을 해석하자면
    `git` 명령어 중 복제 기능을 가진 `clone` 명령어를 사용해 해당 URL을 가진 레포지토리를 `likelion-BE-weekly` 라는 이름으로 가져온다는 뜻이에요.
    
    </aside>
    
    **2-3. 클론한 경로로 이동해주세요.**
    
    ```jsx
    cd likelion-BE-weekly
    ```
    

## 3. 자신의 작업 브랜치로 변경하기

**3. 자신의 작업 브랜치로 변경해주세요. 다른 크루원들의 브랜치는 건드리면 큰일 나니 주의해주세요. 
    [브랜치란?](<https://6mini.github.io/git/2022/06/12/branch/>)**
**또한, main 브랜치는 운영진들만 관리하는 브랜치이니 !!절대!! 건들지 말아주세요.**

```jsx
git checkout feat-본인 이름을 한글로
ex) git checkout feat-고민석
```

**3-1. 자신의 작업 브랜치로 변경되었는지 확인해주세요.**

```jsx
git branch
```

![스크린샷 2024-04-06 오전 12.03.21.png](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/e8366d21-d882-49ff-8541-7a301626ecd0/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-04-06_%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB_12.03.21.png>)

*의 위치가 본인의 작업 브랜치에 위치하면 성공입니다!!

## 1~3 과정 예시 (Windows)

![Untitled](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/ff54ca80-b1b5-4b29-aad7-d9a7ec1ed81b/Untitled.png>)

## 4. 작업 변경 사항 저장하기 Commit/Push

[commit 과 push 알아보기](<https://www.daleseo.com/git-push/>)

**4-1. commit 하기**

```jsx
git commit -a -m "커밋 메시지"
ex) git commit -a -m "1주차 과제 제출"
```

해당 명령줄에서 `-a` 는 모든 변경 사항을 추적한다는 뜻이에요. 또한 `-m`은 commit 을 할 때 남길 메시지를 작성하겠다는 명령입니다.
(git add 에 대해서 좀 더 알아보고 싶으시다면 구글링을 추천드려요! 참고로 commit 은 자주 할수록 좋아요.)

결론적으로 **“나는 모든 변경 사항을 추적하고, 남기고 싶은 메시지를 포함해 commit 을 하겠다.”** 라는 의미의 명령줄이에요.

**4-2. push 하기**

commit 을 통해 변경 사항을 적용했다면, 깃허브(원격 저장소)에 변경 사항을 저장해야해요.

이럴 때 사용하는게 push 명령어입니다.

```jsx
git push
```

push 를 통해 로컬 저장소(내 컴퓨터)에서 원격 저장소(포크한 레포지토리)로 변경 사항이 전송되고 저장되었어요.

(깃허브 페이지에 들어가서 확인해보셔도 좋아요!)

## 5. Pull Request 보내기

[pull request 알아보기](<https://holika.tistory.com/entry/Git-%EC%82%BD%EC%A7%88%EA%B8%B0%EB%A1%9D-PR%EC%9D%84-%EC%98%AC%EB%A6%AC%EB%8B%A4-Pull-Request%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C>)
**5-1. Pull Request 생성하기**
1) Pull requests 탭으로 이동해주세요.
2) New pull request 를 클릭해주세요.

![이미지 2024. 4. 6. 오전 12.21.jpg](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/fe720692-99e2-4422-845f-2463c4c2551d/%E1%84%8B%E1%85%B5%E1%84%86%E1%85%B5%E1%84%8C%E1%85%B5_2024._4._6._%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB_12.21.jpg>)

**5-2. Pull Request 요청 대상 및 수락 대상 확인하기**

1) base repository 는 멋사 백엔드 오가니제이션에 있는 레포지토리예요.
(fork 전 레포지토리)
2) head repository 는 아까 클론했던 레포지토리예요.
(내 컴퓨터에 있는 레포지토리)

3) base 는 과제를 제출할 브랜치예요.

4) compare 은 내가 과제를 진행한 브랜치예요.

![스크린샷 2024-04-06 오전 12.28.56.png](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/8a4915f3-35a0-4f16-8878-465d159ec082/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-04-06_%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB_12.28.56.png>)

**5-3. 아래 처럼 과제를 진행한 브랜치 → 과제를 제출할 브랜치(feat-본인이름) 로 설정해주세요.**

![스크린샷 2024-04-06 오전 12.25.45.png](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/444aa3fa-2268-4483-962d-80691054cb34/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-04-06_%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB_12.25.45.png>)

**5-4. 이후 Create pull request 를 클릭해주세요.**

**5-5. 아래의 형식으로 작성 후 Create pull request 를 클릭해주세요.**

![스크린샷 2024-04-06 오전 12.32.46.png](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/1c584c40-c0e9-489c-b0cb-8735bc1be449/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-04-06_%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB_12.32.46.png>)

**5-6. 아래처럼 멋사 오가니제이션 레포지토리에서 Pull Request 를 확인할 수 있다면 성공입니다!!**

![스크린샷 2024-04-06 오전 12.33.51.png](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/5ac39910-a3da-459a-b6da-fb5485168eb1/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-04-06_%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB_12.33.51.png>)

## **주의할 점!!**

![스크린샷 2024-04-06 오전 12.35.03.png](<https://prod-files-secure.s3.us-west-2.amazonaws.com/5347cb9c-fd8d-4f30-b8bc-5e92de27e1e0/ee18ae58-2559-4143-a3c6-abf1f65b1393/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-04-06_%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB_12.35.03.png>)

사진 하단의 Merge pull request 는 변경 사항을 병합한다는 뜻이에요. 즉 “내가 제출한 과제를 과제 제출 브랜치에 저장을 하겠다” 를 의미합니다.

**과제 제출에 대한 Merge 는 운영진들이 일괄로 해드릴 예정이니 직접 Merge 를 하시면 절대 안됩니다!!**

## 6. 과제 제출 성공!

과정이 정말 복잡하지만 이번 기회에 Git 사용법을 터득 하신다면 추후 개발을 학습하실 때에 엄청난 효과를 기대하실 수 있을 거 같아요.

나중에 있을 해커톤, 프로젝트 할 때에 이러한 방식으로 협업을 하니 꼭 잘 익혀셔서 **Git 고수**가 되셨으면 좋겠습니다!

해당 가이드라인에 대한 모든 문의사항은 **디스코드 채널의 백엔드 채널**이나 아래 연락처로 문의 주시면 감사드리겠습니다.

<aside>
💡 **가이드라인 문의**

트랙 리더: 🌈✨🔥👑**고민석👑**✨🔥🌈 ****(010-7476-6774)

</aside>