File: /home/mocapict-106/mocapictures.kr/README.md
# AmuzCMS - UP
## 프로젝트 시작하기
- 프로젝트의 독립성을 위해 저장소를 Fork 하여 새 애플리케이션을 시작하기를 권장합니다. 이 패키지의 저장소는 [https://github.com/amuzcorp/cms-up](https://github.com/amuzcorp/cms-up) 입니다. 저장소의 Fork 기능을 이용해 새 프로젝트를 시작하십시오.
### 로컬 저장소에 원본 저장소 등록
- Fork 가 완료된 후, 가장먼저 해야 할 일은, 원본 저장소를 등록하는 것 입니다. 필수는 아니지만, 대부분의 경우 권장됨을 유의하세요.
- 로컬에 `clone` 된 프로젝트의 `최상위폴더` 에서 다음과 같이 입력합니다.
```shell
git remote add upstream https://github.com/amuzcorp/cms-up
```
### 원본 저장소에 병합요청
- 원본저장소를 위해 변경해야할 사항이 있다면, 변경요청을 진행할 수 있습니다.
- 이때 원본 저장소에 수정내역을 업데이트 하기 전에, 변경할 사항을 Fork 된 저장소에 Commit / Push 해야합니다.
- 그리고, 준비가 완료되면 다른 사람들이 먼저 수정한 내역이 있는지 확인해야 합니다.
```shell
git fetch upstream
```
- 원본저장소로 보낼 커밋에는 새 프로젝트의 파일이 섞이지않도록 분리하여 커밋 해 주세요.
- `cms-up` 원본 저장소로 보낼 브랜치를 만들어줍니다.
```shell
git checkout -b cms-up/update
```
- 대화형 커맨드에 포함할 마지막 커밋수를 입력하여 브랜치를 리베이스합니다.
- 예를들어 10을 입력했다면, 최근 10개의 커밋 중 무엇을 포함하고 버릴지를 선택할 수 있게 됩니다.
```shell
git rebase -i HEAD~n
```
- 제외할 커밋을 drop 으로 변경합니다. (vi 에디터 처럼 사용)
- 저장 및 종료 후 push 해줍니다.
- 문제가 없다면, 즉시 [원본 저장소의](https://github.com/amuzcorp/cms-up) 리포지티로 이동하여 `PullRequest`를 작성할 수 있습니다.
- 만약 다른 사람이 커밋한 내역으로 인해 Conflict가 발생했다면, Conflict를 해결한 뒤 해결된버전의 Commit 을 다시 Fork된 저장소에 Push 하여, `Pull Request` 해 주세요.
- 작업이 끝나면 로컬과 원격의 브런치를 모두 삭제 해 줍니다.
```shell
git checkout main
git branch -d cms-up/update
git push origin -d cms-up/update
```
### 원본저장소의 최신내용을 Fork된 저장소로 반영하기
- 새 애플리케이션의 작업을 시작한 이후에 CMS-UP에 더 많은 내용이 반영되어있다고 판단하면, 언제든 원본 저장소에서 최신내용을 가져와 동기화할 수 있습니다.
- 원본 저장소의 최신 내용을 가져옵니다.
```shell
git fetch upstream
```
- merge할 브랜치로 변경한 다음, 원본 저장소의 변경사항을 로컬 브랜치에 merge 합니다.
```shell
git checkout main
git merge upstream/main
```
- 변경사항을 Fork 된 저장소에 반영 해 줍니다.
```shell
git push origin main
```