형상 관리 시스템 ( 버전 관리 시스템 )
- CVS : 구시대 시스템, 거의 안쓰임
- SVN : 현재 가장 많이 쓰임, 중앙 집중식 저장, 중앙서버에 연결(인터넷 필요)
- GIT
GIT
백업, 버전관리
서브버전에 비해 장점 : 분산 저장
GITHUB (버전 관리 시스템 + 원활한 팀프로젝트)
가장 기본적인 GIT 솔루션
Git
git-scm.com
국내 소스트리 / 해외 깃크라켄
- GIT scm을 기본으로 만들어진 솔루션들
새 스프링레거시 프로젝트 만들기
폴더 주소창에 cmd 입력하면 해당 디렉토리로 cmd창 열림
git init
숨겨진 .git 폴더에 백업
.git 폴더 삭제되면 git 명령어 사용 못함
다시 생성하고 git status
'깃 저장소' 임을 확인
git init 할 때 깃이 발견한 파일들, untracked
untracked files 인덱스에 없고 워킹트리에만 있는 파일들
git add 로 pom.xml을 인덱스로 올림
git add * 로 전체 업로드
아직 저장소에 저장된 것은 아님
git rm --cached *
인덱스의 파일들을 되돌리기
pom.xm과 src는 공유해야 하는 파일들
나머지는 이클립스에 종속된 설정 파일들
혼자하는 경우에는 모든 파일을 백업해도 괜찮음. 하지만,
팀프로젝트의 경우 로컬저장소의 내용이 다 깃허브로 업로드된다.
.gitignore 파일을 생성하고 추적하지 않을 파일들을 기록
파일명은 반드시 .gitignore
(숨긴파일이라 이클립스 경로에서는 안보임, 닫았다면 프로젝트 폴더의 숨긴파일을 메모장으로 열기)
파일 안에 들어갈 내용
https://www.toptal.com/developers/gitignore
gitignore.io
Create useful .gitignore files for your project
www.toptal.com
.classpath
.project
MANIFEST.MF
추가
커밋 할 때마다 스냅샷으로 저장
체크 아웃으로 되돌아감
깃에 올릴 폴더위치에서cmd 열기
깃으로 생성
상태 보기
-저장 순서
javaProject > ram > .git
working tree > index/stage > local Repositary
램에 저장된 working tree파일 : tracked files
램에 저장이 안된 working tree 파일 : Untracked files
Working tree 파일을 index에 하나 올리기
Working tree 파일을 index에 전체 올리기
Index에 있는 파일 제거
.classpath
.project
MANIFEST.MF
위 3개 추가
이 코드를 .gitignore파일에 저장
Index에 저장한 내용을 local repogitary 에 저장
Commit할때 누가 커밋을 한건지 등록. 이메일/닉네임
프로젝트 커밋
Commit을 한 내역
저장 후 수정 전
저장 후 수정 후
깃은 파일을 항상 추적하고 있다.
현재 깃에 저장되어있는 파일로 되돌아간다.
수정후 커밋하면 아래 2개의 로그 발생 :
HEAD : 현재 사용자가 어느 시점을 보고있는지 표시
헤드 위치 변경
체크아웃의 아이디는 최소 6글자 이상 쓰기
변경하면 restore까지 자동 실행
가장 최근에 commit한 위치로 헤드 위치 변경
마찬가지로 restore 자동실행
Branch
-masterBranch(mainbranch)
가장 처음 생성된 커밋
-checkout은 시점이 이전 시점을 복사하여 새로 만들어 보고있는 상황
Branch는 원본을 건드리지 않고 사본으로 테스트로 사용하다가 문제가 없다면 masterbranch와 합치는 용도로 사용한다
마스터에서 과거로 돌아간 것이 아니라 새로운 브랜치 생성
체크아웃은 헤드가 과거 스냅샷을 보는것?
1.
체크아웃으로 home.jsp를 변경되기 전의 jsp로 되돌림
-> 복사해서 바탕화면으로
checkout master 하면 다시 되돌아옴
-> 바탕화면 파일을 붙여넣기
새로 커밋
2. 다른 버전의 미래를 만들고 싶을 때
(새로운 기능 추가인데 바로 적용하기 불안한 경우)
-> 새로운 브랜치 만들기
-> 나중에 추가한 내용 합병
체크아웃은 브랜치를 만드는 과정
브렌치도 마스터처럼 이름이 있어야함
체크아웃에 의한 임시 이름
브렌치 삭제
정리
새로운 브렌치를 마스터에 병합하기
병합할 위치로 이동
'디지털 컨버전스 > Git' 카테고리의 다른 글
[GIT] GitHub 팀프로젝트 (0) | 2020.06.25 |
---|---|
[GIT] GitHub (0) | 2020.06.24 |