본문 바로가기
Java/Git

git) 버전 생성 및 관리

by 박채니 2022. 6. 14.

안녕하세요, 코린이의 코딩 학습기 채니 입니다.

 

개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.


소스 코드 관리하기

 

프로젝트를 하나 생성해주었습니다.

 

프로젝트 별로 버전관리를 하기 위해서 해당 프로젝트에서 우클릭 - Team - Share Project

이 상태에서 Create Repository를 클릭해준 후 Finish 해줍니다.

그럼 .git Repository가 생성 되었고, 프로젝트 옆에는 [프로젝트명 master]가 생겼을 겁니다.

([프로젝트명 master]는 local repository, master는 branch - git에서 작업하는 단위)

 

.git 파일 생성된 것 확인하기

프로젝트 우클릭 - Properties - Resource - Location 옆에 아이콘 클릭

혹시 보이지 않는다면 숨기항목 표시하기 체크!

 

Git Staging에서는 변경을 감지하여 변경된 사항을 표시해줍니다.

하지만, .class나 .project, .settings와 같이 변경사항을 감지하지 않아도 되는 것들을 .gitignore파일에 작성해줍니다.

Navigator - .gitignore

.settings/와 .project를 추가하니 Unstaged Changes에서 사라진 것을 확인할 수 있습니다.

이처럼 버전 관리에 필요없는, 변경을 감지하지 않아도 되는 것들을 이 곳에 작성해줍니다.

https://www.toptal.com/developers/gitignore/

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

프로젝트 별 .gitignore를 제공해주는 사이트에서 키워드를 입력하여 파일을 하나 생성해주었습니다.

(Java, Eclipse, Windows, MacOS)

생성된 파일을 복사하여 .gitignore에 붙여넣어줍니다.

 


버전 생성하기

Unstaged Changes에 있는 내용을 Staged Changes로 옮기기

Commit Message 작성 후 Author와 Committer에 github 아이디/이메일이 올바른 지 확인해주고, Commit!

 


클래스 생성하기

HelloGit 클래스를 생성하기 Unstaged Changes에 변경사항으로 감지하여 나타내주었습니다.

Git은 디렉토리를 관리하는 것이 아닌 파일을 관리하는 것이기 때문에 패키지만 생성한다고 하면 이를 변경사항이라고 인지하지 않고, 클래스 즉, 파일을 생성 및 수정해야 변경사항이라고 감지하여 표시해줍니다.

또한, Java에서 클래스를 생성하면 .class 파일도 같이 생성되는데 (bin디렉토리 하위), .gitignore에서 bin 디렉토리는 변경사항으로 감지하지 않도록 하였으므로 이를 표시해주지 않았습니다.

 

생성한 클래스에 대한 버전을 생성해주었습니다.

 

지금까지 버전이 두개가 쌓였는데, 이를 history에서 확인할 수 있습니다.

Window - show View - Other - history

아래에서 위로 발전해나가는 것이고,

master branch, HEAD(current working branch) : 현재 작업 중인 branch를 나타내줍니다.

 

이번에는 HelloGit 클래스에서 main 메소드를 추가해보겠습니다.

마찬가지로 변경사항으로 감지 되어 Unstaged Changes에 표시가 되었고, 이를 버전으로 생성해주었습니다.

히스토리에도 잘 표시가 되는 것을 확인할 수 있습니다.

 

클래스를 3개 정도 추가하여 버전 3개를 더 생성해보았습니다.


Revert

 

이번에는 B클래스 추가 작업 내용을 revert(취소)해보겠습니다.

그렇다면 B클래스 추가 작업 내용을 취소한 버전을 하나 더 생성해줄 것입니다.

취소할 작업 내용에서 우클릭 - Revert Commit

그렇다면 위와 같이 B클래스 추가를 취소한 버전을 하나 더 생성해준 것을 확인할 수 있습니다. (쌓아올림!)

B클래스 추가 작업 내용이 취소되었으므로 생성했던 B클래스가 없어진 것을 확인할 수 있습니다.


Reset (추천하지않음!)

 

Revert처럼 작업 내용을 취소해주는 역할을 하지만, 작업 취소 버전을 쌓아올리는 것이 아닌 정말 시간을 되돌려서 해당 작업 내용을 reset해줍니다.

이러한 작업 내용을 가지고 있다가, B클래스 추가 했을 때로 되돌아가보겠습니다.

즉, B클래스 추가 이후 'C클래스 추가'와 'Revert B클래스 추가!' 작업 내용을 삭제 해버리는 겁니다.

 

Hard 옵션

B클래스 추가(a6c6331)에서 우클릭 - reset - Hard 클릭

이후 작업 내용이 모두 사라진 것을 확인할 수 있습니다.

 

A클래스 추가를 이번에는 Hard옵션이 아닌 Mixed로 reset 해보겠습니다.

A클래스 추가(797adf9)에서 우클릭 - reset - Mixed클릭

이번에도 A클래스 추가 이전 내용을 삭제하였지만, 이를 Git Staging에 올려준 것을 확인할 수 있습니다.

작업한 내용까지 삭제 해주진 않았습니다.

만일 작업 내용을 삭제하면 안되는 거였다면, 여기서 다시 버전을 쌓아올려주면 됩니다. (다시 추가함!)

'Java > Git' 카테고리의 다른 글

git) push와 fetch(pull)  (0) 2022.06.14
git) branch  (0) 2022.06.14
git) 이클립스 환경설정  (0) 2022.06.14