본문 바로가기

카테고리 없음

Github

형상관리 프로그램 / 버전관리 프로그램(Version Control System)

Git/ Svn ==> 개발 환경에 적합환 환경 제공

Eclipse- > Egit

Eclipse에 Git을 붙여 사용

 

GitHub 결과물을 hub에 저장

 

 

컴퓨터 파일의 변경사항을 추적, 다수 사용자들의 파일 작업 조율에 사용

 

버전관리란?

파일 변화를 시간에 따라 기록 후 , 추후 특정 시점의 버전을 다시 꺼내올 수 있는 시스템

각 파일을 이전 상태로 되돌릴 수 있으며, 시간에 따른 수정 내용 비교 가능

프로젝트 조작자 추적 가능

 

Repository 생성하기

 

public 이 아니면 사용불가한 기능이 있으므로 웬만하면 public으로 할 것,,

 

Add .gitignore

Choose which files not to track from a list of templates.

 

공유가 되어선 안되는 파일들 (.class 파일 등)

 

공유 가능한 것은 소스코드 또는 static resource
공유를 막고 싶다면 gititgnore 템플릿에 ignore파일 작성
 
나의 local pc와 github 연동방법(다양함)

code -> open with github desktop

\

C드라이브에 workspance 만들고 git repository와 연결시 반드시 workspace가 비어있어야 함

desktop에서 create a tutorial repository 

내가만든 repository가 보임

commit: 목록에 있는 작업을 local pc에서 확정하겠따

로컬저정소에서 확정을 하고나면 Push Origin에

push라고 뜸

 

 

그것을 클릭하고 나면

뜬다

 

다시 메모장 파일을 수정하고

changes를 가보면 새로운게 떠있음

수정메모를 입력하고 commit  그리고 push

metadata는 절대절대 공유가 되지 않아야 한다

공유하지 않는 방법: 

 

1. 여기서 ignore하는 방법

2. workspace내에 gitignore파일 설정을 변경하는 방법

 

 

폴더의 경우에는 폴더의 양식대로 써야함

.metadata +'

 

web-inf 하단 파일, .class 파일 등등.. 모두 ignore해야하는데

하나하나 추가될 떄마다 ignore파일을 수정하기는 힘들다

ctrl+A 하여 전체선택 후

 

gitignore파일 내용 전체 삭제후 복붙

ignore되어야할 파일은 여기다 추가하면됨

github에는 실체가 존재하는 내용만 올릴 수 있음 (예:파일)

package의 실체는 폴더, 그런데 폴더는 존재하지 않는다 

폴더는 0byte임

저장장치에는 folder공간이 생기지 않으며, 사람이 알아보기 쉽게 하기 위해 존재함

(구분자)

 

미리 전체 프로젝트의 구조를 잡아놓아야 모든 팀원이 공유받을 수 있음

 

만약 클래스를 각자 만들고 싶다면?

- 그래도 패키지경로는 서로 다르면 큰일나니까 패키지경로는 잡아놓아야함

폴더만 만들면 메모리에 올릴 수 없으니 폴더 아래에 아무파일이나 만들고 내용 아무거나 적은 후 commit-push하면 됨

 

 

commit한 내용을 되돌리고싶을 떄

revert(취소)누른 후 다시 push

revert 한 것을 다시 revert한 후 push하면 살아남..!..헐..

 

나의 repository에 팀원을 초대해야함

 

초대방법: 

settings탭

-------------여기까지가 틀 잡는사람의 역할------------

초대메일을 받고 

 

 

open with local desktop

 

 

다른 사람과 둥시수정이 발생하여 conflict발생

 

 

 fetch origin 누르기

pull origin을 누르면 다른사람이 작업한 내용을 받아올 수 있음

 

같은 파일 내 동시작업이 이루어질 경우

먼저 commit을 한 사람의 코드는 정상반영 가능,

늦게 반영한 사람의 코드는 commit 후 push 시 충돌발생

 

충돌발생시 해결법

내가만든거 쓰던가 남이만든거 쓰던가 둘다날리던가 에러난소스코드를 섞어서 해결하던가

충돌시 이렇게,,, 보임,,

 

1. fetch버튼 클릭

2. 먼저 다른 사람이 수정한 내용을 pull 하여 받음

3. 그리고 fetch origin누름

그러면 해결가능....