버전 관리 도구 (VCS, Version Controll System)
작업한 파일들을 원하는 버전(시점)으로 이동할 수 있게 해준다
Cf ) Centralized version control : 서버에서 관리(서버 상태에 의존)
➔ 개선 Distributed version control : 모든 사용자가 버전을 가지고 있음
💡 git!
GitHub, bitbucket 같은 클라우드 이용
원격 저장소(cloud)
이미지 출처: https://ndb796.tistory.com/187
Working Directory -> untracked/ tracked 파일로 분리
Tracked된 파일들은 unmodified/modified로 분리되고, modified 인 파일들만 add 할 수 있다. (Staging Area로 올려주기)
Staging Area : 버전의 히스토리를 저장할 준비가 된 파일들을 옮겨두는 스테이지( 커밋 전 준비 단계)
Git Directory(Local Repository, Remote Repository) : commit 명령어로 저장, 버전을 만든다.(깃 디렉토리에 버전 히스토리를 가지고 있는 파일로 저장)
언제든지 checkout 으로 원하는 버전으로 돌아갈 수 있다.
git init 깃 초기화
git config —global user.name ”사용자이름”
git config —global user.email ”사용자 이메일”
git add 파일명.확장자
git add (전부 추가- 삭제된 파일, 숨김 파일(.git과 같이 .으로 시작하는 파일, ) 제외)
git add . (전부 추가)
git add .txt(txt 파일 전부 추가)
➕ ) git rm —cached (스테이지에서 내리기)
💡 unstage 단축어 생성 (더 직관적이고 간편하게!)
➔ git config --global alias.unstage 'reset HEAD --'
git status 깃 상태 확인
git diff 수정된 사항 확인
diff --git a/a.txt b/a.txt ➔ 수정된 상태가 있다
index 132e4bb..ed27c13 100644
--- a/a.txt ➔ 이전 상태
+++ b/a.txt ➔ 이후 상태
@@ -1,2 +1,3 @@ ➔ 이전 + 이후(세번째 줄에 수정사항 있다)
hello world!
-a
\ No newline at end of file
+a
+a 파일 수정
\ No newline at end of file
git commit : 보통 task 단위, 의미 있는 이름을 준다(동사 현재형 init, add, fix …)
git commit -m “커밋 메세지(add a.txt…)” ⭐️ 수정사항에 대한 커밋 메세지 꼭 적어주기!
git remote add origin 주소 (해당 주소에 원격저장소 지정)
git push origin main
💡 branch명이 main이 아닌 master라면?
git branch -m master main (master에서 main으로 branch name 바꾸기)