HOME
home
Team
home

GitHub

1. GitHun이란?

Git 저장소 호스팅을 지원하는 웹 서비스

2. SourceTree란?

Git을 더 쉽게 활용하기 위한 GUI 툴
SourceTree 다운로드하기

3. 사용자 설정 및 세팅

Git 사용자 설정
로컬에서 사용할 Git 사용자 이메일과 이름을 설정
git config : Git에 관한 설정을 추가/변경/삭제하는 명령어
설정 파일 ‒ System 설정 파일 / Global 설정 파일 / 로컬 설정 파일
Global Git 사용자 설정
git config --global user.email “abc@abc.com”
git config --global user.name “Hong Gil-dong”
설정 확인
git config --list
Github 계정에 ssh key 등록하기
2.
Github 접속 후 오른쪽 상단 프로필 클릭 Setting → SSH and GPg Keys
3.
New SSH Key 클릭해 Title과 복사한 Key 입력 후 Add SSH Key 클릭

4. Git 초기화 및 삭제

Git 초기화
명령어 :
$ git init
Bash
복사
초기화 할 대상 폴더에서 명령어 (git init) 입력
Git 초기화 시 폴더 안에 숨김 폴더로 .git 폴더 생성 (Local Config 등으로 구성)
Git 삭제
단순히 .git 폴더를 삭제
mac의 경우 폴더를 삭제하는 명령어 입력 : rm ‒rf .git

5. .gitignore란?

사용자가 git에 등록(커밋)되지 않길 원하는 파일 또는 폴더들의 목록을 저장
.gitignore 에 등록된 파일(폴더) 들은 커밋 시 자동으로 제외됨
작성법
#은 주석의 역할
폴더 : /폴더명 (ex : /docs)
파일 : 파일명.확장자 (예: test.txt)
폴더 안 파일 : /폴더명/파일명.확장자 (예: /docs/test.txt)
폴더 안 특정 확장자 파일 전부 (예: /docs/*.text)
폴더 하위 모든 특정 확장자 파일 전부 (예: /docs/**/*.txt)
.gitignore 작성에 유용한 사이트

6. 기본 동작 원리

Working Directory : 작업하는 파일이 있는 디렉토리
Staging Area : Git에 등록할 (커밋) 파일들이 올라가는 영역
Local Repository : 로컬 Git 프로젝트의 메타데이터와 데이터 정보가 저장되는 영역
Remote Repository : Github 등의 서비스를 통한 온라인 상의 저장소

7. 기본 용어

origin : 원격 (Github 등의 온라인 저장소)에 있는 코드
head : 내가 지금 작업하고 있는 로컬 브랜치
add : Working Directory에서 Staging Area로 등록하다
commit : Staging Area에 등록된 파일을 Local Storage로 등록
Commit Message : commit 시 함께 작성해 저장하는 메시지 (메모)
push : Local Storage에서 변경된 파일들을 Remote Repository로 등록
fetch : Remote Repository의 변경된 파일들을 Local Repository로 전달
merge : Local Repository의 변경사항을 Working Directory로 전달
Branch : 독립적으로 어떤 작업을 따로 진행하기위한 가지
checkout : 사용할 다른 브랜치를 지정

8. Local Repository

파일이나 폴더를 저장하는 곳
Git 저장소는 파일 변경 이력 별로 구분되어 저장
내 PC에 파일이 저장되는 개인 전용 저장 공간
Local Repository 생성
원격 저장소 (Remote Repository)에서 복사해 Local Repository를 생성할수도 있다
1.
원하는 폴더 생성
2.
해당 폴더에서 git init 명령어 입력
3.
.git 폴더 생성 확인

9. Remote Repository

파일이 전용 서버(GitHub)에서 관리되며 여러 사람이 함께 공유
Remote Repository 생성 : GitHub를 통해서 생성한다.

10. Clone

로컬에서 작업하기 위해 Remote Repository를 복제해 내 PC에 Local Repository로 저장하는 것
소스트리를 이용해 Clone
1.
GitHub 원격 저장소에서 SSH 주소 복사
2.
URL에서 복제 선택
3.
복사한 SSH 주소 입력, 복사할 폴더 설정, 이름 설정
4.
Clone 완료

11. Add

변경된 파일 중 Repository에 올릴 파일들을 등록한다.

12. Commit

Add로 등록된 파일들을 한 덩어리로 만들고 메세지를 추가해 로컬저장소에 올린다.

13. Push

Commit이 되어 로컬 저장소에서 변경이 된 파일들을 원격 저장소로 전달한다.
my → push → github

14. Pull

원격 저장소의 변경사항을 로컬 저장소로 가져옴과 동시에 내 작업 소스에 합친다.
github → pull → my

15. Clone과 Pull의 차이점

pull과 clone 명령어 모두 원격 저장소의 내용을 로컬(내 컴퓨터)로 가져올때 사용하는 명령어입니다. 하지만 예시와 작동 방식에는 차이가 있어요.
git clone:
원격 저장소의 전체 복사본을 로컬에 새로 만듭니다. 새로운 디렉토리가 생성되며 그 안에 원격 저장소의 모든 파일과 폴더, 그리고 모든 커밋 히스토리가 포함됩니다. 이 명령은 저장소를 처음 시작할 때 사용되며, 그 이후에는 일반적으로 다시 사용되지 않습니다.
git pull:
이미 로컬에 존재하는 Git 저장소에 원격 저장소의 최신 변경사항을 가져오고 병합하는 작업을 합니다. 이 명령은 원격 저장소에 새로운 커밋이 추가되었을 때, 그 변경사항을 현재 로컬 저장소에 반영하기 위해 사용됩니다. 내부적으로 git pull은 git fetch와 git merge의 조합으로 동작합니다.
프로젝트의 코드를 처음으로 내 컴퓨터에 가져오려면 git clone을 사용하고, 이미 로컬에 프로젝트가 있고 그것을 최신 상태로 유지하려면 git pull을 사용합니다.

16. Fetch

원격 저장소의 소스를 로컬 저장소로 받아와 일치 시킨다. (내 작업 소스에는 반영되지 않는다.)

17. Merge

각각의 Branch에서 작업이 완료된 후 통함 Branch(Main)로 모아 합치는 작업
Fetch해온 로컬 저장소의 소스를 내 작업 소스에 합친다. (합칠 때 같은 부분의 소스가 다를 경우 충돌 발생)

18. Branch

‘나무가지’를 의미
기존에 만들어 놓은 버전(Main)에서 복사해 새로운 가지를 만들어 다른 방향으로 작업을 이어 나가는 것

19. Conflict

Branch를 Merge 할 때 발생할 수 있다.
같은 파일 같은 부분을 수정한 브랜치들을 Merge할 때 발생!

20. Fork

다른사람의 원격 저장소에서 어떤 부분을 수정하거나 추가 기능을 넣고 싶을때 해당 원격 저장소를 내 원격 저장소에 그대로 복제하는 것, 전문용어로 “포크뜬다”라고 한다!
1.
다른 사용자의 Github에 접속
2.
원하는 레포지토리에 Github 페이지 접속 후 Fork 버튼 클릭!

21. Pull Request

다른 사람에게 내 Branch를 Merge 해 달라고 요청
사례 1 : 한 원격 저장소에서 내 브랜치를 Merge 하기전 피드백을 요청!
사례 2 : Fork 뜬 저장소에서 원본 저장소에 개발 완료 후 원본 저장소에 Merge를 요청!
어떤 부분을 어떻게 수정했는지, 피드백 요청하는 부분은 정확히 어떤 파일의 어느 부분인지 기입한다.

22. ISSUES

이슈는 프로젝트의 작업, 개선사항, 버그를 추적하고 커뮤니케이션 할 수 있는 Github에서 제공하는 기능
대표사례
React 레파지토리의 ISSUES : https://github.com/facebook/react/issues

23. README

README.md 란?
“프로젝트를 설명하는 문서”
어떠한 목적으로 개발되었는지, 코드의 개요, 코드의 구조, 빌드 방법, 사용법 등을 마크다운으로 작성한다.
Markdwn이란?
일반 텍스트 형식의 문서의 양식을 편집하는 문법
누구나 쉽게 읽고 쓸 수 있으며 HTML로 변환이 가능하다.
특수기호와 문자를 이용한 매우 간단한 구조의 문법을 사용해 빠르게 작성하고 쉽게 읽을 수 있다.
Markdown 태그의 종류
Markdown 에디터

프로젝트 시작

1.
마일스톤 만들기 Repository > Pull request > Milestones > New milestone
2.
이슈 만들기(템플릿 우선 권장) Repository > Issue > New issue > Issue 선택해서 Get started
3.
프로젝트 만들기 Repositorie > Project > New Project
잡지식
1.
ISSUE와 Project Request에서 issue 참조 가능 → 보통은 checkBOX두고 사용을 함
2.
이슈템플릿, PR템플릿 우선 생성
3.
마일스톤(큰 기능 단위) → 프로젝트(스프린트 단위) → 이슈 생성(bugfix, feature)
4.
GitFlow