Git 이란? (해당 사이트에서 Git 이란? 타이틀만 참고해주세요.)
Git 이 컴퓨터에 설치 되어있지 않으시다면 먼저 설치를 해주세요.
0-1. 윈도우 깃 설치
0-2. 맥 깃 설치
1-1. https://github.com/likelion-PNU-12th-BE (해당 링크에 권한이 없으시다면 Organization 초대 수락을 해주세요.)
**1-2. week-assignment 레포지토리를 클릭해서 들어가주세요.**

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

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

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

## 2. 프로젝트 복사하기
1. **로컬 저장소(내 컴퓨터)에 레포지토리 클론하기 [clone이란?](<https://www.atlassian.com/ko/git/tutorials/setting-up-a-repository/git-clone>)**

1) 클릭하기
2) Git 주소 복사하기
2-1. 윈도우 기준 레포지토리 저장 경로
```jsx
C:\\Users\\[자신의 로컬 경로]\\...\\Documents\\GitHub
ex) C:\\Users\\jonghan\\Documents\\GitHub
```
해당 경로에서 우클릭 후 `Git Bash Here` 를 선택하면 Git Bash 창이 뜨게 됩니다.


**2-2. 맥 기준 레포지토리 저장 경로**

최종 경로가 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
```

*의 위치가 본인의 작업 브랜치에 위치하면 성공입니다!!
## 1~3 과정 예시 (Windows)

## 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 를 클릭해주세요.

**5-2. Pull Request 요청 대상 및 수락 대상 확인하기**
1) base repository 는 멋사 백엔드 오가니제이션에 있는 레포지토리예요.
(fork 전 레포지토리)
2) head repository 는 아까 클론했던 레포지토리예요.
(내 컴퓨터에 있는 레포지토리)
3) base 는 과제를 제출할 브랜치예요.
4) compare 은 내가 과제를 진행한 브랜치예요.

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

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

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

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

사진 하단의 Merge pull request 는 변경 사항을 병합한다는 뜻이에요. 즉 “내가 제출한 과제를 과제 제출 브랜치에 저장을 하겠다” 를 의미합니다.
**과제 제출에 대한 Merge 는 운영진들이 일괄로 해드릴 예정이니 직접 Merge 를 하시면 절대 안됩니다!!**
## 6. 과제 제출 성공!
과정이 정말 복잡하지만 이번 기회에 Git 사용법을 터득 하신다면 추후 개발을 학습하실 때에 엄청난 효과를 기대하실 수 있을 거 같아요.
나중에 있을 해커톤, 프로젝트 할 때에 이러한 방식으로 협업을 하니 꼭 잘 익혀셔서 **Git 고수**가 되셨으면 좋겠습니다!
해당 가이드라인에 대한 모든 문의사항은 **디스코드 채널의 백엔드 채널**이나 아래 연락처로 문의 주시면 감사드리겠습니다.
<aside>
💡 **가이드라인 문의**
트랙 리더: 🌈✨🔥👑**고민석👑**✨🔥🌈 ****(010-7476-6774)
</aside>