4/16/2018

스프링과 깃허브(GitHub) 연동

깃허브(GitHub)는 버전 관리 시스템인 깃(Git)을 저장할 수 있는 사이트이자 저장소입니다. 깃허브를 사용하면 프로젝트의 규모와 인원에 관계 없이, 프로젝트의 버전 관리를 보다 용이하게 할 수 있습니다.

자세한 설명은 다른 게시물에서하고, 스프링과 깃허브를 연동시켜보겠습니다. 저는 스프링에서 깃허브를 연동하는것보다 소스 트리를 사용하는것을 더 선호합니다. 소스 트리에 대해서는 다른 게시물에 작성하겠습니다.

기본적으로 깃허브에 회원가입이 되어있어야 합니다.

새로운 프로젝트를 생성합니다.

저장소(Repository)의 이름과 설명(Description)은 적당한 이름으로 작성합니다. 비공개(Private)는 유료기능입니다.

https://github.com/사용자계정/저장소명.git으로 구성된 저장소와 URL이 생성됩니다.

스프링 우측 상단에 있는 Opne Perspective 버튼을 클릭한 뒤, Git을 선택합니다.

Clone a Git repository를 클릭하고, Clone URI를 선택합니다.

URI는 자신의 깃허브 저장소의 주소를 입력합니다. 입력하면 Host와 Repository path가 자동으로 입력됩니다. 사용자 인증(Authentication)엔 자신의 깃허브 아이디와 비밀번호를 입력합니다.

아직 브랜치가 없어서 선택할 수 있는 브랜치가 없습니다. 다음(Next)버튼을 클릭합니다.

로컬에 저장할 경로를 확인하거나 수정할 수 있습니다. 완료(Finish) 버튼을 클릭합니다.

이제 Git Repository에 깃허브에서 만든 저장소가 보입니다. 보이기만할 뿐, 안에는 아무것도 없습니다.

스프링 우측 상단의 Spring 버튼을 클릭하거나, Ctrl + F8 을 눌러서 퍼스펙티브(Perspective)를 스프링으로 이동합니다.

프로젝트를 우클릭하고 Team → Share Project를 클릭합니다.

저장할 깃허브 저장소를 선택합니다.

이제 스프링과 깃허브 연동이 완료되었습니다.

스프링 우측 상단의 Git Repository 버튼, 또는 Ctrl + F8을 눌러 퍼스펙티브를 변경하여 저장소를 열어보면, 이전에 선택했던 프로젝트가 저장되어있는걸 확인할 수 있습니다.

하지만 실제로 깃허브에 저장되어있는게 아니라, 로컬에 저장되어있는 상태입니다.

프로젝트 우클릭 Team → Add to Index를 클릭합니다.

프로젝트 우클릭 Team → Commit을 클릭합니다.

커밋 메시지를 입력한 뒤, Commit and Push 버튼을 클릭합니다.

저장소와 브랜치를 확인하고 다음(Next) 버튼을 클릭합니다.

푸시(Push) 버튼을 클릭해서 완료합니다.

잠시 기다리면 완료됩니다.

깃허브에서 확인해보면, 실제로 프로젝트가 깃허브에 저장되어있는걸 확인할 수 있습니다.

프로젝트가 깃허브에 저장되었으니, 스프링에서 작업중인 프로젝트를 지우겠습니다.

다른 컴퓨터에서 스프링을 설치후 프로젝트를 가져오는 연습입니다.

로컬에 저장된 프로젝트 자체를 삭제합니다.

스프링 우측 상단의 Git Repository를 클릭 또는 Ctrl + F8을 눌러서 리스펙티브를 변경한뒤, 원하는 프로젝트를 우클릭하여 Import Projects를 클릭합니다.

임포트할 프로젝트를 확인합니다.

리스펙티브를 변경해서 보면, 깃허브에 업로드했던 프로젝트를 정상적으로 다운로드 받은걸 확인할 수 있습니다.

다음은 리스펙티브 변경없이 프로젝트를 가져오는 방법입니다. 스프링과 깃허브를 연동하지 않았거나, 다른 사람의 깃허브에 있는 프로젝트를 가져오는 방법입니다.

스프링 상단 메뉴의 File → Import를 클릭합니다.

Git → Projects from Git을 선택합니다.

Clone URI를 선택합니다.

URI는 가져올 깃허브 저장소의 주소를 입력합니다. 저는 따로 가져올 프로젝트가 없어서 제 깃허브 저장소의 주소를 입력했습니다.

Authenitication은 자신의 깃허브 아이디와 비밀번호를 입력합니다.

브랜치를 선택합니다. 작업에 따라 브랜치가 여러개일 수 있습니다.

로컬에 저장될 경로를 입력합니다. 기본적으로 깃허브 저장소의 이름을 따라가며, 변경할 수 있습니다.

Import exising Eclipe projects를 선택합니다.

임포트할 프로젝트를 선택합니다. 제 깃허브 저장소에 프로젝트는 하나밖에 없습니다.

잠시 기다리면 프로젝트가 추가된걸 확인할 수 있습니다.

깃허브와 연동된 프로젝트를 수정하고 저장을 하게되면, 파일 앞에 표시(>)가 생깁니다. 이 표시가 있다는건 깃허브에 저장된것과 내용이 다르다는것을 의미합니다.

프로젝트(또는 폴더나 파일)를 우클릭 Team → Commit을 클릭합니다.

커밋 메시지를 입력합니다.

커밋이 완료되고 깃허브 저장소에 접속해보면 현재 제 깃허브 저장소에 2개의 커밋이 있다는걸 알 수 있습니다.

첫번째 커밋과 두번째 커밋이 있는걸 확인할 수 있습니다.

두 커밋을 열어보면, 저장되어있는 내용이 다르다는것을 확인할 수 있습니다. 이렇게 커밋을 기준으로 버전이 구분되기 때문에, 작업한 내용을 언제든지 복원하거나 분기점(브랜치)을 만들 수 있습니다.

스프링과 깃허브를 연동하는 방법을 알았으니, 끊는 방법도 알아야합니다.

연동을 끊고자하는 프로젝트 우클릭 Team → Disconnect를 클릭합니다. 클릭하면 이름 그대로 연결이 끊기게 됩니다.

게시물 수정
  1. 혹시 깃허브에 게시판을 한번 올린다음에 수정해서 깃허브에 다시 올리려고 하면 위에 글처럼 다시 하면 되나요 ~ ?

    답글삭제
    답글
    1. 안녕하세요? 방문해주셔서 감사합니다.

      프로젝트를 업로드한 상태에서, 코드를 수정/추가한다음 그것을 깃허브에 적용하려는것을 말씀하시는것 같습니다.
      이렇게 수정/추가한 코드를 저장소에 적용하는 행동을 '커밋'이라고 합니다.

      커밋은 본문내에서 프로젝트 우클릭 Team → Commit을 클릭합니다.라는 부분부터 시작합니다. 굵게 표시된 텍스트를 복사해서 컨트롤+F를 눌러서 검색하시면 됩니다.

      삭제
  2. add to index를 해도 물음표가 사라지지않습니다...왜 이러는걸까요

    답글삭제
    답글
    1. 안녕하세요? 방문해주셔서 감사합니다.

      이클립스 사용중이시면 새로고침 또는 프로젝트 클린 또는 종료후 재시작(...)을 해주시면 되리라 봅니다.
      이클립스가 좀..그렇습니다..ㅠㅠ

      삭제
  3. 여기 소스 깃에 올려도 되나요?

    답글삭제
    답글
    1. 안녕하세요? 방문해주셔서 감사합니다.

      이 블로그에 있는 소스에 대한거라면.. 블로그 어바웃에 있습니다.

      이렇다하게 대단한건 없으나,
      이 블로그의 모든 게시물은 어떠한 조건없이 자유롭게 사용하실 수 있습니다.

      삭제
  4. 정말 많이 배우고 갑니다 감사드립니다

    답글삭제