티스토리 뷰

etc

[Tip]git, github 사용법

무엇보다_빛나는_샤트 2022. 2. 16. 23:29

안녕하세요

프로그래밍을 배우는 빛나는 샤트입니다.

 

git, github 사용법입니다!

 

[용어]

① 로컬: 본인의 컴퓨터(데스크탑, 노트북 등)을 지칭한다.

② 원격(저장소): 웹 페이지에 있는 저장소를 말한다. 내 컴퓨터의 저장장치가 망가져도 원격에 무사히 있다면 다행일 것

 

 

0. git 설치

$ sudo apt-get install git
$ git --version

버전 확인과 설치가 잘 되었는 지 확인할 수 있다.

 

1. github 가입, 레포지토리 생성

github에 가입, 레포지토리를 생성하자.

생성한 직후의 모습은 아래와 같다.

 

2. 작업할 폴더 선택, 터미널 열기

아래와 같이 우클릭을 통해 해당 경로에서 바로 터미널을 실행할 수 있다.

 

 

 

3.계정 이름, 이메일 등록

본인의 이메일 주소와 유저이름을 정의해준다.

$ git config --global user.email "이메일주소"
$ git config --global user.name "유저이름"

 

 

4. git 시작 준비

아래와 같이 ipynb파일 하나가 있는 폴더에서 시작하려고 한다.

 

--- 여기까지 하면 준비는 끝! ---

 

<git, github="" 사용법="" (1)="" -="" github에="" 올리는="" 법=""></git,>

git, github 사용법 (1) - github에 올리는 법

 

5. git init

해당 폴더 경로를 git으로 버전 관리를 시작하는 명령어

$ git init

 

6. git add (파일명)

git으로 버전관리할 파일을 지정

$ git add text.txt

아래 명령어는 해당 경로에 있는 모든 파일을 선택하는 것이다. (파일 이름 하나하나 입력하기 귀찮을 때 유용)

(다만 버전관리하고 싶지 않은 파일까지 add된다.)

$ git add .

 

7. git commit -m '커밋 메세지'

add한 파일들을 새로운 버전의 이름과 함께 등록을 마치는 것

'커밋 메시지' 부분은 사용자 원하는 내용으로 작성하면 된다. 예를 들어 '버전2_함수2제거' 등으로 해당 버전에 대한 설명을 짧게 적을수도 있다.

$ git commit -m 'ver_2_remove_function2'

 

--- 여기까지는 로컬에서의 작업 ---

 

8. git remote add origin (레포지토리 url)

본인의 원격(여기에서는 github) 저장소(레포지토리)와 연결하는 명령어

$ git remote add origin https://github.com/Shinest-changwon/github_practice

위 코드를 그대로 입력하면 샤트의 레포지토리와 연결하는 것이니 맨 마지막 부분은 본인의 레포지토리 url을 넣어주자

 

9. git push origin master

로컬에 있는 git을 원격에 업로드하는 명령어

맨 마지막 master은 브랜치(branch)이름이다. 하지만 혼자하거나 처음이라면 일단 master로 실시하자.

하지만 협업 시에는 branch를 구분해 작업하는 것이 중요하다.

$ git push origin master

 

> 여기까지 하면 기본적인 내용은 끝!

> 혼자서 명령어를 익히면서 헷갈릴때마다 한 번씩 시도해보자!

 

 

<git, github="" 사용법="" (2)="" -="" clone,="" pull=""></git,>

git, github 사용법 (2) - clone, pull

 

10. git clone (레포지토리 url)

clone은 복제라는 의미이다.

이 명령어는 레포지토리를 통째로 내 로컬에 복제하는 명령어이다.

협업 시에도 사용되고 유용한 레포지토리가 있어서 로컬에서 작동시켜보고 싶을 때 사용하면 된다.

$ git clone https://github.com/Shinest-changwon/github_practice

마지막 부분은 원하는 레포지토리 url을 입력해야 한다!

 

★ 위의 예시를 보자. A가 먼저 push를 통해  github에 코드를 업로드했다. B는 아직 아무것도 없는 상태이다. B는 clone을 통해 A가 올린 코드 파일을 손쉽게 로컬에 받을 수 있다. (물론 zip파일로 다운도 가능하지만 clone이 훨씬 편하다.)

 

11. git pull origin master

push는 로컬→원격이라면 pull은 반대로 원격 → 로컬이다.

즉, 원격(github)에 있는 버전이 더 최신이니 내 로컬을 버전을 갱신하겠다는 의미이다.

 

★ 위의 예시를 보자. B가 clone으로 A가 작성한 코드를 보니 이상한 부분이 있다. 그래서 수정 후 push를 통해 원격에 버전업(버전1)을 했다. 여기서 A의 로컬은 현재 버전1이다. A는 원격에 있는 코드 파일을 로컬과 일치시켜주고 싶다. 이럴때 pull을 통해 가능하다.

※ 만약 B가 push한 상황에 A가 pull을 하지 않고 push를 하려고 하면 안된다.

 

<git, github="" 사용법="" (3)="" -="" 브랜치(branch),="" pull="" request=""></git,>

git, github 사용법 (3) - branch, pull request

12. branch란?

branch는 나뭇가지라는 뜻을 가지고 있다. 그렇듯이 하나의 레포지토리 안에는 default의 브랜치가 있고(메인이라고 보면 된다.) 나머지 다양한 수의 브랜치를 가질 수 있다. 브랜치는 레포지토리 안에 있는 독립적인 공간이다. 자세한 설명은 위의 그림 참고.

 

13. git branch (브랜치 이름)

본인이 사용하고 싶은 브랜치 이름을 설정해 브랜치를 생성하자. 생성만 한다고 끝이 아니다!!

$ git branch shate

shate부분은 본인이 원하는 이름으로 바꿔서 하면 된다.

 

$ git branch

위 명령어는 현재 생성된 브랜치를 출력한다.

 

14. git checkout (브랜치 이름)

생성만 한다고 끝이 아니라 전환해야한다.

checkout를 통해 브랜치를 전환하자.

$ git checkout (브랜치 이름)

★ 중요 ★

브랜치 생성과 전환을 동시에 할 수 있는 명령어

$ git checkout -b shate

위 명령어는 브랜치 생성과 전환을 동시에 하니 유용하게 사용해보자!

 

15. pull request(PR)

Pull Request. 줄여서 PR. 협업을 시작하면 자주 듣게될 단어이다.

팀 단위로 일을 하면 관리자와 실무자가 있다. 실무자는 다양한 실무를 처리하고 변경사항을 관리자에게 보고하고 승인을 받거나 반려를 받는다. github에도 이와 비슷한 기능이 있다.

PR은 한 마디로 "레포지토리 default 브랜치에 이런 파일을 올려서 병합시켜도 되나요?"라고 요청하는 것이다. 흔히 "PR보낸다"라고 말한다. 

 

★ 위의 예시를 보면 A(팀원)이 파일을 생성/수정해서 원격에 올렸다(push) 그러면 자동으로 원격 저장소에 Compare & pull request 버튼이 생긴다. 관리자는 이를 보고 merge(병합)할지 결정한다. 승인하게 되면 default 브랜치에 저장된다. 이를 통해 무분별한 push를 막을 수 있다. (막는 게 나쁜 것이 아니다. 나중에 뭐가 기준이 되는 지 알 수 있다.)

 

PR 요청이 온 github 화면

<git, github="" 사용법="" (4)="" -="" fork=""></git,>

16. fork

다른 사람의 레포지토리를 가져와 내 레포지토리를 만드는 기능

내 레포지토리로 가져와 로컬에서 요리조리 만져보고 구동해보고 끝에는 fork해온 레포지토리에 PR을 보내 프로젝트에 도움을 주는 것이다. (공개 프로젝트에 참여해서 기여도를 올리는 것도 재밌을 듯!)

 

fork 후 clone을 통해 내 로컬에 저장해 사용하면 된다!

 

&lt;git, github 사용법 (4) - fork&gt;

 

fork한 레포지토리가 내 레포지토리로 왔다!

 

<최대한 시도해보고 에러가 없도록 글을 썼지만 부족한 부분이 있을 수 있습니다. 틀린 부분 지적 감사합니다. >

LIST

'etc' 카테고리의 다른 글

[Error]gensim 설치 오류  (0) 2022.02.16
[Tip] 주피터 노트북 자유자재로 쓰기  (0) 2022.02.16
댓글