Git / GitHub

 

 

 

 

 

버전 관리란?


(혼자서 작업한다면 버전 관리 시스템이 없어도 괜찮지만) 팀 프로젝트의 소스 코드는 버전 1에 대해서 팀원 A와 B가 동시에 수정을 하여 각각의 버전 2 를 만든 경우 어떤 것이 최종 업데이트 파일인지 확인할 수 없는경우가 발생한다. 따라서 협업 프로젝트는 버전 관리가 필요하다고 할 수 있다.

 

 

 

 

 

Git



원하는 시점마다 깃발을 꽂고 깃발이 꽂힌 시점으로 자유롭게 이동 가능한 소스코드 버전 관리 시스템. 개인 컴퓨터에 저장한다면 혼자 사용할 수 있고 usb에 저장하면 휴대하고 사용할 수 있다. 구글 드라이브와 같은 서버에 올리면 팀원들과 함께 인터넷을 통한 버전 관리 가능하다.

 

 

 

 

 

 

GitHub



git 호스팅 사이트 중 하나이며 시간과 공간의 제약 없이 협업 가능하다. 공개 저장소로 만들 시 모르는 사람과도
협업이 가능하다. 누구든지 기여할 수 있는 공개저장소 프로젝트 => 오픈소스, GitLab, BitButcket등 다양한 호스팅 사이트가 있음

 

 

 

 

 

 

 

 

GitHub 가입하기


 

 

github.com에 접속하여 sign up 진행

 

 

 

 

 

 

필요한 정보 입력 후 create account, join a free plan, complete set up 클릭

 

 

 

 

 

 

기입한 email 주소로 발송 된 메일 확인하여 verify email address 클릭하면 가입 완료

 

 

 

 

 

 

 

 

 

 

 

Git - local repository

 

 

 

Git 설치
  • git 다운로드 검색하여 git-scm.com/download/에 접속
  • OS에 맞는 최신 버전의 git 다운로드

 

 

 

 

 

  • 다운로드 된 파일 실행하면 아래와 같은 창이 뜬다.
  • 기본 설정으로 next 및 install 버튼을 클릭해서 설치 진행 후 finish 버튼을 클릭하면 설치는 완료 되었다고 할 수 있다.

 

 

 

 

 

 

 

  • 검색을 통해 설치 확인을 하도록 한다.
  • Git Bash 실행 후 $ 옆에 git 입력
  • 아래와 같이 기본 명령어에 대한 안내가 나오면 설치가 완료된 걸 확인할 수 있다.

 

 

 

 

 

 

 

 

 

 

로컬 저장소(local repository) 만들기

 

 

  • 바탕 화면 > gitLocalTest > test 경로에 README.txt 파일 만들기
  • txt 파일 열어 아래와 같이 적고 저장 후 닫기

 

 

 

 

 

 

 

 

  • 해당 경로에서 우클릭하여 Git Bash Here 클릭
  • $ 옆에 git init 입력하여 'Initialized empty Git repository' 나오면 초기화 성공
  • .git 폴더 자동 생성 (Git으로 생성한 버전 정보, 원격 저장소 주소 등이 들어있는 로컬 저장소)

 

원하는 파일에 우클릭을 하면 Git Bash를 확인할 수 있다.

 

git init

 

숨김항목 체크시 다음과같이 확인할 수 있다.

 

 

 

 

 

 

 

로컬 저장소(local repository)에 commit 만들기


 

  • GitHub에 등록한 email, username을 사용하여 아래와 같은 명령어 입력
  • $git config --global user.email "GitHub이메일"

 

 

  • $git config --global user.name "GitHub이름"

 

 

  • commit에 추가할 파일 선택
  • $ git add README.txt 입력

 

 

 

  • 커밋에 "first commit"이라는 상세 설명을 적어 첫번째 커밋하기 (-m : message)
  • 입력 : $ git commit -m "first commit"
  • 1 file changed, 1 insertion(+) 확인되면 첫번째 버전 생성 완료

 

 

 

 

 

  • README.txt 파일을 수정한다.

 

  • 입력1 : $ git add README.txt

 

  • 입력2 : $ git commit -m "updated"

 

 

 

 

 

 

 

로컬 저장소(local repository)의 다른 커밋으로 이동하기

 

 

  • $ git log 명령어로 지금까지 만든 두 개의 커밋 확인한다.
  • first commit의 앞 7자리 커밋 아이디를 복사하여 checkout 명령어와 함께 입력시, 해당 커밋으로 코드를 되돌릴 수 있다. 아래 코드에서 확인 해 보자.

 

 

  • 입력 : $ git checkout 2739ecd
  • "HEAD is now at 2739ecd first commit" 확인

 

 

 

 

  • README.txt 파일 확인 하면 first commit 상태로 돌아가 있다.
  • $ git checkout - 를 입력하여 다시 최신 커밋인 두 번째 커밋으로 돌아갈 수 있다.
  • README.txt 파일 확인하면 updated 상태로 돌아가 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

Git - remote repository

 

 

 

원격 저장소(remote repository)에 커밋 올리기
  • GitHub에서 new repository를 클릭한다.
  • repository 이름 입력 후 옵션 선택한 뒤
  • create repository 클릭

 

 

 

 

 

 

 

 

 

 

 

 

  • 깃배쉬에 다음과 같이 입력한다.
  • $ git remote add origin https://github.com/kh-bl/gitRemoteTest.git
  • 로컬 저장소에 원격 저장소 주소를 입력 후 
  • $ git push origin master 입력 시 GitHub 로그인 창이 뜬다.
  • email과 password 입력하여 로그인한다.

 

 

 

 

 

 

  • GitBash에서 아래와 같은 화면 확인 후 GitHub에서 저장소 확인

 

 

 

 

 

 

 

 

 

 

 

 

 

▶ 원격 저장소의 커밋을 로컬 저장소에 내려받기

 

  • 바탕 화면 > gitLocalTest > test2 경로 만들고 우클릭하여 Git Bash Here 클릭
  • $ git clone https://gitlab.com/test-group-22011712/test-project.git .
  • 원격 저장소 주소 뒤의 마침표의 의미는 현재 폴더를 뜻한다.
  • README.txt 파일과 .git 폴더가 보이면 clone에 성공 한 것이다.

 

 

 

 

 

 

 

 

 

 

  • README.txt 파일을 수정하고 저장 (확인을 위함)
  • $ git add README.txt (README.txt 파일 커밋)
  • $ git commit –m “test2 first commit” (커밋에 메시지로 설명 추가)
  • $ git push origin master (원격 저장소에 push)

 

깃발꽂기

 

push 하여 원격 저장소에 업데이트 하기

 

 

 

 

 

  • GitHub의 원격 저장소에 들어가 “test2 first commit” 올라와 있는 것을 확인할 수 있다.

 

 

 

 

 

  • 바탕 화면 > gitLocalTest > test 경로의 README.txt 파일은 “test2 first commit” 변경 사항이 반영되어
    있지 않으므로 원격 저장소에서부터 변경사항을 반영한다.
  • 해당 경로에서 우클릭 Git Bash Here 클릭하여
  •  입력 : $ git pull origin master (원격 저장소의 새로운 커밋을 로컬 저장소로 받아옴)

 

 

 

 

  • 바탕 화면 > gitLocalTest > test 경로의 README.txt 파일을 열어 변경 사항 확인

 

 

 

 

 

 

 

 

 

 

용어 정리

  • Git : 버전 관리 시스템
  • GitHub : Git으로 관리하는 프로젝트를 올려둘 수 있는 사이트
  • Git Bash : CLI 방식으로 Git을 사용할 수 있는 환경
  • CLI(Command Line Interface) - 명령어를 입력하는 방식. GUI(Graphic User Interface) - 마우스로 클릭하는 방식.
  • Commit : 버전 관리를 통해 생성 된 파일, 혹은 그 행위.
  • Log : 지금까지 만든 커밋을 모두 확인하는 명령어.
  • Checkout : 원하는 지점으로 파일을 되돌림.
  • Local repository : 로컬 저장소. Git으로 버전 관리하는 내 컴퓨터 안의 폴더를 의미함.
  • Remote repository : 원격 저장소. GitHub에서 협업하는 공간을 의미함.
  • Push : 로컬 저장소의 커밋(버전 관리한 파일)을 원격 저장소에 올리는 것.
  • Pull : 원격 저장소의 커밋을 로컬 저장소에 내려 받는 것.

 

 

 

 

 

 

당연히 게터 세터 및 생성자의 작성방법은 알아두어야 하지만 이클립스의 편리한 기능을 이용해 일일이 치는 대신 한번에 작성할 수 있다. 

 

 

 

 

(1) 생성자 자동완성 
  • 마우스 우클릭 - source - Generate Constructor using Fields

(* 아무것도 체크하지않으면 기본생성자)

 

 

(2) Getter / Setter 자동완성 
  • 마우스 우클릭 - source - Generate Getter and Setter

 

 

(3) for문의 자동완성(윈도우 기준)
  • for + Ctrl + space

 

 

 

 

 

 

 

 

 

 

프로젝트를 하는경우 소스를 받아오고 내보내는 공유의 과정이 필요한데 이때 가장 기초가 되는 것이 import와 export이다. 두가지 기능을 사용하여 다른 팀원들과 소스를 주고받을 수 있다. 

 

 

export란?

- 내가 가진 파일을 외부로 내보내는 것

 

(1) 좌측 페이지에 대고 오른쪽 버튼 클릭 후 export를 누른다

(2) General 폴더에서 - Archive(압축시킨다는 의미) 를 선택한다.

(3) project 단위로 내보내야하기 때문에 모두 체크 상태가 되었는지 확인한다.

(4) 내보낼 파일 경로를 선택한 뒤 파일명을 지정한다.

(5) 마지막으로 지정 경로 속 '압축파일' 이 있는지 확인한다. 

 

import란?

-외부파일을 나의 workspace로 가져오는 것

(만일 같은 파일이 workspace에 있을 경우 동일 파일을 꺼내는 것은 불가능 하므로 Delete 시켜둘것, 체크박스 확인)

 

(1) 좌측 페이지에 대고 오른쪽 버튼 클릭한 뒤 import 클릭한다. 

(2) General을 누른 뒤 지정경로에 기존에 파일이 있을 것이므로 것이므로 Existing를 클릭한다. 

 

(2)-1. 가져오려는 파일이 압축 파일일 경우 - Select Archive 항목의 browse 를 눌러 파일을 선택한 뒤 Finish를 누른다.
(2)-2. 가져오려는 파일은 압축이 풀린 파일일 경우 - Select Root 항목에 browse로 가져온다,.

 - 이때 그냥 finish를 눌러버리면 소스가 workspace에 옮겨지지 않는다.

 - 반드시 [Copy project into workspace] 항목에 체크한뒤 Finish를 누르도록 한다. 

 

 

 

 

 

강의를 따라가는 도중 종종 내가 따라친 코드가 잘못되어 강사님에게 코드를 다시 받아와야할 일이 생기는 경우가 생길 수 있다. 그런경우를 대비하여 강사님께 실행되는 코드를 다시 받아 오는 방법 

 

먼저 확인 * 이미 있는 파일을 새로 받아오는 경우 중복된 파일로 인해 오류가 발생할 수 있다. 반드시 기존의 파일을 지운후 새로 받아오는 방향이어야 한다. 

push: 강사님이 기존의 코드나 새로 입력한 코드를 GitLab에 업로드 하는 모든 행위

pull : GitLab에 올려진 코드를 나의 이클립스 workspace나 나의 컴퓨터 환경으로 가져오는 것

 

 

PULL

- 새로운 이클립스창을 열어 실행한뒤  Import projects 를 클릭한다.

 

- Git 클릭 후 깃으로부터 가져오는 것이므로 Projects from Git 클릭.

 

- 두가지의 선택지가 뜨는데 가져와야하는건 내 컴퓨터에 존재하는게 아니라 GitLab 내의 URL이므로 Clone URL 클릭 

 

- GitLab 창을 열어 Clone 을 누른 후 "Clone with HTTPS" 하단 Copy URL 클릭한다.

 

 

- 다시 이클립스로 돌아와 URL 항목에 복사한 URL을 붙여 넣은 뒤 하단에 나의 GitLab 이메일과 비밀번호를 차례로 입력한다.

(주의* 구글 연동의 경우 연동이 잘 안되는 경우도 있으니 깃랩 내에서 다시한번 비밀번호를 설정하는 작업이 필요)

 

 

 

 

- 위치를 설정하는 등의 작업을 이어가며 하여 NEXT 

 

 

 

 

 

PULL(2) 중간에 수정이 되는 내용을 PULL 해오는 방법

 

- 우선 강사님께 업데이트 된 내용을 push 요청한다.

 

- 좌측 파일명에 대고 오른쪽 버튼을 클릭하여 TEAM을 누른다.

- 두가지의 동일한 PULL이 있는데 가장 위에있는 PULL을 클릭

 

 

 

- 나의 이메일과 비밀번호를 치고 확인한다.

 

 

- 만약 새로 업데이트 된 내용이 없다면 다음과같은 창이 뜬다.

 

 

 

(+) 만일 Conflict 가 났을 경우 해결법 : 기존에 받아온 파일을 건들였기에 새로받아오는 파일과 충돌이 생긴것
애초에 기존 파일을 건들지 않도록 유의하거나 그냥 프로젝트를 삭제하고 새로 받아오는 방법이 빠르다. 

 

 

 

 

 

 

 

+ Recent posts