👩🏻💻
1. Git과 GitHub란?
▶ Git : 버전 관리 시스템.
(쉽게 말해, 원하는 시점마다 깃발을 꽂고(=버전을 만들고), 이들 간에 자유롭게 돌아다닐 수 있다. 내가 만든 버전 뿐만 아니라, 동료가 만든 버전으로 이동할 수 있고, 동료와 내 버전을 비교해서 최신본으로 코드를 업데이트를 할 수 있다. 간단히 말해, 우리가 작업하고 있는 파일들을 원하는 순간으로 다시 돌아갈 수 있게 만들어주는 도구! Git Bash로 CLI 방식(‘git 명령어 -옵션’)으로 쓸 수도 있고, SourceTree라는 GUI 방식으로 쓸 수도 있음. branch가 많을 땐 GUI 방식이 더 유용!)
♥ Git에서 이용 가능한 모든 명령어 확인 : https://git-scm.com/docs
♥ git 명령어 –h : 그 명령어에 대한 설명 확인 가능
▶ GitHub : Git으로 버전 관리한 코드를 올릴 수 있는 클라우드 서버.
2. Git 초기 설정
▶ git 전역 사용자 설정 : GitHub의 닉네임과 이메일 입력
git config --global user.name “닉네임”
git config --global user.email “이메일”
★ .gitconfig : Git에 관련된 모든 환경 설정이 저장되는 파일
★ git config --list : 모든 설정들 확인 가능
▶ OS마다 에디터에서 새로운 줄바꿈을 할 때 들어가는 문자열이 달라지는데, 이는 Git repository를 다양한 OS에서 쓰는 경우, git history 등을 보는 데에 문제가 생김. 그래서 그 문자열을 수정해서 처리하기 위한 속성인 core.autocrlf 설정
git config --global core.autocrlf true (Windows)
git config --global core.autocrlf input (Mac)
▶ git의 인증 방식이 ID/비번 로그인 방식에서 토큰 방식으로 바뀌어서, personal token을 생성해야 함. 그래야 push 등 git의 기능들 이용 가능
3. Git의 Workflow
▶ Local
★ Working Directory : 프로젝트 파일을 수정하는, 작업하는 공간
☆ Untracked : 새로 만들어진 파일이거나 기존에 존재하던 프로젝트에서 Git을 초기화해서 Git이 아무런 정보도 모르는 파일
☆ Tracked : Git이 이미 알고 있는, Git이 tracking 중인 파일
- Git이 Tracking하고 있는 파일들 중에서도 수정이 되었는지 유무에 따라.
☆ Unmodified : 이전 버전과 비교해서 수정 X -> Staging Area 못 감.
☆ Modified : 수정된 버전이므로 Staging Area 갈 수 있음.
★ Staging Area : 버전의 history에 저장할 준비가 되어있는, 커밋할 준비가 되어있는 파일을 옮겨놓는 공간.
★ .git directory : 버전의 history를 갖고 있는 공간. 우리의 작업들을 버전별로 관리하는 공간.
- .git directory에 저장된 버전들은 ‘checkout’을 이용해서 얼마든지 원하는 버전으로 다시 돌아갈 수 있음.
▶ Remote
★ .git directory
- ‘push’를 통해 local의 .git directory를 GitHub와 같은 서버에 업로드 가능
- ‘pull’을 통해 서버에서 로컬로 .git directory 다운로드 가능
4. GitHub에 코드를 올리는 과정
① git init : Git 초기화. 내 컴퓨터 프로젝트 폴더에 여기에서 Git을 쓸 거라고 명령하는 것임!
★ Git 초기화를 하면, .git이라는 숨겨진 폴더가 만들어짐. 이게 로컬 저장소!!
☆ 로컬 저장소에는 내가 만든 버전 정보, 원격 저장소 주소 등이 저장됨.
☆ 원격 저장소에서 내 컴퓨터로 코드를 받아오면, 로컬 저장소가 자동으로 생긴다!
※ 한 폴더에는 하나의 로컬 저장소만 유지해야 한다.
★ Git 초기화를 하면, 기본적으로 master 브랜치 생성됨
★ rm –rf .git : 더 이상 git 프로젝트가 아니게 됨.
② git add : 코딩 후, 내가 변경한 파일 중 올리길 원하는 것만 선택. 즉, 커밋으로 만들어지길 원하는 파일만 선택. 이 명령을 실행하면 파일이 Staging Area로 옮겨져 Git이 그 파일을 tracking
★ git add . : 현재 디렉토리에 있는 모든 파일들이 Staging Area로 옮겨짐.
★ git add * : git add .와 비슷하나, .gitignore와 충돌 가능. 그래서 git add . 사용 권장
(.gitignore : Tracking 하고 싶지 않은 파일들, git과 github에 올리고 싶지 않은 파일들의 모음)
★ git rm —cached <file> : Staging Area에서 Working Directory로 이동. 이 명령을 실행하면 파일들이 Untracked됨.
③ git commit: 선택한 파일들을 한 덩어리로 만들기! Staging Area의 변경사항을 .git repository에 옮겨준다.
★ 덩어리 = 커밋(commit) = 하나의 버전!
★ 각각의 커밋에는 스냅샷된 정보를 기반으로 해서 고유한 hashcode가 부과됨. 이걸 이용해서 버전 정보 참고 가능. 커밋에는 ID뿐만 아니라 message, author, date/time 정보도 포함됨.
★ 커밋은, 변경 사항의 모음(X) 하나의 최종 코드 모음(O)
★ 커밋은 ‘의미 있는 변동사항’을 묶어서 만든다. (버그 고치는 데에 5가지 파일 수정 -> 5가지를 묶어서 하나의 커밋으로!) 그러면 어디를 수정했는지 파악 쉬움.
★ 커밋할 땐, 기능별로 세분화하여 작은 단위로 나누어서, 의미있는 이름을 지정해서 커밋하는 것이 중요! 근데 너무 작아도 안되니까 의미있는 단위로 나누는 게 중요
★ 커밋 메시지에 맞게 해당하는 내용만 포함해서 커밋하는 게 중요!
★ -m 옵션을 주면 커밋 메시지 적을 수 있음.
★ -a 옵션을 주면 git add를 하지 않고도 Working Directory와 Staging Area에 있는 모든 파일들을 커밋할 수 있음.
★ 나중을 위해, 커밋 메시지 적는 것에 시간 조금이라도 들이기!
★ git log : 생성한 커밋 보기, 히스토리 확인
④ GitHub 사이트에서 프로젝트 저장소(repository) 만들기
⑤ git remote add : 내 컴퓨터 프로젝트 폴더에 GitHub 저장소 주소 알려주기
git remote add origin https://github.com/(아이디)/(repo이름).git
: origin 이라는 이름으로 이 주소에 원격 저장소를 만들겠다!라는 뜻
⑥ git push : 내 컴퓨터에 만들었던 덩어리 GitHub에 올리기
(+)
★ git status : git의 상태를, 즉 작업하고 있는 상태와 현재 파일들의 상태를 볼 수 있음.
★ git diff : 정확하게 어떤 파일의 내용이 수정되었는지 확인 가능.
아무런 옵션이 없으면 working directory에 있는 것만 비교. --staged나 --cached 옵션을 주면 Staging Area의 변경 내용 확인 가능.
★ git config —global alias.(앞으로 바꿀 명령어 이름) (바꾸고 싶은 명령) : 단축키
(ex) git config —global alias.st status
출처 : https://www.youtube.com/watch?v=Z9dvM7qgN9s
깃, 깃허브 제대로 배우기 (기본 마스터편, 실무에서 꿀리지 말자)
'개발냥발 > FE (FrontEnd)👩🏻💻' 카테고리의 다른 글
React 익히기❗ (0) | 2022.05.30 |
---|---|
Javascript 활용하기❗ (0) | 2022.05.25 |
Javascript 익히기❗ (0) | 2022.05.16 |
CSS 익히기❗ (0) | 2022.05.09 |
HTML 익히기❗ (0) | 2022.05.09 |