형상관리 프로그램
형상관리?
- Configuration Management
- 소프트웨어 버전 관리
- 소스의 변화를 끊임없이 관리
- 소스를 버전 별로 관리할 수 있어서 개발할 때 실수로 소스를 삭제하거나, 수정하기 이전으로 돌아가야되는 경우 유용
- 팀프로젝트에서 누가 무엇을 어떻게 수정했는지 알 수 있어서 코드를 병합하거나 수정된 소스를 추적할 수 있다.
Git
- 형상 관리 도구 ( Configuration Management Tool ) 중에 하나
- Branch의 비용이 매우 싸다.
- 로컬에서 진행되기 때문에 인터넷이 연결되어 있지 않아도 버전 관리가 가능하다.
- 팀원 각자가 병렬 개발하고 나서 합칠때
- 언제든지 버전을 매우 빠르게 되돌릴 수 있다.
SVN vs GIT
| SVN | GIT |
---|
Commit | Server | Local |
Branch | Deep Copy | Address Copy |
History | 중앙 서버에서 관리 | 여러 개발 PC에서 관리 |
GitHub
GitHub: Where the world builds software
대표적인 Git 웹 호스팅 시스템
Git으로 관리하던 로컬 파일을 저장해주는 웹 서비스이다.
GitHub을 통해 자신의 코드를 백업하고 다른 사람에게 코드를 보여줄 수 있다.
협업을 관리할 수 있다.
커멘드
설정
- git init
- 로컬 스토리지 초기화.
- .git 폴더가 만들어진다.
- git remote [REMOTE_NAME][Repogitory_URL]
- Repogitory_URL을 REMOTE_NAME에 저장한다.
추가
- git add [FILE]
- git commit -m “MSG”
- 등록한 FILE을 Message와 함께 등록을 확정하고 저장한다.
확인
- git status
- Untracked : git에서 관리하고 있지 않은 파일
- Tracked : git에서 관리하는 파일
- Staged : git add
- Committed : git commit
- Modified : commit된 파일이 수정되었을 때의 상태
- git log
- 현재까지 커밋된 상태를 시간 순서로 나열하여 보여줌
- —graph 옵션은 branch를 graph의 형태로 보여줌
취소
- git reset
- 커밋 취소하기
- 기록을 남기지 않고 특정 commit으로 되돌아감
- —hard option을 넣으면 reset한 commit은 영구히 삭제됨
- A → B (fail) ⇒ A
- git revert
- 커밋 내용 되돌리기
- 선택한 commit을 유지한 채로 새로운 commit을 만듬
- A → B (fail) ⇒ A → B (fail) → C
업로드
- git push [REMOTE_NAME][BRANCH_NAME]
- 로컬에 저장되어 있는 Git 내용들을 Repository에 업로드
다운로드
- git fetch [REMOTE_NAME][BRANCH_NAME]
- 이미 관리되고 있는 Repogitory에서 업데이트된 원격 저장소의 내용을 다운로드한다.
- 새로운 커밋을 생성하지만, 로컬 HEAD의 위치를 변경하지는 않는다.
- git pull [REMOTE_NAME][BRANCH_NAME]
- git clone [Repogitory_URL][DIR]
- Repogitory에 올라가 있는 코드를 다운로드
- 새로운 폴더에 Repogitory를 복사
Branch
- git branch [BRANCH_NAME]
- BRANCH_NAME이라는 branch 신규 생성
- git checkout [BRANCH_NAME]
- 생성되어있는 branch 중, BRANCH_NAME에 해당하는 branch로 이동
병합
- git merge [BRANCH_NAME]
- 현재 선택된 branch의 내용을 BRANCH_NAME에 병합
- A → B → C → D ( main )
- B → E → F ( feature )
- ⇒
- A → B → C → D → G ( main, feature )
- B → E → F → G
- git rebase [BRANCH_NAME]
- A → B → C → D ( main )
- B → E → F ( feature )
- ⇒
- A → B → C → D ( main ) → E → F ( feature )
참조
https://goddaehee.tistory.com/158
https://velog.io/@lzhxxn/Git-%EC%9D%B4%EB%9E%80
https://sabarada.tistory.com/71?category=792135
https://www.youtube.com/watch?v=NBb-FFB2mJk