우리는 아래 4가지를 배울 것 입니다.

1. repository 만들고 사용하기

2. 브랜치 관리

3. 파일에 수정을 가하고 깃헙에 커밑하여 푸쉬

4. open and merge

 

0.깃헙이란?

깃헙은 코드를 관리하는 플랫폼(=여러 사람이 편리하게 사용할 수 있도록 만든 것 ex.기술환경 : 이 기반 위에서 많은 어플리케이션을 쉽고 편리하게 사용할 수 있다는 의미)으로 프로젝트에 나와 다른 여러 사람들이 함께 작업할 수 있게해주는 것이다.

 

1.시작방법

먼저 깃헙 홈페이지에 들어가서 계좌를 만든다.

 

2.레파지토리 만들기

repository란 보통 single project를 구성하기 위해서 필요하다. 하나의 레파지토리에는 프로젝트에 필요한 폴더와 파일, 이미지, 비디오, 스프레드시트, 데이트셋 등이 있을 수 있다. (일반적으로 README 텍스트 파일을 포함한다.)

우리가 예시로 만들어볼 hello-world repository가 idea,resources, discuss things with others의 장소가 될 수 있다.

 

1) 상단의 아이디 옆에 +버튼을 누르면 new repository가 있다.

2) repository의 이름을 hello-world로 정하자.

3) 간단한 설명을 작성한다.

4) readme와 함께 이 레파지토리를 초기화한다를 선택하자.

 

3.브랜치 만들기

branching이란 하나의 레파지토리의 다른 버전이라고 보면 된다.

우리는 다양한 작업을 실험해보고 수정을 가하기 위해서 브랜치를 사용한다.

 

기본적으로 레파지토리가 만들어지면 main 브랜치가 하나 있다. 이 메인 브랜치는 최종적인(definitive) 브랜치로 여겨질 것이다.

메인 브랜치로부터 복사하거나 snapshot을 만들 수 있다.

 

예를 들어 설명해보자.

story.txt

stroy-sam-edit.txt

stroy-sam-final-edit.txt

 

이런 식으로 수정을 가한 버전을 계속 만들고 서로 합칠 수도 있는 것이다.

 

자 이제 진짜 만들어보자

1) 방금 만든 hello-world repository로 이동한다.

2) branch:main을 선택하고 브랜치 이름을 입력한다 readme-edits라고 입력해보자. 입력 후 엔터를 입력하면 새로운 브랜치가 만들어진다.

 

자 이제 2개의 브랜치가 만들어졌다. 다른 버전이지만 아직 readme-edits에 수정을 하지 않았으므로 같은 내용을 지니고 있다.

이것은 마치 부모프로세스가 fork()하여 자식프로세스를 만들 때와 같다.

 

4.수정을 하고 commit하기

여기서 중요한 용어인 commit은 수정사항을 저장하는 것을 의미한다. 각각의 commit은 관련된 commit message가 있다.

commit message는 어떤 수정사항이 가해졌는 지 설명해준다. 그래야지 팀원들이 어떤 수정을 했는 지 알 수 있다.

 

1)readme.md 파일을 선택한다.

2)연필 아이콘을 선택한다.

3)아무거나 적는다. 그리고 commit message도 적어준다. 나는 add description을 입력하였다.

4)commit changes 버튼을 클릭하여 끝낸다.

 

이제 서로 다른 버전에 다른 내용물이 들어가게 되었다.

 

5. open a pull request

=> 누군가 공개해 둔 프로젝트를 가져와 작업하고 싶은 경우.

나에게 권한이 없지만 기여하고 싶은 프로젝트가 있다면 clone 이전에 해당 프로젝트를 fork하여 다른 사람의 레파지토리를 가져와 내 레파지토리를 만드는 기능이다.

-> 만약 나에게 레파지토리에 대한 관리 권한이 있다면 git clone으로 로컬 저장소로 복사할 수 있다.

 

fork로 내려받은 레파지토리를 clone을 통해 로컬에 내려받고 수정한 후, add -> commit -> push하면 fork한 내 레포지토리에만 반영되고 원본 레포지토리에는 아무런 영향을 줄 수 없다.

이때, 이 작업을 원본 레포지토리에 반영해달라고 요청하는 것이 pull request다.

 

"회사 기술 블로그 repository를 포크떠서 후기 작성하시고 저한테 pr보내주세요"
해결해보자.

 

*연습하기 좋은 사이트 추천

 

guides.github.com/activities/hello-world/

 

Hello World · GitHub Guides

The Hello World project is a time-honored tradition in computer programming. It is a simple exercise that gets you started when learning something new. Let’s get started with GitHub! You’ll learn how to: Create and use a repository Start and manage a n

guides.github.com

 

www.secmem.org/blog/2019/04/10/git_pr/

 

기본적인 Git 사용법과 Pull Request를 통해 프로젝트 기여하기

VCS? Git? GitHub? Git이란 버전 관리 시스템(VCS, Version Control System)의 한 종류입니다. 그렇다면 여기서 말하는 버전 관리란 무엇이고, 왜 필요할까요? 버전 관리란 이름 그대로 여러 파일을 하나의 버

www.secmem.org

 

www.youtube.com/githubguides

 

GitHub Training & Guides

Welcome to the Git and GitHub Training YouTube channel. Join the GitHub Training team as they share feature demos, tips and techniques for effective daily Git and GitHub use. These videos teach workflow efficiencies that allow people to more effectively co

www.youtube.com

 

 

guides.github.com/

 

GitHub Guides

GitHub is the best way to build and ship software. Powerful collaboration, code review, and code management for open source and private projects.

guides.github.com

 

'이제는 사용하지 않는 공부방 > 컴퓨터공학 필수정보' 카테고리의 다른 글

homebrew  (0) 2021.01.04
git/github 실전편  (0) 2021.01.04
Git 사용법  (2) 2020.02.29
pandas 판다스, numpy 넘파이, Matplotlib  (0) 2020.02.26
iccv 학회  (0) 2020.02.18

+ Recent posts