FIF's 코딩팩토리

Git과 Git Hub 사용법 정리 본문

기타

Git과 Git Hub 사용법 정리

FIF 2019. 6. 11. 09:23
반응형

Git을 알려면 형상관리를 먼저 알아야 한다.

 

형상관리란?

소프트웨어에서 형상 관리는 개발 중 발생하는 모든 산출물들이 변경됨으로써 점차 변해가는 소프트웨어 형상을 체계적으로 관리하고 유지하는 기법이다.

소프트웨어 개발 생명주기 전반에 걸쳐 생성되는 모든 산출물의 종합 및 변경 과정을 체계적으로 관리하고 유지하는 일련의 개발 관리 활동으로, 소프트웨어 가시성과 추적 가능성을 부여하여 제품의 품질과 안전성을 높인다.

 

형상관리 툴에는

상용(유료)

1)   IBM Rational ClearCase

2)   Perforce

3)   PTC Integrity

 

비상용(오픈소스)

1)   Subversion(SVN)

2)   CVS

3)   Git

 

등이 있다.

 

용어

설명

커밋(Commit)

작업 디렉토리에서 변경, 추가 및 삭제된 파일을 원본 저장소인 서버에 적용

중앙 저장소(Repository)

원본 소스를 저장하고 있는 저장소

작업 디렉토리(Working Copy)

원본 저장소로부터 체크아웃을 통해 내려 받은 내 로컬 PC에 있는 작업 사본 디렉토리 의미

갱신(Update)

체크아웃을  받은 작업 디렉토리를 원본 저장소의 가장 최신 커밋된 버전까지 업데이트하는 명령어

리비전(Revision)

소스 파일을 수정하여 커밋하게 되면 일정한 규칙에 의해 숫자가 증가함. 저장소에 저장된 각각의 파일 버전이라 할 수 있음

되돌리기(Roll Back)

작업 디렉토리에 저장되어 있는 사본을 특정 리비전 또는 특정 시간으로 복원할 수 있도록 하는 명령어

브런치(Branch)

Root프로젝트로부터 파생된 프로젝트.

Branch를 생성하여 버전 관리가 가능(ex 특정 커스터마이징, 미확인 된 새로운 기능을 구현 중 일 때 등등….)

머지(Merge)

Branch에서 진행하던 작업을 Root프로젝트와 합침

 

Git이란?

깃(Git/git)은 프로그램 등의 소스 코드 관리를 위한 분산 버전 관리 시스템이다.

쉽게 말하면 여려명의 개발자(분산)가 특정 프로젝트를 자신의 컴퓨터로 협업하여 개발하면서 버전을 관리할 수 있는 시스템이다. 최근에 개발자라면 너도나도 Git 아이디를 가지고 있으며, 대부분의 회사에서도 채용할 때 Git아이디를 요구하는 회사들이 늘어났다. 이는 어떤 프로젝트를 해봤는지 코딩 능력을 보려고 하는 의도도 있지만, 협업을 해야되는 회사에서 협업 경험과 Git에 대한 숙련도를 보기 위함이 크다.

 

Git의 버전관리 방식

Git은 중앙 서버 컴퓨터와 여러 개의 컴퓨터들이 연결되어 모두 같은 버전의 데이터베이스를 유지한다. 이 버전은 업데이트 될 때마다 자동으로 생성된다. 따라서 이 파일들은 최신버전으로 모든 컴퓨터에서 유지될 수 있을 것이다.

 

Github란?

- 각각의 개발자들이 진행한 개발의 변경 사항을 온라인에서 확인 가능한 서비스.

- 저장소(Repository) : 소스 코드의 변경 사항을 보관하는 장소

- 사례 : spring Framework의 코드 공유(온라인에서 파일 시스템 형식으로 열람 가능)

 

 

- README.MD : 해당 프로젝트를 쓰려면 어떻게 해야하는지 기본적인 매뉴얼이 담긴 부분

 

- commits : 해당 프로젝트에 몇 개의 commit(버전)이 있는가를 표시 따라서 commits를 누르면 버전에 따른 작성자 시                  간과 함께 변경사항 등이 나온다.

 

저장소로의 GitHub

1) 저장소라는 것은 지역 저장소와 원격 저장소로 나뉨

 

2) 지역 저장소(Local) : 개별 컴퓨터에서 소스 코드를 수정하여 Commit후 새로운 버전 생성

 

3) 원격 저장소(Remote) : 프로젝트는 다인이 함게함. 백업과 협업의 과정이 필요해서 온라인에 중앙 저장소가 필요함

 

4) 지역 저장소와 원격 저장소가 정보를 교환하면서 작업이 이루어지며, GitHub란 오픈소스 프로젝트들을 위한 원격 저      장소를 제공해주는 서비스

 

5) 비공개 원격 저장소가 필요한 경우 GitHub에서 유료로 제공함

 

 

 

Github 서비스 활용

 

1)    Watch : 자신이 관심있는 프로젝트의 변경사항을 보고 싶을 때 누른다.

 

2)    Start : 페이스북의 ‘ 좋아요’ 기능

 

3)    Fork : 해당 프로젝트의 복제가 이루어짐(옆테이블의 돈가스를 포크로 찍는다)

       Fort를 하면 이 프로젝트의 멤버가 아니여도 마음대로 지역저장소에 저장하고 수정하여 다시 쓸 수도 있다.

       (오픈 소 스 정책)

 

 

1)    Pull requests : 해당 프로젝트인 A를 Fork해서 수정을 하여 새로운 프로젝트 B를 만들었는데,

       ‘B가 원래 프로젝트인 A에도 도움이 되겠다’ 싶을 때 눌러 요청을 하는 곳. A제작자가 판단하여 승인하면 프로젝트         에 추가됨.

 

2)    Wiki : 프로젝트의 매뉴얼등이 저장돼 있는곳

 

3)    Pulse : 프로젝트의 변화(관심도 등)

 

4)    Graphs : 프로젝트에 대한 데이터를 시각화하여 보여준다.

 

결론

GitHub란 원격저장소를 제공하여 전세계 개발자들이 협업을 가능하게 하여 오픈소스를 만드는 서비스이다.

원격 저장소란 지역 저장소에서 작업한 내용을 업로드 하여 여러 개발자들이 협업할 수 있도록 만드는 중앙 저장소이다.

 

 

깃허브 사용법

 

+ -> new repository 클릭

 

여기서 repository name과 내가 GitHub에 올릴 프로젝트 name이 같아야한다.

 

Create repository하면 깃허브에 저장소가 만들어진다.

 

주소도나오고….git명령어도 나온다.

 

그럼 본격적으로 로컬에서 깃허브에 올려보자.

 

 

 

올리고자 하는 폴더 마우스 오른쪽버튼-Git Bash Here

 

 

 

창이 나오는데 경로가 잡혀있다.

 

하나의 프로젝트를 계속해서 깃허브에 push, pull한다 했을 때,

들어올때마다 경로지정해주는거 귀찮으니까 설정을 해준다.

git config –-global user.name “wlsvy19” //git계정 Name변경

git config –global user.email jinpyolee19@naver.com//git 계정 Mail변경

 

$git init //깃 초기화

$git add . // 현재 디렉토리의 모든 파일을 추가 한다.

$git commit -m “first commit” // “first commit”이라는 주석과 함게 커밋해서 스냅샷을 찍는다.

$git remote add origin https://github.com/wlsvy19/MyProgram.git//원격지 설정

$git push -u origin master //push하기!

 

잘된다.

 

 

프로젝트 하다가 변경 또는 수정할거 다하고 올리고 싶으면

$git remote add origin https://github.com/wlsvy19/MyProgram.git//원격지 설정

$git push -u origin master // push하기

 

 

업로드된 깃허브

추가적으로 변동사항이 있어서 push하려면

 

$git add .

$ git commit -m “메시지달아주고”

$git push origin master

 

3줄이면 된다.

반응형
Comments