이 글은 인프런의 "알잘딱깔센 GitHub" 강의를 듣고 정리한 내용입니다.
[무료] 30분 요약 강좌 시즌4 : 알잘딱깔센 GitHub - 인프런 | 강의
알아서! 잘! 딱! 깔끔하고! 센스있게! 정리하는 GitHub 핵심 개념 책의 무료강의입니다. 해당 책과 Notion 링크도 무료로 다운로드 받을 수 있습니다. 비영리 프로젝트로 교재활용도 허락없이 가능합
www.inflearn.com
Git이란?
- Git은 소스코드 및 파일의 변경내역을 저장하는 분산 버전 관리 시스템이다.
- 리눅스 커널을 만든 리누스 토발즈에 의해 처음 만들어졌다.
- GitHub, Bitbucket, Gitlab 등의 Git 기반 버전 관리 호스팅 서비스들이 있다.
- <추천 서적>
- (무료, 공식) ProGit
- (유료) 팀 개발을 위한 Git, GitHub 시작하기
- <추천 강의>
- (무료) 지옥에서 온 깃
- (유료) 팀 개발을 위한 Git, GitHub 입문
- (유료, 심화) 제대로 파는 Git & GitHub - by 얄코
- 공식문서 : https://git-scm.com/docs
Git - Reference
Reference
git-scm.com
- help 명령어
git help -a : 상세히 명령어들 살펴보기
git 명령어 -h : 명령어 옵션 보기
git help 명령어 : web에서 해당 명령어 상세보기
- git에 기본 에디터 변경
git config --global core.editor "editor이름"
git config --global core.editor "code --wait" #VSC를 기본 에디터로 설정, wait을 해주어야 잠시 멈추었다가 VSC에 열린 code 수정 창을 닫으면 CLI가 지속 실행되는 프로세스로 진행된다.
- git에 기본 설정 변경
git config global -e #global 설정이다. 만질 때 유의해야한다.
- 명령어 연습 사이트
GitExplorer
GitExplorer: Find the right git commands you need without digging through the web
gitexplorer.com
Git 브랜치 배우기
Learn Git Branching
An interactive Git visualization tool to educate and challenge!
learngitbranching.js.org
Git 설치하기
Windows에서 설치하기
https://git-scm.com/downloads 에 접속한다.
Windows를 클릭하면 아래와 같은 페이지가 열리는데 Click here to download를 클릭한다.
다운 받은 파일을 실행한다.
버전 확인 및 초기 설정
운영체제가 Windows인 경우에 맞춰서 설명하겠다.
git을 실행할 로컬 폴더에서 우클릭을 하고 Git Bash Here를 클릭한다.
git --version 명령어를 입력하면 다운 받은 Git 버전을 확인할 수 있다.
아래의 명령어는 Git을 사용하기 위해 사용자 정보를 설정하는 명령어다. 설정을 제대로 했는지 확인하기 위해서 list 명령어를 사용할 수 있다.
$ git config --global user.name "Soomin Lim"
$ git config --global user.email augustth@gmail.com
$ git config --list
user.name은 Github 아이디, user.email은 Github에 가입한 이메일로 설정하면 된다.
버전과 이름, 이메일을 확인하는 명령어와 실행 결과는 다음과 같다.
저장소 만들기 : git init
mkdir: 작업할 디렉토리를 만드는 리눅스 명령어
cd: 디렉토리를 이동하는 리눅스 명령어
git init: 현재 디렉토리를 Git 저장소로 만들어 원하는 디렉토리를 기준으로 버전관리를 한다.
git init 을 입력하면 해당 폴더 기준으로 .git(로컬 저장소)가 생성된다. 로컬 저장소에는 버전 정보, 원격 저장소 주소가 저장된다.
이때, 한 폴더에는 하나의 .git(로컬 저장소)을 가져야 한다. 그렇지 않을 경우 충돌이 발생할 수 있다.
리눅스 명령어
ls : 안에 있는 폴더, 파일을 모두 볼 수 있다.
ls -al : 안에 있는 폴더, 파일을 좀 더 상세하게 볼 수 있다.
First commit
커밋은 로컬저장소에 변경 내역을 올리는 것이다.
추가하고 커밋하기(add, commit)
- touch README.md : 파일 생성 리눅스 명령어
- 수정하거나 생성한 파일을 로컬 리포지토리에 먼저 add를 해주어야 한다.
- 커밋을 하면 로컬 리포지토리에 변경 사항을 저장한다.
커밋은 기능 단위
ex) 버튼을 만들었다 / 로그인 기능 구현
git이 관리할 대상의 파일 등록하기(add)
변경한 파일 목록 중 스테이지에 올리기 원하는 파일만 선택한다. 파일 전체를 올리고 싶은 경우에는 git add 뒤에 .을 입력합니다.
stage는 커밋할 파일들이 모여있는 곳이라고 생각하면 된다.
$ git add README.md // 지정 파일 올리기
$ git add . // 파일 전체 올리기
Untracked - Unmodified - Modefied - Staged
|—————— git add ———————→|
| ←——— git commit ——| (각각 상태에 대한 상세 설명은 5.2 챕터에 있다.)
커밋하면 다시 unmodified 상태로 되돌아간다.
버전 만들기 (commit)
git commit -m "저장 메세지를 입력해주세요"
커밋 = 버전 생성
상태 확인하는 방법 (status , diff , log)
파일 상태 확인하기 (status)
파일의 상태에 따라 Untracked 와 Tracked 로 분류된다.
- Untracked(관리 대상이 아님) : 파일 생성 후 한번도 git add하지 않은 상태
- Tracked(관리 대상임) : git이 관리하는 파일임을 의미
- Unmodified : 최근의 커밋과 비교했을 때 바뀐 내용이 없는 상태
- Modified : 최근 커밋과 비교했을 때 바뀐 내용이 있는 상태
- Staged : 파일이 수정되고 나서 스테이지 공간에 올라와 있는 상태이며, git add 후의 상태
변경사항 확인하기 (diff)
최근 commit한 내용과 현재 폴더의 변경 사항을 확인할 수 있다.
README.md를 수정한 후 git diff로 변경사항을 확인한 결과는 다음과 같다.
커밋(commit) 히스토리 조회하기 (log)
git log 명령어를 입력하면, 최근 커밋한 히스토리를 확인할 수 있다. log 명령어에 대한 더 자세한 내용은 부록의 ‘GitHub log 옵션’ 에서 살펴볼 것이다.
로그가 길 경우 q를 누르시면 밖으로 빠져나온다. j위, k는 아래로 이동할 수 있다.
저장소에 무시할 파일 설정하는 방법
무시할 파일 (gitignore) 추가 하기
1) .gitignore 사용하기
push 전 .gitignore 파일에 버전 관리에서 제외할 파일을 추가한다.
비밀번호 같은 공개되지 말아야 하는 정보나 굳이 공유할 필요가 없는 코드들을 원격 리포지토리에 올라가지 않도록 한다.
# a comment - 이 줄은 무시한다.
# 확장자가 .a인 파일 무시
*.a
# 윗 줄에서 확장자가 .a인 파일은 무시하게 했지만 lib.a는 무시하지 않는다.
!lib.a
# 루트 디렉토리에 있는 TODO파일은 무시하고 subdir/TODO처럼 하위디렉토리에 있는 파일은 무시하지 않는다.
/TODO
# build/ 디렉토리에 있는 모든 파일은 무시한다.
build/
# `doc/notes.txt`같은 파일은 무시하고 doc/server/arch.txt같은 파일은 무시하지 않는다.
doc/*.txt
# `doc` 디렉토리 아래의 모든 .txt 파일을 무시한다.
doc/**/*.txt
2) .gitignore 자동 생성기 활용하기
gitignore.io 툴을 활용하여 .gitignore를 자동으로 생성할 수 있다.
gitignore.io
Create useful .gitignore files for your project
www.toptal.com
위 링크에 접속 후 본인의 프로젝트에서 사용하는 운영체제, 개발 환경, 기술 스택을 작성하고, 생성된 전체 내용을 복사하고 .gitignore 파일에 추가한다.
'Programming > Git 과 GitHub' 카테고리의 다른 글
알잘딱깔센 GitHub - Ch 5. Fork (0) | 2022.09.18 |
---|---|
알잘딱깔센 GitHub - Ch 4. Branch (0) | 2022.09.18 |
알잘딱깔센 GitHub - Ch 3. GitHub (0) | 2022.09.18 |
알잘딱깔센 GitHub - Ch 1. Git & GitHub 기본 개념 (0) | 2022.09.12 |
알잘딱깔센 GitHub - Ch 0. 간단한 실습 (0) | 2022.09.12 |