티스토리 뷰

65차 비개발자를 위한 Git 과 Github Page 블로그 만들기 - 안수빈(@subinium)

영상 출처 : https://www.youtube.com/watch?v=YQat_D1C-ps 


[목차]

Git 기초

1. Git이 필요한 이유

2. Git의 기본 Idea

3. Easy Git

 

Github 실습

1. Git과 Sourcetree

2. 예시와 함께하는 기초 명령어

3. 알아두면 좋은 심화 명령어

 

Github Page 활용하기

1. Markdown 문법

2. Github Page 구조 및 실습

3. 앞으로 관리 방법


Git 기초

1. Git이 필요한 이유

Git이 무엇이고, 왜 써야할까?

초보 개발자에게 Git이란?

 

끊임없는 수정본의 문제점

1. 변경 사항 파악 어려움 : 무엇을 바꿨는가?

2. 되돌리기 어려움 : CMD / CTRL + Z 의 한계, 삭제 파일 추적 불가

3. 용량 차지 : N개가 있다면 N배

4. 협업이 어려움 : 누가 언제 무엇을 건드렸나

 

우리가 원하는 것은 시간여행처럼 원하는 시점으로 움직이기만 하고 싶다!

 

VCS(Version Control System, 버전 관리 시스템)

파일의 변경 사항을 저장하고, 원하는 시점의 버전을 다시 꺼내올 수 있는 시스템

 

Snapshot   특정 시점에서 파일의 상태(현재 상태의 모든 정보)

Delta   파일의 이전 상태와 비교한 변경사항

 

CVCS(중앙집중식 버전 관리 시스템) → 과거

DVCS(분산 버전 관리 시스템) → 현재


2. Git의 기본 Idea

1991 ~ 2002

리눅스(Linux) 의 단순한 버전 관리

2002 ~ 2005

BITKEEPER - 리눅스(Linux) 커널에서 DVSC인 BitKeeper 사용

2005 ~

Git - 빠른 속도, 단순한 구조, 비선형적인 개발, 완벽한 분산, 리눅스(Linux) 커널 같은 대형 프로젝트에도 유용할 것

 

Subversion(SVN)

CVCS(중앙집중식 버전 관리 시스템) 중 대표적인 시스템

파일의 모든 변경 사항을 저장하는 방법

 

Git

DVCS(분산 버전 관리 시스템), 저장소의 파일 시스템 전체를 스냅샷으로 취급

변경하지 않은 파일은 새로 저장하지 않고, 링크만 저장


3. Easy Git

1단계 Git 사용 선언

2단계 파일을 추가/수정/삭제

3단계 원하는 변경 사항 선택

4단계 상태 업데이트

 

 

1단계 Git 사용 선언

선언과 저장소(Initialization & Repository)

흔히 Repo(레포)라고 부름

사용자가 변경한 모든 내용을 추적하는 공간(하나의 디렉토리로 볼 수 있음)

현재 상태, 변경 시점, 변경한 사용자, 설명 텍스트 등 저장

 

Git은 이제 Local에서 가능한 상태

모든 것은 Local에서 저장 및 버전 관리 기능(서버 죽어도 상관없음)

원격 서버에는 나중에 올릴 수 있음

즉, Wi-Fi 없는 환경에서도 작업 가능

 

Git은 데이터를 추가만 할 수 있다.

파일 삭제 == 삭제 기록 추가 => -1 == +(-1)

데이터베이스에 저장한 순간부터는 삭제까지 추적

 

하지만 Git은 파일을 추적하지 않는다.

Git은 신기하게 파일을 추적 X

대신 파일의 내용 단위로 추적하고, 각 문자와 줄을 추적

빈 디렉토리는 추적 X

 

2단계 파일을 추가/수정/삭제

어떤 파일이 상테에 따라 계속 바뀌고, 딱히 저장할 필요가 없다면?

저장하지 말고, 굳이 관리하고 싶지 않은 파일은 따로 처리(Untracked / Tracked)

Git이 추적하는 파일은 총 3가지 상태로 구분

- Unmodified : 이전에 버전과 비교하여 수정된 부분이 없는 상태

- Modified : 이전에 버전과 비교하여 수정된 부분이 있는 상태

- Staged : 저장(커밋)을 위해 준비된 상태(스테이징, Staging)

 

3단계 원하는 변경 사항 선택

스테이징(Staging)을 하면 커밋(Commit)하고 싶은 파일 선택

커밋(Commit)을 하면 새로운 버전으로 업로드

스테이정(Staging)은 업로드를 2번 하는 과정으로 보이는데 왜 굳이 한 번 더 과정을 거치는걸까

- 커밋 전, 스테이징이 필요한 이유(1) 여러 작업 중, 일부분만 커밋해야할 때

 

4단계 상태 업데이트

내용을 주소로 활용(Content-addressable Key-Value Storage)

상태를 찾기 위해서는 Key가 필요, 버전의 주소

내용(파일 구조)등을 Hash 값으로 만들고 상태를 나타냄

여기서 SHA1 해시 값을 사용하여 40자리로 표현


기본적인 홀로 Git 사용법은 끝났습니다

이것만 하더라도 버전 관리는 가능합니다.

 

Git은 꼭 코드를 알아야하나요? No!

sourcetree와 같은 GUI 이용

https://www.sourcetreeapp.com/ 

 

Sourcetree | Free Git GUI for Mac and Windows

A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac.

www.sourcetreeapp.com

하지만 코드도 조금 알면 편하다.

Terminal, git bash 등

 

상황에 따라 코드 or GUI  사용

 


실습 내용(영상 참고)

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함