티스토리 뷰
안녕하세요
프로그래밍을 배우는 빛나는 샤트입니다.
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,>
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,>
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,>
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를 막을 수 있다. (막는 게 나쁜 것이 아니다. 나중에 뭐가 기준이 되는 지 알 수 있다.)
<git, github="" 사용법="" (4)="" -="" fork=""></git,>
16. fork
다른 사람의 레포지토리를 가져와 내 레포지토리를 만드는 기능
내 레포지토리로 가져와 로컬에서 요리조리 만져보고 구동해보고 끝에는 fork해온 레포지토리에 PR을 보내 프로젝트에 도움을 주는 것이다. (공개 프로젝트에 참여해서 기여도를 올리는 것도 재밌을 듯!)
fork 후 clone을 통해 내 로컬에 저장해 사용하면 된다!
<최대한 시도해보고 에러가 없도록 글을 썼지만 부족한 부분이 있을 수 있습니다. 틀린 부분 지적 감사합니다. >
'etc' 카테고리의 다른 글
[Error]gensim 설치 오류 (0) | 2022.02.16 |
---|---|
[Tip] 주피터 노트북 자유자재로 쓰기 (0) | 2022.02.16 |
- Total
- Today
- Yesterday
- 서빙로봇
- 배달로봇
- ros
- 자율주행로봇
- 대전 인공지능
- 광주AI
- 멋쟁이사자처럼
- AIFFEL교육
- AIFFEL인공지능과정
- Slam
- 아이펠
- Python
- 모두의연구소
- 광주
- 자율주행기술
- 멘탈관리
- IT
- 해커톤
- AIFFEL
- 인공지능
- 인공지능교육
- AIFFEL후기
- 모두의 연구소
- 광주인공지능사관학교
- 인공지능 교육
- SLAM공부
- 도전
- SLAM강의
- 실내자율주행
- 양정연SLAM
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |