일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 오버라이딩
- 멱등
- 딥러닝
- 깊이우선탐색
- 파이썬 알고리즘
- 백준
- BOJ
- 캐싱
- 해시
- 강화학습
- 프로그래머스
- 코테
- 비지도학습
- 이진탐색
- 너비우선탐색
- 알고리즘
- 자바
- rest api
- 머신러닝
- 파이썬
- 스택과 힙
- 지도학습
- HTTP
- 코딩
- 코딩테스트
- post
- Merge sort
- bineary search
- 딕셔너리
- 파이썬 오류
- Today
- Total
chae._.chae
깃허브란 ? 본문
⚡ Git 이란 무엇인가 ?
Git이란 소스관리를 위한 분산형 버전 관리 시스템이다.
한 프로젝트에서 코드를 여러 사람이 함께 작업할 수 있도록 도와주는 기능을 한다.
또한, Git에서는 소스코드가 변경된 이력을 모두 쉽게 확인할 수 있으며, 특정 시점에 저장된 버전과 비교하거나 특정 시점으로 되돌아 갈 수도 있다.
(에휴 이런 최고의 도구도 사용법 모르고 막쓰면 깃헙 들어가서 CTRL+C/V하고 있는다...ㅎㅎ)
흐흠
- 내 컴퓨터에서 작업한 뒤 작업물을 컴퓨터 안에 커밋하는데, 이 저장소를 지역저장소(local repository)라 한다.
- 하지만, 작업물들을 지역 저장소에만 저장하는 것은 안전하지 않은데, 깃을 이용하면 지역저장소와 원격저장소(remote repository)를 연결해 백업이 가능하다.
- 여러 원격저장소가 존재하는데, 가장 대표적인 것이 깃허브이다.
⚡ 저장소(Git Repository)
- 저장소(Git Repository)란 소스코드가 저장되어 있는 여러 개의 브랜치들이 모여 있는 디스크상의 물리적 공간을 의미한다.
- Git 저장소가 좋은 점 중 하나는 파일이 변경 이력 별로 구분되어 저장된다는 것이다.
🎈 반드시 알 것 사전지식!
- 커밋(commit) : 파일을 추가하거나 변경 내용을 저장소에 저장하는 작업
- 푸시(push) : 파일을 추가하거나 변경한 내용을 원격 저장소에 업로드하는 작업
- 저장소는 내 컴퓨터에 있는 로컬 저장소, 서버 등 네트워크에 있는 원격 저장소 2개가 있다.
- 로컬(local)저장소 : 현재 내가 사용하고 있는 내 PC에 저장되는 저장소이며, 내 PC의 폴더와 유사하다. 원격 저장소의 파일들을 로컬저장소로 pull할 수 있다.
- 원격(Remote) 저장소 : 원격 저장소는 원격 서버에 저장되고 관리되는 저장소이며, 로컬 저장소의 파일들을 원격 저장소에 push할 수 있다.
- working directory파일은 크게 tracked, untracked의 두 가지 상태로 나뉜다. 파일의 수정이 일어나면 git이 파일의 변경을 감지하여 사용자에게 알려주는, 파일을 추적하는 tracked상태와 파일을 저장소에 저장할 필요가 없어 git이 추적하고 있지 않은 untracked상태이다.
⚡ 브랜치란 무엇인가 ?
개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생기는데, 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는 기능을 제공하는 것이 브랜치(branch)이다.
처음에 별다른 설정을 하지 않는다면 아마 master branch에서 작업을 하고 있을 것이다.
Master branch란 모든 repository의 기본/메인이라고 보면 된다.
협업을 하며 프로젝트를 진행할때에는 master branch로부터 파생된 각자 다른 branch들로부터 수정사항이 생기면, 이를 master에 병합(merge)하는 과정을 거치게 된다.
여러명이 같이 작업할때 conflict를 방지하기 위해서 각자 따로 브랜피를 파서 사용하게 된다.
🚀 처음 작업을 시작할 때, 원격 저장소에서 로컬 저장소로 소스코드를 복사해 가져오는 Clone 작업을 거친다. 내 PC인 로컬 저장소에서 작업을 하다가 원격 저장소에 올려준다. (원격 저장소에 있는 다른 사람이 작업한 내용을 나의 로컬 저장소로 가져올 수 있다.) 소스코드를 변경한 뒤에는 커밋(commit)을 해준다.
커밋한 내용은 로컬 저장소에 저장되며, 푸시하기 전에는 원격 저장소에 반영되지 않는다.
⚡ 깃허브 명령어 정리 (git bash에서 연습하자!)
먼저, git bash 들어가서 내 작업 파일 있는 곳 까지 이동해준다.
- git clone https:~~~URL : 기존 소스코드 다운로드/복제 (뒤에 주소는 깃허브에서 카피해오기)
- git remote : 현재 프로젝트에 등록된 리모트 저장소 확인
- git branch -a : 빨간색으로 나오는게 원격으로 된 브랜치.
- git pull origin master : origin master에 있는거를 가져온다 (작업전에 이거 먼저 가져와서 해준다!! 하지 않으면 conflict이 일어날 가능성이 높아진다. )
- git add : 파일을 커밋이 가능한 상태로 만드는것.
- git add . : 전체를 모두 add(staging해줌)
- git add 파일/디렉토리 경로 : 변경내용의 일부만 add
- git stash : 하던 작업을 임시로 저장해두고 싶을 때 사용하는 명령어
- git push origin 내브랜치 : 원격에 있는 내 브랜치에 올린다.
- git status : 현재 저장소의 상태를 나타내주고, 파일들의 상태를 확인할 수 있다
- ** 원격저장소에 push했을때 커밋명을 바꾸는 명령어도 있다. (원격에 덮어씌우는 방법) => 그러나 권장되지 않는다. 다른사람들이 내 브랜치를 pull받았을때, 커밋 메시지가 수정되어 혼란스러움. 그러니 Push는 신중하게 하자.
- git commit -m "커밋메세지(Initial commit/Merge 등등)"
- git commit -m "마지막 커밋" : 처음에 '마지막 커밋'이라 커밋명을 넣는다.
- git commit --amend -m "마지막 커밋 수정" : 위에서 커밋한 메시지 문구 수정
- git branch newbranch1 : 브랜치를 생성하는 명령어(newbranch1이 생긴다)
- git checkout exbranch : 현재 master브랜치에서 exbranch1으로 이동하기 위한 명령어 ( B옵션을 사용하면 브랜치 생성과 체크아웃을 한번에 할 수 있다.)
- git merge exbranch : 브랜치를 병합하는 명령어(수정 부분이 겹치면 conflict가 발생할 수 있다)
'프로그래밍' 카테고리의 다른 글
HTTP 기본 (0) | 2022.02.05 |
---|---|
파이썬에서 리스트 중복 제거하기 (0) | 2022.02.03 |
스택과 힙 영역 (0) | 2022.01.15 |
파이썬 내가 헷갈리는 내용정리 (2) | 2022.01.12 |
파이썬 에러 정리 (0) | 2021.12.22 |