-
Notifications
You must be signed in to change notification settings - Fork 89
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c4410f9
commit ec372b3
Showing
3 changed files
with
89 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# 과제 1 (난이도 하) | ||
|
||
![GitHub Triangle](../resources/git-and-github-initial-setup.png) | ||
|
||
(그림 [출처](https://docs.microsoft.com/en-us/contribute/get-started-setup-local)) | ||
|
||
> 위 그림을 참고해 하단부의 빈칸을 완성해주세요. 들어갈 수 있는 단어 혹은 명령어는 다음과 같습니다. | ||
- origin | ||
- upstream | ||
- 클론 | ||
- 포크 | ||
- merge | ||
- fetch | ||
- rebase | ||
- git pull | ||
- git clone | ||
- git remote add upstream | ||
|
||
|
||
## 로컬 머신에 작업 환경 구축하기 | ||
|
||
오픈소스 기여의 시작은 기여하고자 하는 리포지토리를 내 계정으로 **포크**하는 것부터 시작됩니다. **포크**가 완료되면 내 GitHub 계정에서 **포크**한 리포지토리의 주소를 확인할 수 있습니다. | ||
|
||
포크 받은 리포지토리 주소 앞에 **git clone**를 붙여 만든 명령어를 로컬 머신(내 컴퓨터)에 입력하면 로컬 머신에 해당 리포지토리를 **클론**받을 수 있습니다. | ||
|
||
참고로, git clone 명령어로 리포지토리를 최초로 클론받는 경우, 해당 리포지토리의 기본 별명은 **origin**이 됩니다. | ||
|
||
## 소스 코드 최신으로 유지하기 | ||
|
||
최신 소스 코드를 받아오려면 먼저, 최신 소스 코드가 담긴 리포지토리를 내 로컬 환경과 연결해줘야 합니다. 이럴 땐 **git remote add upstream**이라는 명령어를 사용하면 됩니다. | ||
|
||
**upstream**은 origin과 같이 리모트 리포지토리를 식별할 수 있는 별명으로, 이름표와 같기 때문에 원하는 대로 수정할 수 있습니다. 다만, 대부분의 git·GitHub 튜토리얼에서 포크 받은 리포지토리는 origin, 원 리포지토리는 **upstream**이라는 별명을 붙여 식별하기 때문에 이런 식별 방법을 미리 알아두는 것이 좋습니다. | ||
|
||
upstream 리포지토리에 있는 최신 변경분을 로컬 리포지토리에 가져오는 방법은 다양합니다. 가장 쉬운 방법은 **git pull**명령어를 사용하는 것입니다. pull은 **fetch**와 **merge**를 합한 명령어입니다. | ||
|
||
이외에도 **fetch** 후, **rebase**를 사용하는 방법이 있는데, rebase는 브랜치를 깔끔하게 관리할 수 있다는 장점이 있습니다. 다만, rebase를 사용하면 커밋 식별자가 변경되기 때문에, 이 점에 주의해야 합니다. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# 과제 2 (난이도 중) | ||
|
||
[링크](http://try.github.io/)에 들어가면 GitHub에서 추천하는 양질의 git·GitHub 학습자료를 확인할 수 있습니다. 많은 개발자들과 실험해본 결과 이 중 [Learn Git Branching](https://learngitbranching.js.org/)이 개념 학습과 실무에 큰 도움이 된다는 결론을 내리게 되었습니다. | ||
|
||
Learn Git Branching 사이트를 열어 모든 과제를 직접 끝내 봅시다. | ||
|
||
과제 완료 후 화면을 캡쳐한 후, 이미지 내에 자신의 GitHub username을 적어주세요. 그리고 해당 이미지 파일을 resources 디렉터리로 옮긴 후, 아래와 같이 마크다운 파일에 삽입해 주시면 됩니다. | ||
|
||
|
||
## 과제 완료 캡쳐 화면 | ||
|
||
**자신의 username이 적힌 그림 파일이 하단에 보여야 합니다.** | ||
|
||
![learn-git-branching-level-1](../resources/learn-git-branching-level1.png) | ||
|
||
![learn-git-branching-level-2](../resources/learn-git-branching-level2.png) | ||
|
||
## 응원의 말 | ||
|
||
여기 있는 명령어를 모두 외우지 않아도 괜찮습니다. git으로 어떤 작업을 할 수 있는지 정도만 알아 두었다가, 필요할 때 다시 Learn Git Branching 사이트로 돌아와 가상 환경에서 실습한 후 실무에 적용하는 개발자들이 많습니다. 겁먹지 마세요! | ||
|
||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# 과제 3 (난이도 상) | ||
|
||
https://github.com/udacity/asteroids 에 들어가 해당 리포지토리를 로컬 머신에 클론 받고 다음 과제를 수행해주세요. | ||
|
||
## 버그를 유발한 커밋 찾기 | ||
|
||
asteroids를 실행하면 우주선과 소행성이 나타납니다. 키보드에서 ←와 →를 누르면 우주선이 가리키는 방향이 바뀌고, ↑를 누르면 우주선이 전진합니다. 스페이스 바를 누르면 로켓이 발사되죠. | ||
|
||
index.html 파일을 열고 게임을 직접 실행해 봅시다. | ||
|
||
![asteroids-intro](../resources/asteroids-intro.png) | ||
|
||
엇! 그런데 에러가 있네요. 스페이스 바에서 손을 떼지 않고 계속 눌러봅시다. 쉼 없이 총알이 발사됩니다. | ||
|
||
![asteroids-bug](../resources/asteroids-bug.png) | ||
|
||
이렇게 끊임없이 총알이 발사되면 게임을 금방 깰 수 있어서 안 됩니다. 처음엔 총알이 끊임없이 발사되지 않도록 구현했었는데, 어디선가 총알이 끊임없이 발사되도록 하는 코드가 들어간 것 같네요. | ||
|
||
어떤 커밋때문에 버그가 생겼는지 찾아봅시다. 그리고 버그를 수정하려면 어떻게 해야 하는지 적어봅시다. | ||
|
||
### 정답 | ||
|
||
버그를 유발한 커밋 id: 25ede836903881848fea811df5b687b59d962da3 | ||
어떻게 하면 버그를 수정할 수 있는지: 삭제된 코드(this.delayBeforeBullet = 10;)를 복구한다. | ||
|
||
### 힌트 | ||
|
||
과제 2를 통해 커밋도 체크아웃 할 수 있다는 것을 배웠습니다. 이전 커밋을 체크하웃하면 타임머신을 타고 과거로 돌아갈 수 있습니다! |