본문 바로가기

회사관련 모든글

회사GIT(lecture 메모 포함) + 기본사항 메모 +깃 rebase, revert, reset의 차이점에 대하여

https://hyunipad.tistory.com/70

위글의 내용을 정리하면 이렇다. commit, push는 Git 창에서 하고

 

fetch, pull은 JavaEE 창에서 한다.

local에서 checkout한다는 의미 = 특정버전을 가져온다는 뜻

이전에는 회사에서 중앙집중식 버전관리(CVCS Centralized Version Control System)도구인 Subversion을 사용하였다. 이것의 단점은 서버가 다운되거나 문제가 생기면 작업 및 복구 불가하다는 것

지금 사용하고 있는 깃은 대표적인 분산 버전관리 (DVCS, Distributed Version Control System)시스템 도구중 하나이다 데이터 자체를 서버에서 통째로 가져온다. 

(내 컴터에 있는 버전중 하나에 접속하는 것을 checkout이라하고 서버에 있는 것을 가져오는 것은 clone이라고 함)

이클립스에서의 꺽쇠(>)표시= 수정된게 있다는 의미


[ ] =branch이름 (사진첨부)

[ ] =branch 이름을 의미



이 많은 하나하나가 모두 각각의 커밋임. 밑으로 갈수록 과거의 커밋이고 맨위가 최신 커밋임. 


working directory에 있지만 관리되지 않는것 = stage로 옮겨서 버전 관리 시작함


head=working directory위치임. 
녹색=로컬에 있는 브랜치를 말함

회색=서버에 있는 브랜치 (=remote라고 말함)


push

revert해도 기록에 남음. 삭제는 interactive rebase해야함. 

(내정리. merge시에는 commit 이력이 남지만 rebase는 변경 이력도 남지 않아 commit history가 깔끔해진다는 장점이 있다.  정확히는 rebase를 이용하면 skip, edit, squash등의 옵션들을 이용할 수 있어 커밋 기록을 삭제할 수 있는 것임)

HEAD란?

HEAD는 현재 브랜치를 가리키는 포인터이며, 브랜치는 브랜치에 담긴 커밋 중 가장 마지막 커밋을 가리킨다. 지금의 HEAD가 가리키는 커밋은 바로 다음 커밋의 부모가 된다. 브랜치란 커밋을 가리키는 포인터이다. 즉 브랜치, HEAD모두 포인터인 것이다. 

Revert는 한국어로 '복귀', '되돌아간다'는 의미이다. Git에서 Revert 명령어는 이전의 커밋을 선택하여 새 커밋으로 추가하는 명령어이다. revert는 commit 이력에 그대로 남는다)



stach=임시 저장소임

include untracked files? 버전관리 되어있지 않는 파일을 포함할 것인가

interactive rebase의 선택가능한 옵션들은 다음과 같고 그 의미는 아래와 같다.

 pick = 커밋을 유지, skip = 해당 커밋을 삭제함(이렇게 기존의 커밋을 삭제하는 것이다), Squash=여러커밋을 하나로 합침, edit = 커밋메시지를 수정할 수 있음 

 

깃의 rebase, revert, reset의 차이점에 대하여 (결과부터 말하면 revert는 되돌린다는 그 행위 자체에 대한 커밋을 또 남기는 것이고 rebase는 그 안에 여러 기능, 예를들어 squash, pick, skip, edit 등의 기능이 있는 것이다. 그리고 그 행위에 대한 커밋을 남기지 않는다)

https://wooogy-egg.tistory.com/85

RBMTools=러너(runner)를 실행하는 프로그램. (데몬으로 실행시킴. 데몬=무한으로 계속실행시키는 프로그램 RBMToolsDaemon) 
RBMTools =java application으로 되어 있음. 자동으로 실행되어야함. 그래서 메인 함수가 있는 것임 

이클립스 폴더 목록에서 javaService
자바어플을 윈도우에 등록하려면 java service에 등록해야함


자바를 실행하는 방법은 2가지이다.

1. 메인함수를 콜 2. 다른 자바 소스파일에서 해당파일에 있는 메인함수를 호출함. (RBMTool함수안에 메인함수가 있고 그안에 각각의 Runner를 실행할 execute()함수를 실행함. 수많은 러너가 있다. 러너는 프로그램이다. 각업체에서는 고유의 러너들을 작동시킨다(골라서)

 

 

-------깃 관련 기본 사항---------

출처: https://sseozytank.tistory.com/41

pull과 fetch와의 차이점.

 

Git 과 Github의 차이점

1)Git 

- 로컬에서 관리되는 버전 관리 시스템 (시간에 따라 파일의 변경사항을 추적하고 기록) 

- 로컬 저장소를 사용하기 때문에, 다른 사람이 나의 작업 내용을 알 수 없음 

 

 

2)Github

- 개인의 로컬 서버 밖에서 Git 버전 프로젝트를 공유하고 기록하는 온라인 데이터 베이스 

- 저장소를 깃허브에서 제공해주는 클라우드 서버를 이용

- 클라우드 서비스기 때문에 다른 사람들과 협업 시 소스코드 공유가 가능하다.