형상 관리 시스템 ( 버전 관리 시스템 )

- CVS : 구시대 시스템, 거의 안쓰임

- SVN : 현재 가장 많이 쓰임, 중앙 집중식 저장, 중앙서버에 연결(인터넷 필요)

- GIT

 

GIT

백업, 버전관리

 

서브버전에 비해 장점 : 분산 저장

 

GITHUB (버전 관리 시스템 + 원활한 팀프로젝트)


가장 기본적인 GIT 솔루션

https://git-scm.com/

 

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

+ Recent posts