본문 바로가기

프로그래밍/기타

Eclipse와 Github 연동(1) - 프로젝트를 github에 올리기

개인적으로 eclipse와 github을 연동하면서 싫어하는 상황이 하나 있다. 그것은 Eclipse에서 git을 사용하려면 local repository 디렉토리를 설정해야 하는데 연동을 하게 되면 연동된 프로젝트들이 모두 local repository 디렉토리 밑으로 들어가게 되어서 실제로는 프로젝트 소스가 eclipse의 workspace에 존재하지 않게 된다. 이렇게 될 경우 동일한 workspace에 존재하는 여러 프로젝트들 중 git으로 공유되지 않은 프로젝트는 workspace 디렉토리에 있지만 디스크에 2군데에 존재하는 상황이 벌어진다. 이점에 있어서는 IntelliJ 가 잘되어 있는게 IntelliJ의 경우는 local repository를 특정 디렉토리로 설정하는 것이 아니라 공유 대상이 되는 Module 밑에 이 local repository를 두게 된다. 그래서 이클립스와는 달리 같은 소스가 2군데에 존재하는 상황은 벌어지지 않는다(git 연결을 더이상 안할려고 할 경우엔 IntelliJ에서 git과의 연동을 끊고 .git 디렉토리를 지워주면 끝이다) 그래서 이 글에서는 IntelliJ 처럼 Eclipse 프로젝트 디렉토리 밑에 git local repository를 두어서 연동하는 방법에 대해 써보고자 한다. 이 글에서 사용하는 프로그램은 Eclipse는 아니고 Eclipse 기반의 Spring Tool Suite 4(이하 STS로 하겠다)이지만 git을 연동하는것은 Eclipse나 STS 모두 EGit을 사용하기 때문에 같은 방법으로 사용할 수 있다.


이 방법으로 할 경우 먼저 git의 공식 사이트인 git-scm.com에서 자신의 운영체제에 맞는 git client를 설치해야 한다. git client를 설치하는 방법은 다른 블로그들에 이미 많이 소개되어 있어서 여기서는 소개하지는 않고 이것이 설치가 되어 있다는 상태에서 설명을 시작하도록 하겠다. 먼저 git의 remote repository를 만들어준다. github에서 자신이 만든 remote repository를 들어가면 이런 형태의 화면을 보게 될 것이다.



이 화면에서 빨간색 박스가 쳐져 있는 버튼을 클릭해서 현재 자신이 만든 remote repository의 주소를 복사한 뒤에 메모장 같은 문서 편집기에 붙여넣는다. 이 주소는 나중에 쓸 것이라서 일단은 다른데에 보관하는 차원에서 붙여넣어둔 것이다.


그 다음으로 remote repository에 올릴 프로젝트의 디렉토리로 이동한다. 여기서는 설명을 하기 위해 D:\workspaces\samplemvn 디렉토리가 Eclipse의 프로젝트 디렉토리라고 하겠다. 여기서 마우스 우클릭을 하면 다음과 같은 화면이 나타난다(이 프로젝트는 STS에서 Spring Starter Project 메뉴를 이용해서 만든 Maven 기반의 Spring Boot 프로젝트이다. 그래서 .gitignore 파일이 있다)



위에서 언급했던 Git Client를 설치했다면 마우스 우클릭시 다음과 같이 Git GUI Here란 메뉴와 Git Bash Here 란 메뉴가 나타날것이다. 여기서 Git Bash Here 메뉴를 선택한다. 그러면 이 폴더에 위치한 상태로 Git Bash 화면이 나타난다. 이 화면에서 다음의 순서대로 명령어를 입력해서 실행시켜 준다. 그러면 아래의 그림과 같이 나타난다.


  1. git init
  2. git add .
  3. git commit -m "commit message"
  4. git remote add origin 문서편집기에 붙여 두었던 github remote repository 주소
  5. git push origin master

 


위에서 나열한 명령어가 하는 작업에 대해 간략하게 설명하자면 git init이란 명령을 해서 현재 디렉토리를 기준으로 local repository를 만들게 된다. 이 명령을 하면 .git 폴더가 숨김 폴더 형태로 만들어지게 된다. git add . 을 실행해서 local repository에 보관되어 있는 것과 변경점이 있는 파일들을 index에 추가한다. 여기서는 local repository가 금방 만들어져 있는 상태여서 아무것도 없기 때문에 현재 디렉토리에 있는 모든 디렉토리와 파일이 추가된다. 그리고 git commit -m "commit message" 를 통해 index에 추가된 디렉토리와 파일을 commit 하게 된다. 위의 그림을 보면 Init Project 로 commit message를 설정해서 명령을 실행했다. 그리고 git remote origin remote repository 주소를 통해 remote repository를 추가한다. 여기서 사용하는 remote repository 주소는 아까 문서편집기에 붙여넣은 remote repository 주소를 사용한다. 그리고 이렇게 사용되는 remote repository 주소를 origin 이란 이름으로 remote repository에 추가한다. 그리고 마지막으로 git push -u origin master 를 통해 local repository에 있는 디렉토리와 파일들을 remote repository에 추가한다. 이렇게 자신의 프로젝트가 github에 방금 만들어놓은 remote repository에 들어가게 된다. 이 과정을 거친뒤에 github에 들어가면 다음과 같이 자신의 프로젝트 소스들이 들어가 있는 repository를 보게 된다. 



지금까지 한 과정은 github과의 연동을 전체 과정중 절반까지 한 것이다. 우리가 github 연동할 때 위에서 사용했던 Git Bash 화면으로만 할 것이면 전부 다 한것이지만 그렇게 할 경우엔 git 명령을 일일이 프롬프트 화면에서 명령어 입력하는 형태로 진행해야 하기 때문에 불편하다. Git Bash  화면으로 하는 것은 연동에 대한 초기화 작업만 진행하는 것이고 그 다음부터 commit, push, pull 등의 git 관련 명령을 실행하는 것은 eclipse에서 하는 것이 편하다. 실제 현재 상황을 설명하자면 git 과의 연동은 Git Bash 화면에서는 모두 끝이 났지만 eclipse에서는 아무런 연동이 되어 있지 않은 상황이다. 그래서 지금부터 하는 설명은 eclipse에서 git 명령을 할 수 있게 연동하는 과정을 설명하겠다. eclipse에서 Git Bash 화면을 통해 github과 연동되어 있는 프로젝트에서 마우스 우클릭을 하면 아래와 같은 context menu가 나오는데 이 메뉴에서 아래 그림과 같이 Team -> Share Project... 를 선택한다.



Share Project... 메뉴를 선택하면 아래의 그림과 같이 나타난다. 흔히 eclipse와 git 연동 관련 글을 보게 되면 이 과정에서 나오는 화면과는 다른 모습이 보일 것이다. 왜냐면 기존 글은 git을 연동하지 않은 상태에서 메뉴를 선택했기 때문에 local repository를 만드는 과정을 거치지만 우리는 이미 Git Bash 화면을 통해 local repository를 만들어놓은 상태이기 때문에 local repository 디렉토리(여기서는 .git 디렉토리)를 자동으로 인지하게 되어서 아래의 그림과 같이 나타난다. 아래와 같이 화면이 나온 상태에서 Finish 버튼을 클릭하면 Eclipse에서 Git을 연동한 과정이 모두 끝나게 된다.



이렇게 모든 과정을 진행한뒤 다시 eclipse 프로젝트에서 마우스 우클릭을 해서 Team 메뉴를 들어가보면 아래의 그림과 같이 Git 관련 명령을 사용할 수 있는 메뉴들을 볼 수 있게 된다. 이후부터 git 관련 작업은 Git Bash 화면이 아닌 eclipse의 Team 메뉴를 통해서 작업하면 된다.



이렇게 자신이 만든 프로젝트를 github과 같은 remote repository에 올리는 방법에 대해 설명했다. 지금까지 설명한 내용을 살펴보면 eclipse에서 local repository를 만든것이 아니라 Git Bash 화면을 통해 현재 프로젝트 디렉토리 하위에 만들었기 때문에 프로젝트 소스가 workspace에 존재하지 않는 그런 상황이 발생되지 않는다. 이 글에서는 자신이 만든 프로젝트를 remote repository에 올리는 방법에 대해 설명했고 다음 글에서는 remote repostory에 올라와 있는 소스를 자신의 eclipse workspace 디렉토리에 가져오는 방법에 대해 설명하겠다.


이 글에서는 언급하지 않았지만 연동하는 과정에서 로그인 아이디와 비밀번호를 물어보는 상황이 나오게 된다. 이때는 github의 로그인 아이디와 비밀번호를 입력하면 된다.