소스코드 형상관리
저장소
로컬 저장소
원격 저장소
버전 관리
- 중앙 집중식 버전 관리
- 분산 버전 관리
diff vs snapshot
- 깃은 snapshot
git의 상태 : committed, modified, staged
working directory의 파일
- tracked file : unmodified(=committed), modified(커밋버전 != working directory) "M" , staged "A"
- untracked file "??"
기본
sudo apt install git
git init
git clone
git config
git add *
git status
git status -s (git status --short)
git diff : working directory와 staged area의 차이 비교
git commit
git commit -m "message"
git commit -a -m "message" : staging area 생략
-m : vim에서 별도의 메세지를 작성할 필요없이 인라인 형식으로 바로 커밋 메세지 작성.
-a : 별도의 add명령어를 사용하지 않고 수정된 파일에 대해 add, commit을 한번에 수행함. (단, 한번도 add되지 않은 파일은 add를 따로 작업 해줘야함.)
git rm LICENSE.txt : tracked file 삭제 - 로컬 디렉토리와 git 저장소에서 모두 삭제
git rm --cached README.md : tracked file 삭제 - 로컬 디렉토리에서는 삭제하지 않지만 git에서는 삭제
git mv README.md README (=mv README.md README, git rm README.md, git add README) : 파일 이름 변경
git log : 커밋 히스토리 시간순으로
git commit --amend : 마지막 커밋 덮어쓰기
git restore --staged 파일명 : unstaged로 변경
리모트 저장소
git remote 현재 프로젝트에 등록된 리모트 저장소를 확인
git remote -v 단축이름과 URL을 함께
git clone 주소 [다른 이름]
git branch main
git push origin main
git push <리모트 저장소 이름> <브랜치 이름>`
git remote add [단축이름] [url] : remote 저장소 추가
git fetch <단축이름> : remote 저장소의 파일 가져옴
git remote show <리모트 저장소 이름> : 리모트 저장소 살펴보기
git remote rename 뭐를 뭐로
git remote rm 뭐를
git remote : 확인