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 : 원격 저장소의 커밋을 로컬 저장소에 내려 받는 것.

 

 

 

 

 

 

+ Recent posts