1. 환경 세팅

1-1. JAVA : 1.7

1-2. Eclipse : Kepler - Eclipse EGit 플러그인 설치
: EGit 플러그인은 이클립스와 Git을 연동시켜줍니다. 이클립스에 EGit플러그인을 설치하는 방법에는 두 가지 방법이 있는데 첫 번째 방법은 Eclipse Marketplace를 이용하는 방법과 다른 방법은 Install New Software를 이용하여 설치하는 방법입니다.

[방법1] Market Place
1. Help > Market Place 선택합니다.

hskim-github-20140804-01

2. Find에서 git을 검색하여 EGit – Git Team Provider를 선택하여 설치합니다.

hskim-github-20140804-02
[방법2] Install New Software

1. Help > Install New Software를 선택합니다.

hskim-github-20140804-03

2. Work with에 http://download.eclipses.org/egit/updates 를 추가하고 플러그인을 선택한 후 next버튼을 눌러 다음 단계로 넘어갑니다.

hskim-github-20140804-04

3. 상세 설치항목들이 표시가 되고 계속해서 Next버튼을 눌러 다음 단계로 넘어갑니다. EGit버전별로 지원하는 이클립스 버전이 다르므로 다음주소의 가이드를 참고하여 EGit을 설치하여 사용하시면 됩니다.
http://wiki.eclipse.org/EGit/FAQ#What_versions_of_Eclipse_does_EGit_target.3F

hskim-github-20140804-05

4. Licenses관련 안내문을 확인 후 동의(I accept the terms of the license agreement)를 선택 후 Finish버튼을 눌러 설치를 진행하여 줍니다.

hskim-github-20140804-06

5. EGit플러그인이 설치가 진행됩니다.

hskim-github-20140804-07

6. EGit플러그인 설치가 완료된 것을 확일 할 수 있습니다.

hskim-github-20140804-08

7. EGit 플러그인이 설치된 후 Window > Show View > Others…를 선택하여 Git항목이 새로 생긴 것을 확인 할 수 있습니다. Git > Git Repositories를 선택하여 Git 탭을 추가하여 줍니다.

hskim-github-20140804-09

8. 아래의 그림처럼 Git탭이 추가된 것을 확인할 수 있습니다.

hskim-github-20140804-10

2. GitHub 사용하기

2-1. GitHub 회원가입
GitHub를 사용하기 위해선 먼저 아래 사이트에 회원가입이 필요합니다.

2-2. Repository 추가하기

1.  GitHub에 로그인을 하고 오른쪽 상단 USER ID 옆쪽에 “+” 아이콘을 클릭하면 “New repository” 메뉴가 나옵니다.

hskim-github-20140804-11

2. “New repository”를 선택하면 다음과 같은 repository를 생성하기 위해 정보를 입력하는 화면이 나옵니다.

hskim-github-20140804-12

3. Repository name에 저장소 이름을 적고 Description(optional)에 Repository에 대한 설명을 적습니다. GitHub에서 누구나 repository를 볼 수 있게 공개된 Public 옵션은 무료이나 비공개로 개인 저장소를 만드는 Private 옵션은 유료입니다. GitHub에서 저장소를 가져올 것이라면 READEME를 생성하도록 Initialize this repository with a README를 체크해주고, .gitignore와 license는 프로젝트의 성격에 맞게 선택하면 됩니다. Repository를 만들기 위한 준비가 모두 되었다면 Create repository버튼을 눌러 저장소를 만들어 줍니다.

Private 선택 시 나오는 유료 결제화면

4. Create repository 버튼을 누른 뒤 생성된 Repository

hskim-github-20140804-14

2-3. gitHub 와 이클립스 연동

clone : checkout

기존의 프로젝트에 참여하거나 Git 저장소를 복사하고 싶을 때 Subversion 같은 VCS의 checkout이 아니라 clone명령을 사용합니다. 이는 Git이 Subversion과 달리 서버에 있는 모든 데이터를 복사한다는 것을 의미합니다. clone을 실행하면 프로젝트 history를 전부 받아오므로 서버의 디스크가 망가져도 클라이언트 저장소 중에서 아무거나 하나 가져다가 복구하면 모든 데이터는 복구 할 수 있습니다.

1. Git탭을 눌러 Git Repository로 이동합니다. “Clone a Git Repository”를 선택하면 아래와 같이 Repository를 추가할 수 있는 화면이 나타납니다.

hskim-github-20140804-15

2. Repository를 추가하기 위해서 GitHub 정보를 입력해야 합니다.  GitHub에서 Clone URL주소를 HTTPS나 SSH 두 가지 중 하나를 선택하여 복사하여줍니다.

  • GitHub repository : namoosori/namoo.club
hskim-github-20140804-16

3. 복사한 Clone URL을 URI부분에 붙여 넣어 Host와 Repository path 그리고 Authentication에 GitHub의 사용자 계정을 입력하고 Next버튼을 눌러 다음 단계로 진행합니다.

hskim-github-20140804-17

4. Clone하려는 branch를 선택하여 Clone하거나 master만 존재하는 경우 mater를 선택 후 next를 눌러 Clone하기 위한 다음 단계로 진행합니다.

hskim-github-20140804-18

5. 로컬에 저장할 위치를 지정하고 Finish버튼을 누르면 로컬에 저장이 됩니다. 옵션에서 Import all existing projects after clone finishes를 선택하면 로컬에 저장이 되면서 자동으로 import까지 됩니다.

hskim-github-20140804-19
hskim-github-20140804-20

commit & push : commit

hskim-github-20140804-21

파일을 수정하여 저장을 하고 공유하는 것에 대해 git은 로컬저장소와 원격저장소를 분리하여 관리합니다. 로컬저장소에 적용하는 commit 과 원격 저장소에 적용하는 push로 2가지로 구분 지을 수 있다. Commit을 하면 스냅샷 지점을 만들고, HEAD에 반영한다

1. 우측의 "Project Explorer" > "해당 프로젝트" > 우클릭 > Team > Commit합니다.

2. 해당 commit에 대한 메세지/변경 내역 작성 > commit할 파일들 선택합니다.

3. commit' 하면 로컬에만 반영되고, GitHub(원격 저장소)에는 변경내역이 반영되지 않습니다.

hskim-github-20140804-22
hskim-github-20140804-23

4. 'commit and push' 버튼 클릭하면 원격 저장소에 바로 적용됩니다. Clone한 사람이 여러 명 있을 때, 다른 사람이 Push한 후에 Push하려고 하면 Push할 수 없고, 먼저 다른 사람이 작업한 것을 가져와서 merge 한 후에 Push할 수 있습니다.

hskim-github-20140804-24
hskim-github-20140804-25

fetch & merge  : update

누군가 원격저장소에 push를 하였다면, 원격저장소의 변경사항을 로컬 저장소에 다시 반영하여야 합니다. 원격 저장소의 소스를 내 로컬 저장소에 merge하기 위해서는 pull을 받게 됩니다. pull을 하게 되면 원격 저장소의 소스를 로컬 저장소로 가져온 후, Merge 작업을 자동으로 수행합니다. 여기서 원격 저장소의 소스를 로컬 저장소로 가져오는 작업을 Fetch라고 합니다. 즉, pull을 하게 되면 fetch를 한 후 merge 작업까지 자동으로 실행해 주는 것입니다. (pull보다는 fetch후에 merge로 나누어서 작업하는 것을 보통 더 권장합니다.)

1. 우측의 "Project Explorer" > "해당 프로젝트" > 우클릭 > Team > synchronize workspace 선택합니다.

2. pull 또는 merge 합니다.
이클립스 Egit 플러그인에서는 synchronize workspace 실행 전 fetch를 자동적으로 받을 수 있는 옵션을 제공하고 있습니다. Window > Preference > Team > Git > Synchronize 메뉴로 이동하면 다음의 옵션에 체크가 되어 있는 것을 알 수 있다. Synchronize 받기 전에 원격 저장소에서 로컬 저장소로 항상 fetch를 실행하겠다는 의미입니다.

Always launch fetch before synchronization : default 체크

2-4. GitHub 프로젝트 추가하기

1. 우선 GitHub에 추가할 프로젝트를 새로 만들어줍니다.

hskim-github-20140804-27

2. 프로젝트를 새로 만들었으면 해당 프로젝트에서 마우스로 우클릭하여 Team > Share Project를 클릭하여 로컬프로젝트에 GitHub의 저장소를 추가하여 줍니다.

hskim-github-20140804-28

3. Team > Share Project를 선택하면 아래와 같은 팝업 화면이 나오고 여기서 Git을 선택하고 Next버튼을 눌러 다음 단계로 넘어갑니다.

hskim-github-20140804-29

4. Local Repository를 선택한 후에 Finish를 눌러주면 Repository에 프로젝트추가가 완료됩니다.

hskim-github-20140804-30

5. 프로젝트를 생성하고 Local Repository에 추가하면 오른쪽에 Git저장소 이름과 branch 이름이 표시됩니다. (namoo.board-Repository명, master-branch명) 새로 생성된 파일에는 “?”표시가 되어있고 변경된 파일은 “>”로 표시가 됩니다.

hskim-github-20140804-31-2

6. 새로 생성된 프로젝트를 Local Repository에 저장을 하기 위해서 프로젝트에서 마우스 우클릭을 하여 Team > Commit을 선택하여 줍니다.

hskim-github-20140804-32

7. Commit을 선택하면 아래와 같은 팝업 창이 나오는데 Commit message에는 Commit하는 내용에 대한 설명을 작성하고 Files에서 Commit할 파일들의 목록을 확인하고 Commit할 파일을 선택하여 Commit버튼을 눌러주면 Local Repository에 Commit이 완료됩니다. Commit and Push버튼을 누르면 Local Repository와 Remote Repository에 동시에 저장됩니다.

hskim-github-20140804-33-1

8. Local Repository에 Commit을 완료했으면 Remote Repository에 저장해야 합니다. Remote Repository에 저장을 하기 위해서 Push를 해야 하는데 Push를 하려면 Push할 프로젝트에서 마우스 우클릭해서 Team > Remote > Push… 를 선택합니다.

hskim-github-20140804-34

9. 이미 기존에 설정되어있는 Remote Repository가 있다면 Drop-Down list에서 Push할 Remote Repository를 선택하여 Next를 눌러 다음 단계로 진행합니다.

hskim-github-20140804-35

10. 다른 방법으로 Custom URI를 선택하여 Push할 Remote Repository의 URI를 입력하고 GitHub 계정의 아이디와 비밀번호를 입력하고 Next버튼을 눌러 다음 단계로 진행합니다.

hskim-github-20140804-36

11.  다음 단계로 진행되면 Repository에 대한 레퍼런스 설정을 선택할 수 있는 화면이 나오는데 처음에는 아무 것도 나오지 않는데 이 때 Add All Branches Spec버튼을 누릅니다. Add all branches spec버튼을 누르면 모든 로컬 branch에 대해 Push하려는 항목들이 표시가 되고 Finish버튼을 누르면 Push가 완료되고 아래와 같은 Push Result Report창이 나오게 됩니다. 여기에는 Remote Repository에 Push된 항목들의 목록이 나타납니다. 아래쪽 박스에는 Push가 완료된 Remote server가 표시됩니다. OK버튼을 누르면 Dialog창이 닫히면서 완료됩니다. 모든 태그에 대해서 Push를 할 때에는 Add all tags spec버튼을 클릭합니다.

hskim-github-20140804-37
Push Result Report

12.  Github에 로그인하여 웹에서 Push가 되어있는 프로젝트를 확인 할 수 있습니다.

hskim-github-20140804-39

13. 이클립스의 git Repositories에서 Branches>RemoteTracking 에서 merge 를 하여 로컬 저장소로 가져오고, import하여 사용합니다.

hskim-github-20140804-40

작성자 : 김희숙(hskim@nextree.co.kr),  김준영(elviskim@nextree.co.kr)

namoosori
안녕하세요. 나무소리 입니다. 나무소리는 넥스트리(주)의 교육 브랜드 입니다.넥스트리가 지난 20년 동안 쌓아온 개발 및 교육 경험들을 나무소리를 통해 많은 분들과 공유 하려고 합니다.앞으로 저희 나무소리를 통해 보다 나은 교육을 경험 하실 수 있도록 구성원 모두 최선을 다하겠습니다.