형상관리 프로그램 / 버전관리 프로그램(Version Control System)
Git/ Svn ==> 개발 환경에 적합환 환경 제공
Eclipse- > Egit
Eclipse에 Git을 붙여 사용
GitHub 결과물을 hub에 저장
컴퓨터 파일의 변경사항을 추적, 다수 사용자들의 파일 작업 조율에 사용
버전관리란?
파일 변화를 시간에 따라 기록 후 , 추후 특정 시점의 버전을 다시 꺼내올 수 있는 시스템
각 파일을 이전 상태로 되돌릴 수 있으며, 시간에 따른 수정 내용 비교 가능
프로젝트 조작자 추적 가능
Repository 생성하기
public 이 아니면 사용불가한 기능이 있으므로 웬만하면 public으로 할 것,,
Add .gitignore

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누름
그러면 해결가능....