
Git
분산형 버전 관리 시스템(Version Control System) 의 한 종류이며, 빠른 수행 속도에 중점을 둔다.
ㄴ 버전 관리 시스템은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다.
예를 들어, 과제를 할 때 최종본1.txt, 최종본2.txt, 진짜진짜 최종본3.txt등 처음 최종본1.txt 저장하고 그 후 수정을 통해 최종본2.txt를 저장하고 진짜진짜 최종본3.txt로 수정하는듯이 파일들을 저장, 수정, 복사, 백업등을 버전관리라 부른다. 변경 사항을 저장할 땐 변경점을 꼭 코멘트 해야한다.

버전 관리를 하면 날짜별로 어떤 파일이 어떻게 바뀌었는지 확인이 가능하다. 이렇게 특정 시점에 생성된 백업 복사본을 스냅샷이라 하는데, 스냅샷을 만들어 주는 작업을 commit이라고 부른다. commit이라는 기능을 통해서 변경 사항에 대한 스냅샷이 만들어지고 이전의 기록들에 대한 추적이 가능하다면 버전 관리뿐만 아니라 회사에서 협업을 할 때도 굉장히 유용하다.

어떤 부분이 어떻게 바뀌었는지 한눈에 확인할 수 있으며, 꼭 코드가 아니더라도 텍스트 파일도 이렇게 변경 사항을 하이라이트로 확인할 수 있다. Git에서는 이렇게 소스 코드가 변경된 이력을 쉽게 확인할 수 있고, 특정 시점에 저장된 버전과 비교하거나 특정 시점으로 되돌아갈 수도 있다.
Git hub
버전 관리와 협업을 위한 코드 웹 호스팅 플랫폼으로, 언제, 어디서나 협업 프로젝트를 쉽게 진행할 수 있도록 돕는 역할을 한다.
즉, 개발자들의 SNS라고 볼 수 있다.

GitHub를 사용해야하는 이유
작업 도중 컴퓨터가 고장이 나거나 실수로 인해 파일을 전부 삭제한다면 큰일이 날 것이다. 이러한 경우를 대비해 다른 컴퓨터에 백업본을 저장한다면 언제든지 복구가 가능하다. 다른 컴퓨터의 역할을 해주는 서비스가 GitHub이다. GitHub는 내 컴퓨터에서 Git으로 관리하는 프로젝트를 올려둘 수 있는 사이트이다.
오픈소스
소스 코드가 공개된 소프트웨어를 말하며 누구나 자유롭게 해당 기능을 추가하고 개선할 수 있으며, 이 작업을 기여하다(contribute)라고 합니다.
GitHub 용어
- Commit (커밋) : Git에 파일을 추가하거나 변경 내용을 저장하는 작업
- Push (푸시) : Github에 파일을 추가하거나 변경 내용을 저장하는 작업
- Pull (풀): Github에서 파일을 다운로드하는 작업
- Repository (레포지토리) : 저장소, 모든 히스토리와 버전을 확인 가능
- Local (로컬) : 인터넷 없이 접속되는 저장소, 보통 내 컴퓨터에 저장되는 곳
- Remote (리모트) : 인터넷을 통해 접속해야 하는 것, Github라 생각해도 무방
- Branch (브랜치) : 가지 또는 분기점, 현재 파일 바꾸는 게 아니라 가지를 쳐서 그 가지를 바꿀 수 있다.
- Merge (머지) : 위에서 말한 다른 Branch(가지)를 현재 Branch(가지)로 가져와 합치는 작업
- Head (헤드) : 현재 작업 중인 Branch(가지)

내가 작업하는 소스코드가 버전 관리를 받을려면 git의 관리 아래에 두어야 하며, Git으로 관리 받는 폴더를 Git REpository라고 한다.
Git repository 는 Remote Repository와 Local Repository 두 종류의 저장소를 제공한다.
- Remote Repository
원격 온라인 서버 상의 저장소, 여러 사람이 함께 공유 가능하다. 작업한 코드를 공유 할려면 여기에 업로드 해야한다.
- Local Repository
내 컴퓨터의 저장소, 내 개인 전용 저장소이다. 작업을 할 땐 여기서 한다.
다른 사람이 올린 코드를 Remote Repository에서 내 Local Repository로 가지고 올 수도 있다.
1. Fork


깃허브에서 다른 사람의 Repository를 자신의 계정의 Repository로 복사하는것.
2. Clone

Remote Repository에서 local Repository로 코드를 옮기는 것.
3. Add - Commit - Push

소드코드 변경이 끝난 후 Local repository에서 다시 Remote Repository로 올려주는 과정,
Add > Commit > Push 순으로 이루어진다.
4. Pull Request

Remote Repository로 업로드 한 소스코드를 Fork한 Remote Repository로 반영해달라 요청 하는 것이다.
5. Merge

Pull Request를 통해 본인이 작업한 코드를 타인의 Remote Repository에 반영해 달라고 요청하면, 원래 Repository의 운영자가 Merge를 할 수 있다. 그럼 당신의 코드가 반영이 되고, 협업이 성공한것이다.
6. PULL

Push와 반대로 Remote Repository에서 변경사항을 Local Repository를 보내는 것을 PULL이라한다.
'TIL' 카테고리의 다른 글
| 13일차 HTTP (0) | 2022.05.03 |
|---|---|
| 12일차 Git과 버전 관리 시스템 (0) | 2022.05.02 |
| 10일차 웹 서비스 개발 기초 (0) | 2022.04.28 |
| 9일차 Postman (0) | 2022.04.27 |
| 9일차 HTTP메소드 및 상태 코드 (0) | 2022.04.27 |