git 개념
버전 관리?
파일의 변화를 시간에 따라 기록했다가 필요한 경우 특정 시점의 버전을 다시 꺼내올 수 있는 시스템
- 중앙집중식 버전 관리(CVCS)
- 중앙 서버에 문제가 생기면 협업 불가
- 분산 버전 관리 시스템(DVCS)
- 로컬 저장소가 원격 저장소의 파일, 히스토리 모두 복제 -> 백업 유리
git 기본
Repository: local - remote
- 원격 저장소 연결
- git clone <원격서버주소> :원격 저장소 받아오기
- git remote add origin 원격저장소주소
- upstream 저장소 설정
- git remote add upstream 저장소 : 포크한 저장소의 원본 저장소 연결
- git remote set-url **upstream** <오픈소스 저장소 주소>
- 원격 저장소 확인
- git remote -v : 원격 저장소 위치 확인
- 원격 저장소 연결 삭제
- git remote remove origin : 원격 저장소 연결 끊기
- 원격 저장소 수정
- git remote set-url **origin** <변경할 원격서버 주소> : 저장소 변경
- git remote update → 원격 브랜치 갱신된다 → 수정 후 commit → 코맨트 남기고 → 확인 → 머지
- 메인 브랜치를 master가 아닌 main으로 설정하기
- git branch -M main
Update
- upstream 저장소의 변경사항 받아오기
- git fetch upstream
- git merge upstream/master
- git push origin master : 로컬에서 원본 저장소의 내용으로 업데이트하고 이를 원격 저장소에 반영
Commit
- 커밋 상태 조회
- git log --oneline
- git log --branches --not --remotes : ✅push하지 않은 커밋 확인✅
- 원격에 이미 올라간 커밋을 바꾸고 싶다면
- 커밋 취소하기: git reset --soft HEAD^
- 커밋 되돌리기: git revert HEAD^ -> 커밋을 되돌린 것이 기록됨
- HEAD^: 바로 이전 커밋
- HEAD~n: n번째 전 커밋 (HEAD~1==HEAD^)
- 커밋 덮어쓰기: git commit --amend
Branch
- 생성git branch 브랜치이름
- 이동
🧳 checkout: .git 에서 파일을 불러온다는 개념으로 생각- git checkout 브랜치
- git checkout -b 브랜치 : 브랜치 생성과 이동
- 확인 git branch
- 삭제
- git branch -D 브랜치
- git push origin --delete 원격브랜치 : 원격 브랜치 삭제
- main 브랜치로 이동 후
- 브랜치 합치기
- 머지
- git merge 합칠브랜치
Git Flow
A successful Git branching model
번역
gitflow 구현 저장소
우아한 형제들의 적용 사례