깃허브를 처음 쓸 때, 모든 게 무섭고 겁나기만 했었다..
잘못 클릭했다가 날아가면 어쩌지(실제로 내가 혹은 팀원이나... 다른 팀에서도 날리는 경우가 있었다...), 이게 맞나 명령어들에 대해 대충 알고 사용하는 거라 항상 어려웠다🥹
이제 책이 필요없을 정도가 된 것 같아서, 중고로 정리해도 되겠다는 생각이 들었고 그전에 마지막으로 보고 필요한 부분들을 정리해두려고 한다!
2년 전 그 때와 비교해서 달라진 점
1. 이제 깃허브는 숨 쉬는 것만큼..ㅋㅋ 까진 아니더라도, 밥 먹는 것만큼 쉬운 일이 돼버렸다
2. 소스트리 대신 포크를 사용하게 됐다 (IDE가 아니라, 프로그램 내에서 충돌된 코드를 비교하고 선택할 수 있는데, 이게 진짜 좋다....)

1. 깃이 없는 세상
2. 버전, 버전 관리 이해하기
3. 깃, 소스트리, 깃허브 알아보기
4. 깃 설치하고 설정하기
5. 소스트리 설치하기
6. 깃허브 회원 가입하기
1장. 준비하기
- 깃(Git) : 버전 관리 시스템 (= 버전을 다루는 일종의 도구)
-> 깃의 사용법을 쉽고 오래 기억하는 가장 좋은 방법 : 무작정 깃 명령어를 외우기 x (명령어를 외우는 것 자체가 우리의 목적인 버전 관리는 아니기 때문)
- 명령어 : 단지 깃이라는 도구를 편하게 다루기 위한 수단일 뿐 (다양한 깃 명령어를 숙지하는 것도 분명 중요한 역량은 맞음)
-> 중요 : 버전에 대한 개념, 버전을 관리하는 다양한 상황을 올바르게 이해하는 것
--> 왜 버전을 관리해야 하는지,
버전은 어떤 과정을 통해 만들어지며,
만들어진 버전은 어떻게 관리할 것인지 등을 이해하는 것이 우선되어야만 깃 명령어를 적재적소에 활용 가능
1. 깃이 없는 세상 (= 버전을 관리하지 않을 경우 생길 수 있는 상황)
1) 변경 내역을 확인하기 어렵다
일반적인 저장 : 이전 저장 내용 -> 현재 내용으로 덮어씀 (= 항상 최신 상태만 가짐)
-> 현재 저장된 내용이 이전에 비해 무엇이 어떻게 달라졌는지 알기 어려움 (= 변경 내역을 추적하기 어려움)
cf. 매번 다른 이름으로 새롭게 저장하여 변경 내역 관리 : 저장 공간 낭비 + 쉽게 실수할 수 있음
2) 버전을 되돌리기 어렵다
이전의 두 방식(파일 단순히 덮어쓰기, 다른 이름으로 저장) : 과거 특정 시점으로 파일 되돌리기 쉽지 않음
(= 파일의 어느 부분이 삭제됐고, 어느 부분을 어떻게 되돌려야 할지 파악 어려움)
3) 협력하기 어렵다
이전의 두 방식 : 서로의 작업 내역 합칠 때 매우 어려움 (누가 어떤 파일에서 어떻게 코드를 수정했는지 파악하기 힘듦)
코드를 합치는 과정에서 서로 작업한 내용을 일일이 비교해야 한다면, 시간이 많이 걸림 + 실수도 매우 빈번하게 발생할 것
2. 버전과 버전 관리 이해하기
- 버전 : 유의미한 변화가 결과물로 나온 것, 유의미한 변화가 결과물로 저장된 것
cf. 버전 vs 패치 vs 업데이트
- 패치 : 시급한 오류 해결을 동반하거나 비교적 규모가 작은 버전이라는 의미가 강함
- 업데이트 : 패치의 의미와 더불어, 주기적으로 추가되는 버전, 새롭게 추가되는 기능을 담은 버전이라는 의미도 포괄 (ex. Windows 업데이트)
- 우리가 코드로 무언가를 만드는 일 = 유의미한 변화(버전)들을 쌓아 올리는 것.
벽돌이 모이고 모여 거대한 건물이 완성되듯, 버전이 모이고 모여 거대한 소프트웨어 결과물이 만들어지는 것
- 버전 관리 : 앞에서 언급한 문제를 발생시키지 않으면서 유의미한 변화를 쌓아 올리며 소프트웨어를 만들어 나가는 과정
- 누가, 어떻게 변경했는지 변경 내역들을 기억하며
- 필요하다면 특정 시점의 버전으로 되돌리며
- 여러 명이 협업하는 과정에서 코드를 쉽게 나누고 합치며
- 개발하는 것
3. 깃, 소스트리, 깃허브 알아보기
- 깃 : 버전 관리를 도와주는 소프트웨어, 버전 관리 시스템 (VCS, Version Control System), 명령어로 이용하는 소프트웨어
- 소스트리 : 깃을 더 직관적이고 편리하게 사용할 수 있는 프로그램, 사용자 입장에서 더 편리하게 사용하도록 만든 클라이언트 프로그램
- 깃허브 : 원격 저장소 호스팅 서비스 (= 깃으로 버전을 관리하는 프로젝트들이 모여 있는 웹사이트)
-> 깃으로 버전 관리한 프로젝트를 깃허브에 업로드하고, 깃허브에 업로드한 프로젝트에 새로운 버전을 추가하는 것
cf. 빗버킷 : 아틀라시안의 원격 저장소 호스팅 서비스
4. 깃 설치하고 설정하기
(생략)
5. 소스트리 설치하기
- SSH(Secure SHell) : SSH 키를 이용해 안전하게 원격 컴퓨터와 연결하는 통신 방법
- 로컬 저장소 : 내 컴퓨터 안에 있는 저장소 <-> 원격 저장소 : 웹상에(원격에) 존재하는 저장소)
- .git 숨김 폴더가 있는 공간 = 버전이 관리되는 공간
참고 : macOS에서 깃 / 소스트리 설치하기
6. 깃허브 회원 가입하기
(생략)
'공부 > Git, GitHub' 카테고리의 다른 글
| [모두의 깃&깃허브]3장. 버전 가지고 놀기 (0) | 2024.05.30 |
|---|---|
| [모두의 깃&깃허브]2장. 깃으로 버전 관리 시작하기 (0) | 2024.05.29 |
| [github]특정 커밋까지 새로운 브랜치 만들기 (0) | 2024.04.06 |
| [github]특정 커밋만 머지하기 (cherry-pick) (1) | 2024.01.31 |
| [git]non-monotonic index error (0) | 2023.11.19 |