From 991ee8cf9f2ba9aa49e375140cfe87cd4cbc2452 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 11:57:58 +0900 Subject: [PATCH 01/44] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 8155c99..631bef7 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,12 @@ git add * ``` +- ignore 파일이나, 삭제한 파일 이력까지 커밋을 하실 경우, `-f` 옵션을 이용합니다. + + ```shell + git add * -f +``` + #### 소스 커밋, 메시지 작성 - 소스를 커밋하시면 `Tracked` 상태에서 `Strage` 상태로 변경됩니다. From 3cf3fde722b56f0c4153abc6a5ee9cb48887b062 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 12:01:12 +0900 Subject: [PATCH 02/44] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 631bef7..62d1419 100644 --- a/README.md +++ b/README.md @@ -74,3 +74,7 @@ ```shell git status ``` + +- `git add` 이후 `git status`를 하면 아래와 같은 화면이 나옵니다. + +![Refer01](http://www.nhpcw.com/upload/2016-01-06%2B11%253B59%253B51_010616120036.PNG) From 37f8eb0b04313ce583814b1b0741db0f49754004 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 12:01:21 +0900 Subject: [PATCH 03/44] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 62d1419..5c75196 100644 --- a/README.md +++ b/README.md @@ -77,4 +77,4 @@ - `git add` 이후 `git status`를 하면 아래와 같은 화면이 나옵니다. -![Refer01](http://www.nhpcw.com/upload/2016-01-06%2B11%253B59%253B51_010616120036.PNG) + ![Refer01](http://www.nhpcw.com/upload/2016-01-06%2B11%253B59%253B51_010616120036.PNG) From 6ce165f59368f3eb98e5422209074183dc35ad31 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 12:04:33 +0900 Subject: [PATCH 04/44] Update README.md --- README.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c75196..4178962 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ #### 소스 커밋, 메시지 작성 -- 소스를 커밋하시면 `Tracked` 상태에서 `Strage` 상태로 변경됩니다. +- 소스를 커밋하시면 `Tracked` 상태에서 `Stage` 상태로 변경됩니다. - 파일 추적상태의 경우 `git status` 명령을 이용해서 확인합니다. ```shell @@ -78,3 +78,23 @@ - `git add` 이후 `git status`를 하면 아래와 같은 화면이 나옵니다. ![Refer01](http://www.nhpcw.com/upload/2016-01-06%2B11%253B59%253B51_010616120036.PNG) + +- Stage 상태의 파일은 아직 기록된 상태가 아닙니다. +- 파일의 기록을 위해서는 `커밋` 작업이 필요합니다. +- `git commit` 명령을 통해 Stage 상태의 파일을 커밋할 수 있습니다. + + ```shell + git commit -m "커밋 메시지를 적으시면 됩니다." +``` + +- `-m` 옵션을 이용하여 커밋 메시지를 작성하는 것을 권장합니다. +- 실수로 커밋을 하여, 다시 커밋을 할 경우 커밋을 덮어씌울 수 있습니다. 이때 `--amend` 옵션을 이용합니다. + + ```shell + git add * + git commit -m "UI 레이아웃 이슈 수정." + + // 수정사항 발생 + git add * + git commit -m "UI 레이아웃 이슈 수정 및 관리자 벨리데이션 추가." --amend +``` From 928ed04196f3e67c08bba3f6e56032c690593bc2 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 12:09:12 +0900 Subject: [PATCH 05/44] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 4178962..95b9d21 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,10 @@ git add * -f ``` +- `git remote show origin`을 통해 origin에 리모트 주소가 잘 등록되었는지 확인해보세요. + + ![Refer2](http://www.nhpcw.com/upload/2016-01-06%2B12%253B06%253B22_010616120718.PNG) + #### 소스 커밋, 메시지 작성 - 소스를 커밋하시면 `Tracked` 상태에서 `Stage` 상태로 변경됩니다. From 9a5304069df51bd0d6a4ab82af840b175b23361e Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 12:09:42 +0900 Subject: [PATCH 06/44] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 95b9d21..38e0011 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,9 @@ ```shell git remote add origin https://github.com/KennethanCeyer/tutorial.git ``` + +---- + #### 소스 기록, 업로드 - 소스를 업로드 하기 위해서는 `git add` 명령어를 이용합니다. @@ -70,6 +73,8 @@ ![Refer2](http://www.nhpcw.com/upload/2016-01-06%2B12%253B06%253B22_010616120718.PNG) +---- + #### 소스 커밋, 메시지 작성 - 소스를 커밋하시면 `Tracked` 상태에서 `Stage` 상태로 변경됩니다. From 0555cd09d1178e840672b1d7602e23a44a08901c Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 12:16:42 +0900 Subject: [PATCH 07/44] Update README.md --- README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/README.md b/README.md index 38e0011..f4f1880 100644 --- a/README.md +++ b/README.md @@ -107,3 +107,22 @@ git add * git commit -m "UI 레이아웃 이슈 수정 및 관리자 벨리데이션 추가." --amend ``` + +---- + +#### 소스의 복원, 리셋 + +- 여러분이 git을 쓰는 이유중에 중요한 부분을 차지하는 영역입니다. +- 정상적으로 커밋된 히스토리는, 리비전으로 git에 관리됩니다. +- 실수로 잘못 작업하였거나, 예전 버전으로 롤백하여 적용할 경우 여러분은 예전 버전으로 리셋하실 수 있습니다. +- 리셋은 `git reset` 명령을 사용합니다. + + ```shell + git reset HEAD^ --soft +``` + +- `git reset` 다음 인수로는 되돌리는 버전의 위치를 가리킵니다. +- 현재위치(HEAD)를 기준하여 상대적인 위치를 설정하거나, 특정 버전 리비전 고유의 해시값을 지정합니다. +- HEAD를 확인하시고 싶으면 `git reflog` 명령을 이용합니다. + + ![Refer3](http://www.nhpcw.com/upload/2016-01-06%2B12%253B16%253B32_010616121637.PNG) From 1837be07ac61253d9bc2996feef8670e47327349 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 12:18:50 +0900 Subject: [PATCH 08/44] Update README.md --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index f4f1880..d04c70b 100644 --- a/README.md +++ b/README.md @@ -126,3 +126,10 @@ - HEAD를 확인하시고 싶으면 `git reflog` 명령을 이용합니다. ![Refer3](http://www.nhpcw.com/upload/2016-01-06%2B12%253B16%253B32_010616121637.PNG) + +- `git reset`의 옵션 중 리셋 특성을 정하는 `--soft, --hard, --mixed` 옵션이 있습니다. +- 위 옵션은 아래에서 자세히 설명합니다. + + - `--soft`는 약한특성의 리셋입니다, 되돌릴 때 기존의 인덱스와 워킹트리를 보존합니다. + - `--hard`는 강한특성의 리셋입니다, 되돌릴 때 기존의 인덱스와 워킹트리를 버립니다. + - `--hard`는 중간특성의 리셋입니다, 되돌릴 때 기존의 인덱스는 버리고 워킹트리를 보존합니다. From da1e9f29f8e539b2efdd9c5d8f1928a8d886faa6 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 12:19:07 +0900 Subject: [PATCH 09/44] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d04c70b..8f0c862 100644 --- a/README.md +++ b/README.md @@ -132,4 +132,4 @@ - `--soft`는 약한특성의 리셋입니다, 되돌릴 때 기존의 인덱스와 워킹트리를 보존합니다. - `--hard`는 강한특성의 리셋입니다, 되돌릴 때 기존의 인덱스와 워킹트리를 버립니다. - - `--hard`는 중간특성의 리셋입니다, 되돌릴 때 기존의 인덱스는 버리고 워킹트리를 보존합니다. + - `--mixed`는 중간특성의 리셋입니다, 되돌릴 때 기존의 인덱스는 버리고 워킹트리를 보존합니다. From 54819f43e2eb79940a45c8885e8115949285079c Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 12:21:51 +0900 Subject: [PATCH 10/44] Update README.md --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 8f0c862..3dde13f 100644 --- a/README.md +++ b/README.md @@ -133,3 +133,16 @@ - `--soft`는 약한특성의 리셋입니다, 되돌릴 때 기존의 인덱스와 워킹트리를 보존합니다. - `--hard`는 강한특성의 리셋입니다, 되돌릴 때 기존의 인덱스와 워킹트리를 버립니다. - `--mixed`는 중간특성의 리셋입니다, 되돌릴 때 기존의 인덱스는 버리고 워킹트리를 보존합니다. + +- 되돌리는 위치의 경우 아래와 같은 타입이 있습니다. + + ```shell + // 바로 이전 단계로 인덱스와 워킹트리를 버리고 리셋. + git reset HEAD^ --hard + + // 바로 두번째 전 단계로 인덱스와 워킹트리를 버리고 리셋. + git reset HEAD~2 --hard + + // 특정 리비전의 기록으로 인덱스는 버리고 워킹트리를 보존하여 리셋. + git reset 991ee8c --mixed +``` From edf2e80d923f76c8b5ec020555ff2d7d407a3c55 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 12:23:46 +0900 Subject: [PATCH 11/44] Update README.md --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 3dde13f..7cb7242 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,15 @@ git remote add origin https://github.com/KennethanCeyer/tutorial.git ``` +- 깃의 리모트 URL을 이용하여 원격저장소에 저장된 파일을 컴퓨터로 복사해올 수 있습니다. +- 이때 `git clone`을 사용하여 복사를 시작합니다. + + ```shell + git clone https://github.com/KennethanCeyer/tutorial.git +``` + + - `git clone`을 통해 원격파일을 복사해오면, origin에는 기본적으로 클론해온 리모트 URL이 저장되있습니다. + ---- #### 소스 기록, 업로드 From d7cc44f09213c27cdf9aa0eca51dd4092064cf2f Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 12:24:00 +0900 Subject: [PATCH 12/44] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7cb7242..d66d42c 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ git clone https://github.com/KennethanCeyer/tutorial.git ``` - - `git clone`을 통해 원격파일을 복사해오면, origin에는 기본적으로 클론해온 리모트 URL이 저장되있습니다. +- `git clone`을 통해 원격파일을 복사해오면, origin에는 기본적으로 클론해온 리모트 URL이 저장되있습니다. ---- From 04082b4dc758d820f0cc00c245feb66c7fdb775d Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 12:28:10 +0900 Subject: [PATCH 13/44] Update README.md --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index d66d42c..bf7415e 100644 --- a/README.md +++ b/README.md @@ -155,3 +155,14 @@ // 특정 리비전의 기록으로 인덱스는 버리고 워킹트리를 보존하여 리셋. git reset 991ee8c --mixed ``` + +---- + +#### 브랜치 + +- 브랜치는 한국말로 가지(branch)입니다. +- git에서는 마치 가지를 펼치듯 하나의 근본에서 여러 갈래로 쪼개어 관리할 수 있습니다. +- branch의 특징은 아래와 같습니다. + + - 기본은 master 브랜치라고 불리며, 필수로 제공되는 브랜치이다. + - 서로다른 브랜치들은 같은 조상을 가지고 있다. From 260ada8f360bf6db4e85e7a1d188bec673583e7b Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 14:43:31 +0900 Subject: [PATCH 14/44] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index bf7415e..43cee98 100644 --- a/README.md +++ b/README.md @@ -166,3 +166,7 @@ - 기본은 master 브랜치라고 불리며, 필수로 제공되는 브랜치이다. - 서로다른 브랜치들은 같은 조상을 가지고 있다. + +- 브랜치를 새로 만드신다면 `git branch [브랜치명]`으로 생성합니다. + + ![Refer4](http://www.nhpcw.com/upload/2016-01-06%2B14%253B42%253B40_010616024311.PNG) From e83c7f27dd3721e9b2cb4c85b33c6c0e9c31bb35 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 14:48:43 +0900 Subject: [PATCH 15/44] Update README.md --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 43cee98..5524188 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,13 @@ ### 깃의 기능 #### 깃의 설정 (클라이언트) +- 처음 시작하는 것이라면 git의 config 과정을 진행해야합니다. +- `git config` 명령어를 이용하여 계정에 대한 정보를 설정합니다. + + ```shell + git config --global user.name "John Doe" + git config --global user.email johndoe@example.com +``` - 깃은 초기에 `git init` 작업을 진행합니다 - 혹여나 GitHub에서 클론을 받은경우 이 작업은 필요하지 않습니다. From 053d66d1f19eb428403b75e847a7f5038ba6e998 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 14:49:11 +0900 Subject: [PATCH 16/44] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5524188..4de26a6 100644 --- a/README.md +++ b/README.md @@ -41,8 +41,8 @@ - `git config` 명령어를 이용하여 계정에 대한 정보를 설정합니다. ```shell - git config --global user.name "John Doe" - git config --global user.email johndoe@example.com + git config --global user.name "Kenneth" + git config --global user.email kennethan@nhpcw.com ``` - 깃은 초기에 `git init` 작업을 진행합니다 From 36ead6918a966631e7bdc204e38c8e023d85ab88 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 14:49:35 +0900 Subject: [PATCH 17/44] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4de26a6..18eed9d 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ ```shell git config --global user.name "Kenneth" - git config --global user.email kennethan@nhpcw.com + git config --global user.email "kennethan@nhpcw.com" ``` - 깃은 초기에 `git init` 작업을 진행합니다 From 42ecc912a71df6a17899b32781dfa847fc9fff75 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 14:53:33 +0900 Subject: [PATCH 18/44] Update README.md --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 18eed9d..263ea0c 100644 --- a/README.md +++ b/README.md @@ -169,6 +169,11 @@ - 브랜치는 한국말로 가지(branch)입니다. - git에서는 마치 가지를 펼치듯 하나의 근본에서 여러 갈래로 쪼개어 관리할 수 있습니다. + + ![Refer4](http://www.nhpcw.com/upload/4n9OG_010616025217.png) + 이미지 출처 [StackOverflow](http://stackoverflow.com/questions/23142731/push-a-feature-branch-to-develop-branch-using-git) + + - branch의 특징은 아래와 같습니다. - 기본은 master 브랜치라고 불리며, 필수로 제공되는 브랜치이다. @@ -176,4 +181,4 @@ - 브랜치를 새로 만드신다면 `git branch [브랜치명]`으로 생성합니다. - ![Refer4](http://www.nhpcw.com/upload/2016-01-06%2B14%253B42%253B40_010616024311.PNG) + ![Refer5](http://www.nhpcw.com/upload/2016-01-06%2B14%253B42%253B40_010616024311.PNG) From 9da4c35dea5bb3e8eeebacb0f08133d28c1716c9 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 15:25:31 +0900 Subject: [PATCH 19/44] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 263ea0c..9981053 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ #### 소스 커밋, 메시지 작성 -- 소스를 커밋하시면 `Tracked` 상태에서 `Stage` 상태로 변경됩니다. +- 소스를 커밋하시면 `Tracked` 상태에서 `Staged` 상태로 변경됩니다. - 파일 추적상태의 경우 `git status` 명령을 이용해서 확인합니다. ```shell @@ -104,9 +104,9 @@ ![Refer01](http://www.nhpcw.com/upload/2016-01-06%2B11%253B59%253B51_010616120036.PNG) -- Stage 상태의 파일은 아직 기록된 상태가 아닙니다. +- Staged 상태의 파일은 아직 기록된 상태가 아닙니다. - 파일의 기록을 위해서는 `커밋` 작업이 필요합니다. -- `git commit` 명령을 통해 Stage 상태의 파일을 커밋할 수 있습니다. +- `git commit` 명령을 통해 Staged 상태의 파일을 커밋할 수 있습니다. ```shell git commit -m "커밋 메시지를 적으시면 됩니다." From ef7ebbdc2a31ed5f94f42b015a74a1067459af6f Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 15:58:15 +0900 Subject: [PATCH 20/44] Update README.md --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index 9981053..2b1679f 100644 --- a/README.md +++ b/README.md @@ -180,5 +180,26 @@ - 서로다른 브랜치들은 같은 조상을 가지고 있다. - 브랜치를 새로 만드신다면 `git branch [브랜치명]`으로 생성합니다. +- 아래 명령라인에서는 new라는 브랜치를 생성하고 있습니다. + + ```shell + git branch new +``` + +- master 기준으로 new를 브랜치(가지치기)하면 master와 똑같은 소스코드가 new에도 적용됩니다. +- 하지만 이 이후로 new에서 코드를 수정하면, master와 new는 서로 다른 코드가 되기 때문에 갈라집니다. + +- 생성된 new 브랜치로 접속하기 위해서는 `git checkout [브랜치명]`을 이용합니다. + + ```shell + git checkout new +``` + + - 생성과정과 브랜치 이동과정을 동시에 하고자 하면 `git checkout`에 `-b` 옵션을 이용합니다. + + ```shell + // 브랜치 new를 생성과 동시에 체크아웃. + git checkout -b new +``` ![Refer5](http://www.nhpcw.com/upload/2016-01-06%2B14%253B42%253B40_010616024311.PNG) From 521f4436849a70b8e8196e50e5e5569124d1ab70 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 16:01:35 +0900 Subject: [PATCH 21/44] Update README.md --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 2b1679f..0ab543b 100644 --- a/README.md +++ b/README.md @@ -202,4 +202,19 @@ git checkout -b new ``` +- 생성한 브랜치는 현재 로컬에 저장되어 있습니다. +- 협업 작업에서는 생성한 브랜치를 원격 저장소에 등록해주어야 합니다. +- 이때는 `git push [브랜치명]`을 이용합니다. + + ```shell + git push new +``` + +- 브랜치의 삭제는 `git branch` 명령에서 `-d` 옵션을 사용합니다. + + ```shell + // 브랜치 new 삭제. + git branch -d new +``` + ![Refer5](http://www.nhpcw.com/upload/2016-01-06%2B14%253B42%253B40_010616024311.PNG) From a12a81b4b26d5516243320ed3377a961bfbe6d49 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 16:03:08 +0900 Subject: [PATCH 22/44] Update README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0ab543b..8045eba 100644 --- a/README.md +++ b/README.md @@ -210,6 +210,10 @@ git push new ``` +- 브랜치 생성 및 등록의 과정은 아래 화면가 같습니다. + + ![Refer5](http://www.nhpcw.com/upload/2016-01-06%2B14%253B42%253B40_010616024311.PNG) + - 브랜치의 삭제는 `git branch` 명령에서 `-d` 옵션을 사용합니다. ```shell @@ -217,4 +221,3 @@ git branch -d new ``` - ![Refer5](http://www.nhpcw.com/upload/2016-01-06%2B14%253B42%253B40_010616024311.PNG) From e7990b33f4204eb622e0c220561517bc7c31750f Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 16:04:15 +0900 Subject: [PATCH 23/44] Update README.md --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8045eba..cdeb84f 100644 --- a/README.md +++ b/README.md @@ -210,7 +210,7 @@ git push new ``` -- 브랜치 생성 및 등록의 과정은 아래 화면가 같습니다. +- 브랜치 생성 및 등록의 과정은 아래 화면과 같습니다. ![Refer5](http://www.nhpcw.com/upload/2016-01-06%2B14%253B42%253B40_010616024311.PNG) @@ -221,3 +221,11 @@ git branch -d new ``` +- 삭제된 브랜치 또한 원격 저장소에 반영을 해야합니다. +- 이때 브랜치 명 앞에 콜론(:)을 붙여주어야 하니 이 점 주의해주세요. + + ```shell + // 삭제된 new 브랜치 원격반영. + git push origin :new +``` + From 10d6359b91fbfbd3ec82468668342214c4de6db1 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 16:07:19 +0900 Subject: [PATCH 24/44] Update README.md --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index cdeb84f..aebe824 100644 --- a/README.md +++ b/README.md @@ -229,3 +229,10 @@ git push origin :new ``` +---- + +#### 깃 머지와 리베이스 + +- 브랜치를 사용하는 과정에서 가장 중요한 머지와 리베이스 등의 병합 기법입니다. +- 서로 다른 브랜치에서 서로 다른 코드가 개발되었고, 실제 배포에서 이를 합쳐야 할 때 사용합니다. +- 병합 방식에서는 크게 `git merge`와 `git rebase`가 존재합니다. From 9cb3cde7cd62ac1239e10b472c66a1ca1cba9941 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 16:09:27 +0900 Subject: [PATCH 25/44] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index aebe824..ab7a352 100644 --- a/README.md +++ b/README.md @@ -236,3 +236,7 @@ - 브랜치를 사용하는 과정에서 가장 중요한 머지와 리베이스 등의 병합 기법입니다. - 서로 다른 브랜치에서 서로 다른 코드가 개발되었고, 실제 배포에서 이를 합쳐야 할 때 사용합니다. - 병합 방식에서는 크게 `git merge`와 `git rebase`가 존재합니다. +- 머지 방식과 리베이스 방식의 차이는 아래 이미지를 확인해주세요. + + ![Refer6](http://www.nhpcw.com/upload/merge-rebase_010616040840.png) + 이미지 출처 [http://git.mikeward.org/](http://git.mikeward.org/) From 6fa09a652fdedd8ed779a70a5eac80e929fd46bb Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 16:09:44 +0900 Subject: [PATCH 26/44] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ab7a352..8a79ee3 100644 --- a/README.md +++ b/README.md @@ -239,4 +239,5 @@ - 머지 방식과 리베이스 방식의 차이는 아래 이미지를 확인해주세요. ![Refer6](http://www.nhpcw.com/upload/merge-rebase_010616040840.png) + 이미지 출처 [http://git.mikeward.org/](http://git.mikeward.org/) From 580fbffbf10f6b6e820629967902b0ee677f21ef Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 16:11:47 +0900 Subject: [PATCH 27/44] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 8a79ee3..27f8c5f 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,12 @@ ### 어떻게 깃을 사용하는지 빠르게 알아봅시다. > Quick learn How to use the Git. +- 읽기 예상시간 `10분` + +- 개발 회사에 다니시지만 Git을 모르신다면 바로 읽어주세요. +- Git을 도입할지 망설이시는 관리자, 담당자분들은 바로 읽어주세요. +- 2명이상의 협업을 하는 스타트업, 인디 개발자는 도입을 고려해주세요. + ### 시작하며 ##### 깃을 왜 사용하죠? From 962992ea1b25af87be370b90d91532f5e994a6c6 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 16:11:56 +0900 Subject: [PATCH 28/44] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 27f8c5f..f5ec1f7 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ### 어떻게 깃을 사용하는지 빠르게 알아봅시다. > Quick learn How to use the Git. -- 읽기 예상시간 `10분` +- 읽는데 걸리는 예상시간 `10분` - 개발 회사에 다니시지만 Git을 모르신다면 바로 읽어주세요. - Git을 도입할지 망설이시는 관리자, 담당자분들은 바로 읽어주세요. From 121dffd1103093c3b95cef813a1fb3ac31a78b77 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Wed, 6 Jan 2016 16:18:12 +0900 Subject: [PATCH 29/44] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f5ec1f7..ed84708 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,11 @@ ##### 깃을 왜 사용하죠? - 빠른 협업환경 조성 -- 누가 언제 무엇을 왜 수정했는지 코드리뷰가 가능 -- IssueTracker 및 Migrate 지원 -- GitHub를 이용하여 자신의 git을 쉽게 전파, 공유가 가능 -- Continuous Integration (지속적인 통합) 지원 -- VisualStudio, Eclipse, Android Studio 등 많은 부분에서 Git연동 제공 +- 누가 언제 무엇을 왜 수정했는지 코드리뷰가 가능. +- IssueTracker 및 Migrate 연동 지원. +- GitHub를 이용하여 자신의 git을 쉽게 전파, 공유가 가능. +- Continuous Integration (지속적인 통합) 지원. +- VisualStudio, Eclipse, Android Studio 등 많은 부분에서 Git연동 제공. - **결국 대게는 협업을 위해서 사용** From 21f18e47762382b78f60b8c32036d46a2a1092f3 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Fri, 8 Jan 2016 10:38:34 +0900 Subject: [PATCH 30/44] Update README.md --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index ed84708..b8c8f4d 100644 --- a/README.md +++ b/README.md @@ -247,3 +247,16 @@ ![Refer6](http://www.nhpcw.com/upload/merge-rebase_010616040840.png) 이미지 출처 [http://git.mikeward.org/](http://git.mikeward.org/) + +- 아래는 머지해야 하는 상황을 구현해봤습니다. +- `master`에서 `sub` branch가 생성되었으며, master 브랜치에서 sub 브랜치를 머지하고자 합니다. +- 자세한 부분은 해당 깃의 `Tutorial/Merge`를 참고해주세요. + + ```shell + git checkout -f master + git merge sub + // 현재 브랜치 master, 대상 브랜치 sub. + // master에서 sub를 머지합니다. + // HEAD -> master + // sub -> sub +``` From 8918d79734b7851dbfe7d6c4b4d56b882adf6dbf Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Fri, 8 Jan 2016 10:39:51 +0900 Subject: [PATCH 31/44] Update README.md --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index b8c8f4d..9377811 100644 --- a/README.md +++ b/README.md @@ -250,6 +250,20 @@ - 아래는 머지해야 하는 상황을 구현해봤습니다. - `master`에서 `sub` branch가 생성되었으며, master 브랜치에서 sub 브랜치를 머지하고자 합니다. +- 파일 구성은 아래와 같습니다. + + ```txt + * master -> some_file.txt의 내용 + I'm a file. +``` + +```txt + * sub -> some_file.txt의 내용 + I'm a file. + + Inserted new line from the sub branch. +``` + - 자세한 부분은 해당 깃의 `Tutorial/Merge`를 참고해주세요. ```shell From a1f6a854b4e3b2d62343abc4a1ac60778e39656d Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Fri, 8 Jan 2016 10:40:33 +0900 Subject: [PATCH 32/44] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9377811..6c3a6be 100644 --- a/README.md +++ b/README.md @@ -254,11 +254,13 @@ ```txt * master -> some_file.txt의 내용 + * 1번째 단계 HEAD I'm a file. ``` -```txt + ```txt * sub -> some_file.txt의 내용 + * 2번째 단계 HEAD (최신) I'm a file. Inserted new line from the sub branch. From 818cd06c9599111ee8350b8cbc8806f51ec66ccf Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Fri, 8 Jan 2016 10:41:35 +0900 Subject: [PATCH 33/44] Update README.md --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 6c3a6be..7c265ae 100644 --- a/README.md +++ b/README.md @@ -276,3 +276,12 @@ // HEAD -> master // sub -> sub ``` + +- 머지 이후 master에서 파일을 보면, 아래와 같은 내용을 얻습니다. + + ```txt + * merge 이후 master -> some_file.txt + I'm a file. + + Inserted new line from the sub branch. +``` From 14be4070baeeec268b86b11d5d4dc1af90482c84 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Fri, 8 Jan 2016 10:57:40 +0900 Subject: [PATCH 34/44] Update README.md --- README.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/README.md b/README.md index 7c265ae..1b4d882 100644 --- a/README.md +++ b/README.md @@ -285,3 +285,39 @@ Inserted new line from the sub branch. ``` + +---- + +#### 충돌과 해결 + +- git으로 merge, rebase 수행시 충돌(conflict)가 발생 할 수 있습니다. +- 이는 같은 조상을 기준으로, 서로 다른 두개의 브랜치가 같은 소스코드를 변경했을 때 발생합니다. +- 아래는 샘플 환경입니다. `Tutorial/Conflict`를 참고해주세요. + + ```txt + * master -> some_file.txt의 내용 + Apple +``` + +- 위는 `master` 브랜치의 some_file.txt의 내용이다. +- 아래는 해당 브랜치를 복제한 `sub` 브랜치이며, 복제 이후 한번 내용을 수정하였다. + + ```txt + * sub -> some_file.txt의 내용 + * 2번째 단계 HEAD + Banana +``` + +- 이후 master에서도 내용을 변경하여 버전을 업데이트 합니다. + + ```txt + * master -> some_file.txt의 내용 + * 2번째 단계 HEAD(sub랑 단계가 겹침) + Strawberry +``` + +- 둘 모두 버전이 같으나 같은 라인에서 변경사항이 발생했습니다. +- 이 경우 충돌이 발생합니다. +- 아래 이미지는 위의 작업 과정 중 머지 시도 이후 충돌발생(conflict) 화면을 보여줍니다. + +![Refer7](http://www.nhpcw.com/upload/2016-01-08%2B10%253B55%253B53_010816105630.PNG) From ca6b4bb8f82d9c080ec7e84cef808eaa7df6828d Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Fri, 8 Jan 2016 10:57:59 +0900 Subject: [PATCH 35/44] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1b4d882..1b6e76c 100644 --- a/README.md +++ b/README.md @@ -320,4 +320,4 @@ - 이 경우 충돌이 발생합니다. - 아래 이미지는 위의 작업 과정 중 머지 시도 이후 충돌발생(conflict) 화면을 보여줍니다. -![Refer7](http://www.nhpcw.com/upload/2016-01-08%2B10%253B55%253B53_010816105630.PNG) + ![Refer7](http://www.nhpcw.com/upload/2016-01-08%2B10%253B55%253B53_010816105630.PNG) From 6d01458097f9b6152ce0bc0285171ff5febcc12c Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Fri, 8 Jan 2016 11:01:46 +0900 Subject: [PATCH 36/44] Update README.md --- README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/README.md b/README.md index 1b6e76c..24cf0b1 100644 --- a/README.md +++ b/README.md @@ -321,3 +321,31 @@ - 아래 이미지는 위의 작업 과정 중 머지 시도 이후 충돌발생(conflict) 화면을 보여줍니다. ![Refer7](http://www.nhpcw.com/upload/2016-01-08%2B10%253B55%253B53_010816105630.PNG) + +- 충돌이 발생한 some_file.txt를 열어보면 아래와 같은 화면을 보실 수 있습니다. + + ```txt + * 머지 이후 master -> some_file.txt (충돌) + <<<<<<< HEAD + Strawberry + ======= + Banana + >>>>>>> sub +``` + +- 여기서 `HEAD`는 현재 브랜치(master)를 의미합니다. +- HEAD와 sub의 각각 내용을 보여주고 있는데 꺽쇠(<, >), 이퀄(=)기호가 없도록 문장 하나를 선택해서 반영해주어야 +- 충돌이 해결 될 수 있습니다. +- 여기서는 `master` 브랜치의 Strawberry를 선택하여 충돌을 해결하겠습니다. + + ```txt + * 머지 이후 master -> some_file.txt (수정) + Strawberry +``` + +- 수정이 되었다면 머지 해결을 위해 `git add`와 `git commit`으로 충돌(conflict)를 해결하세요. + + ```shell + git add * + git commit -m "Solved the conflict issue." +``` From bb92603ca5975a8e2a9fed1f2ac630301a290082 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Fri, 8 Jan 2016 11:02:34 +0900 Subject: [PATCH 37/44] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 24cf0b1..ab0e458 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,8 @@ ### 어떻게 깃을 사용하는지 빠르게 알아봅시다. > Quick learn How to use the Git. -- 읽는데 걸리는 예상시간 `10분` +- 읽는데 걸리는 예상시간 `15분` +- 다 외우기 위하여 반복 학습이 필요한 횟수 `3번` - 개발 회사에 다니시지만 Git을 모르신다면 바로 읽어주세요. - Git을 도입할지 망설이시는 관리자, 담당자분들은 바로 읽어주세요. From 5cbff67942ab99bad4b1c8b5a080a95c47d0de68 Mon Sep 17 00:00:00 2001 From: Kennethan Ceyer Date: Fri, 8 Jan 2016 11:04:27 +0900 Subject: [PATCH 38/44] Update tutorials. --- README.md | 2 +- Tutorial/Conflict | 1 + Tutorial/Merge | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) create mode 160000 Tutorial/Conflict create mode 160000 Tutorial/Merge diff --git a/README.md b/README.md index 631bef7..edc549c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Tutorial GIT - +w ### 어떻게 깃을 사용하는지 빠르게 알아봅시다. > Quick learn How to use the Git. diff --git a/Tutorial/Conflict b/Tutorial/Conflict new file mode 160000 index 0000000..58e3f7c --- /dev/null +++ b/Tutorial/Conflict @@ -0,0 +1 @@ +Subproject commit 58e3f7c3652749b1896ad0a2e4712508bb9ea623 diff --git a/Tutorial/Merge b/Tutorial/Merge new file mode 160000 index 0000000..b1be599 --- /dev/null +++ b/Tutorial/Merge @@ -0,0 +1 @@ +Subproject commit b1be59919f773183cb67b1d0c8b9b9d27c87d80a From 6d7a9d936becfaee164cc75b023ea4759bb3bb55 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Fri, 8 Jan 2016 11:05:22 +0900 Subject: [PATCH 39/44] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index cfa30b9..2a64c69 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ # Tutorial GIT -w ### 어떻게 깃을 사용하는지 빠르게 알아봅시다. > Quick learn How to use the Git. From 57246caad94763b289b794e63566eb42aed56973 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Fri, 8 Jan 2016 11:08:06 +0900 Subject: [PATCH 40/44] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2a64c69..4c2217f 100644 --- a/README.md +++ b/README.md @@ -343,7 +343,7 @@ Strawberry ``` -- 수정이 되었다면 머지 해결을 위해 `git add`와 `git commit`으로 충돌(conflict)를 해결하세요. +- 수정이 되었다면 머지 해결을 위해 `git add`와 `git commit`으로 충돌(conflict)을 해결하세요. ```shell git add * From e9da6ea8ee42ad77cdbc1d5072b99c18cc0c4de7 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Fri, 8 Jan 2016 17:01:44 +0900 Subject: [PATCH 41/44] Update README.md --- README.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/README.md b/README.md index 4c2217f..24cb60f 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,31 @@ ---- +#### SSH 접속설정 + +- 깃 연결을 보다 안전하고 빠르게 하기 위해서는 `SSH Key` 등록을 권장합니다. +- 이미 존재하는 문서로 [SSH 생성 가이드](https://git-scm.com/book/ko/v1/Git-%EC%84%9C%EB%B2%84-SSH-%EA%B3%B5%EA%B0%9C%ED%82%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0)를 참고하시거나 아래 절차를 따라주시면 됩니다. +- 우선 `ssh-keygen`으로 SSH Key를 생성하시면 됩니다. + + ![Refer SSH](http://www.nhpcw.com/upload/2016-01-08%2B16%253B55%253B56_010816045725.PNG) + +- SSH Key를 생성하셨으면 ~/[사용자 폴더]/.ssh/에 파일이 존재하는 것을 확인하실 수 있습니다. + + ![Refer folder ssh](http://www.nhpcw.com/upload/2016-01-08%2B16%253B39%253B20_010816045855.PNG) + +- 생성한 키 중 id_rsa.pub는 GitHub에 등록해주셔야 합니다. +- 아래 절차를 따라해주시면 됩니다. +- [GitHub 홈페이지](http://www.github.com)를 접속하셔서 로그인을 해주세요. +- Profile 중 `Settings` 메뉴를 눌러주세요 (아래 그림을 참고해주세요.) + + ![Refer Setting](http://www.nhpcw.com/upload/2016-01-08%2B16%253B31%253B33_010816050048.PNG) + +- Settings 화면 중 우측 사이드메뉴에서 `SSH keys`를 클릭해주세요. + + ![Refer SSH Keys](http://www.nhpcw.com/upload/2016-01-08%2B16%253B31%253B47_010816050114.PNG) + +---- + #### 소스 기록, 업로드 - 소스를 업로드 하기 위해서는 `git add` 명령어를 이용합니다. From f27b11485760e91d6bb3fa313a652db50162d0d5 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Fri, 8 Jan 2016 17:04:33 +0900 Subject: [PATCH 42/44] Update README.md --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 24cb60f..9b6ea9c 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ ![Refer folder ssh](http://www.nhpcw.com/upload/2016-01-08%2B16%253B39%253B20_010816045855.PNG) -- 생성한 키 중 id_rsa.pub는 GitHub에 등록해주셔야 합니다. +- 생성한 키 중 `id_rsa.pub`는 GitHub에 등록해주셔야 합니다. - 아래 절차를 따라해주시면 됩니다. - [GitHub 홈페이지](http://www.github.com)를 접속하셔서 로그인을 해주세요. - Profile 중 `Settings` 메뉴를 눌러주세요 (아래 그림을 참고해주세요.) @@ -98,6 +98,14 @@ - Settings 화면 중 우측 사이드메뉴에서 `SSH keys`를 클릭해주세요. ![Refer SSH Keys](http://www.nhpcw.com/upload/2016-01-08%2B16%253B31%253B47_010816050114.PNG) + +- SSH Keys 화면에서 `Add SSH key` 버튼을 찾아 클릭 해주세요. + + ![Refer Add SSH key](http://www.nhpcw.com/upload/2016-01-08%2B16%253B38%253B21_010816050320.PNG) + +- 입력 화면에 아까전의 `id_rsa.pub`의 내용을 입력해주시면 됩니다. + + ![Refer SSH contents](http://www.nhpcw.com/upload/2016-01-08%2B16%253B39%253B35_010816050252.PNG) ---- From 48a1b0cbce44cf20ccbecc7ce7e6c9355b24c893 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Fri, 8 Jan 2016 17:37:01 +0900 Subject: [PATCH 43/44] Update README.md --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 9b6ea9c..a4024af 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,15 @@ - 입력 화면에 아까전의 `id_rsa.pub`의 내용을 입력해주시면 됩니다. ![Refer SSH contents](http://www.nhpcw.com/upload/2016-01-08%2B16%253B39%253B35_010816050252.PNG) + +- **SSH 설정을 해도 아이디와 비밀번호를 물어봐요!** + + ```shell + 혹시 HTTPS 주소를 Remote URL로 사용하는지 체크해주세요. + Remote URL은 ssh 포맷을 사용해주셔야 ssh 인증을 통해 아이디/비밀번호 입력을 넘어가실 수 있습니다. + + // origin의 Remote URL 변경방법. +``` ---- From df11432ad430394f5f2c42967c9cbf3bb4e9fab7 Mon Sep 17 00:00:00 2001 From: PIGNOSE Date: Fri, 8 Jan 2016 17:37:49 +0900 Subject: [PATCH 44/44] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index a4024af..b857d70 100644 --- a/README.md +++ b/README.md @@ -114,6 +114,10 @@ Remote URL은 ssh 포맷을 사용해주셔야 ssh 인증을 통해 아이디/비밀번호 입력을 넘어가실 수 있습니다. // origin의 Remote URL 변경방법. + git remote set-url origin git@github.com:KennethanCeyer/tutorial-git.git + + // origin의 Remote URL이 제대로 변경됬는지 체크해주세요. + git remote show origin ``` ----