공부/Git, GitHub

[모두의 깃&깃허브]1장. 준비하기

개발의 피 2024. 5. 28. 13:40

깃허브를 처음 쓸 때, 모든 게 무섭고 겁나기만 했었다..

잘못 클릭했다가 날아가면 어쩌지(실제로 내가 혹은 팀원이나... 다른 팀에서도 날리는 경우가 있었다...), 이게 맞나 명령어들에 대해 대충 알고 사용하는 거라 항상 어려웠다🥹

이제 책이 필요없을 정도가 된 것 같아서, 중고로 정리해도 되겠다는 생각이 들었고 그전에 마지막으로 보고 필요한 부분들을 정리해두려고 한다! 

 

2년 전 그 때와 비교해서 달라진 점

1. 이제 깃허브는 숨 쉬는 것만큼..ㅋㅋ 까진 아니더라도,  밥 먹는 것만큼 쉬운 일이 돼버렸다 

2. 소스트리 대신 포크를 사용하게 됐다 (IDE가 아니라, 프로그램 내에서 충돌된 코드를 비교하고 선택할 수 있는데, 이게 진짜 좋다....) 

https://git-fork.com/

 


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에서 깃 / 소스트리 설치하기 

https://github.com/kangtegong/git-for-everyone/blob/main/macOS%EC%97%90%EC%84%9C%20%EA%B9%83%20%EC%86%8C%EC%8A%A4%ED%8A%B8%EB%A6%AC%20%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0.pdf

 

 

6. 깃허브 회원 가입하기 

(생략)