형상관리는 백업개념이 아니다. 협업툴이 아니다.
형상을 관리하는게 목적이다
깃이랑 깃허브는 다르다
깃은 로컬레퍼지토리
내 로컬에서 형상관리하기위한게 깃임.
깃허브는 원격지에서 올려놓고 쓰겠다... (remote repository)
왜구분? 리모트레퍼지토리(깃허브)를 다이렉트로ㅜ 쓸수는없음
커밋은 로컬레퍼지토리(깃)ㅇ에 하고
이걸 원격지에서 쓸수있도록 로컬의 레퍼지토리를 리모트쪽으로 push함
싱크로나이즈 (동기화)
리모트레퍼지토리는 또다른 로컬레퍼지토리가 있다면 (장소를 옮길결우)거기로 싱크로나이즈 할수있따.
즉 1번로컬과 2번로컬의 동기화가 가능 같은 형상을 쓸수가잇따 이게 깃허브의 목적임
깃은 분산적 형상관리가 목적임
깃허브는 깃의 기능을 지원하지않는다.
깃허브에 있는 내용은 히스토리-백이 되지않는다.
깃을 먼저해보고 리모트쪽으로 (허브쪽으로)올리고 다시 허브에있는거가져오는거해볼거임
로컬 깃 레퍼지토리만들기
깃 공간만들기
이걸 절대 이클립스의 워크스페이스로 잡으면 안됨
깃의 형상관리부분과 이클립스 워크스페이스 두 사이의 간섭이생김
포맷안한상태가 bare임
branch, head 가 형성되어야 어디서 몇번째고 히스토리가 얼마고... 라는걸 알수있음
bare상태로 하게되면 추후에 위의것들을 다시 정의해줘야함
체크안하면 자동적으로 만들ㄹ어짐
SVN서버처럼 깃 서버라는 말은 없음
로컬의 깃과 리모트만 존재함
리모트레퍼지토리라는 단어를 쓰지 서버라는 말은 쓰지않는다.
깃은 어떻게 커밋하나??
sVN 과의 가장 큰 차이는 svn은 히스토리방식임. 파일별로언제커밋되었고내용이뭐고ㄴ만 남아있음
깃은 스크린샷방식임
svn은 요소하나하나 커밋된다면
깃은 스크린샷 찍듯이 전체가 찍힘
머가다르냐? 히스토리백을 하게되면.....
그 사이에 만든게 있따면 그거는 사라진다.
그래서 깃은 브랜치라는 개념을 만든다. 브랜치(가지)
무슨 요소하나가 맘에안들어 그럼 브랜치를 열어서 집을 다른 형태로 수정 ( switch)
ㄱ그럼 그 요소는 이전버전으로도 기억되어있고 새로운버전으로도 기억되어있는거임
두번째 요소가 더 맘에들면, 그 전요소의 커밋된거에 merge하면 그 요소만 새 버전으로 바뀌어서 머지된다.
깃은 샷을 먼저찍고(add index) 커밋해야함
단축키지정위해 프리퍼런스
변경점이없을떄
c s 2 , cs 3 하면
왜 .class는 형상관리 안됨? .java만 형상관리하면 컴파일하면 .class 나오니까
HEAD : 해당ㅅ히스토리를 읽어주는 녀석
오리진 헤드가 원래있었던 헤드를 뜻함
리셋취소하려면 여기로 들어가서 오리진헤드 하고,
다시
이걸 마스터로 옮겨보겠음
마스터에서 핫픽스꺼 ㅈ가져오자
그래서 이걸 해결할 툴이있음
충돌날 파일 우클릭
컨 s 하고 인덱스찍고 커밋한다.
스위치-핫픽스로 돌려서
stso ㅎ헬로우스프링 추가하고 커밋하고
다시 마스터로 바꿔서
머지 핫픽스하면
마스터는 브랜치를 뻗은 후에는 손대지말고, 머지를 통해서만 뻗어나가게해야지, 브랜치따로 마스터 따로 수정해서 머지하려면 다 충돌난다.
마스터는 먼갈 작성하는브랜치가 아닉오 땡겨만 오는 브랜치로 사용해야함
ㅍ
ㅍㅍ
핫픽스 분기된 상태에서는
핫픽스 투를 만드려면 헤더만 가면 됨... (soft)
브랜치 달라지는 부분에 가서 리셋 해듶소프트하고 뉴 브랜치해서 (hotfix2) 만들어서 커밋하고 브랜치2로 가서 뭐 새로추가하고 커밋하면 저렇게 그 브랜치 에서 갈라질수있따.
해드를 소프트로 옮기는거의 의미는 시점을 거기로 옮기는거에 있따.
지금하는걸 유지해놓고, 과거시점으로 언제든지 도아갈수있음
딱 그시점에 헤드돌리고 브랜치까면된다! 형상관리가 목적이다! 백업이 아니고!!
이거를 마스터에 머지하면 충돌남
마스터의것을 핫픽스2에 머지해야함
지금도 충돌남.. 저 html추가전에 땡겼어야함
형상관리시 제외되는 파일형식들 지정할수잇따.
www.toptal.com/developers/gitignore
gitignore.io
Create useful .gitignore files for your project
www.toptal.com
로컬 > 리모트로
리모트에있는거 > 로컬로
두가지할거임
GitHub: Where the world builds software
GitHub is where over 56 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat...
github.com
close하고
브라우저 가보면
여기저기 누르다가 커밋수 누르면
이런식으로 뭐가 추가되고 (초록박스) 삭제되고 (빨간색)인지 보인다.
커밋에문제가있는것같다?
마일스톤을 만들수도있음 (이슈 3개씩묶는것)
세개 다 closed 하면 이렇게ㅐ
근데 생각해보니까 다시 이슈 열고싶으면
3closed 가서 다시 오픈하면 됨
\\\
ㅇ ㅣ 화살표는 리모트쪽의 마스터와비교해서 한단계더갓따는얘기임
푸시하면 없어짐
지금 로컬마스터랑 리모트마스터만 동기화하고잇는거임
java 지우고
커밋앤푸쉬
리모트에있는마스터 한번 풀떙겼으니 커밋시점이 같으므로 충돌이안날것이다.
무조건 떙긴다음에 (pull) 한다.
pull로 항상 시점맞추는거잊지말기