
-pull의 인자들 pull은 배웠다 싶이 fetch + merge를 합쳐 놓은 것이기때문에 $ git pull origin bar^:bugFix $ git fetch origin bar^:bugFix $ git merge bugFix 위 명령어는 같은 일을 수행합니다. pull의 인자를 자세히 보면 $ git pull origin : fetch후, detination인자의 위치로 merge가 실행됩니다. -문제 전과 같이 연습하는 문제기 때문에 간단히 해결됩니다. $ git pull origin bar:foo - fetch후 foo에 merge $ git pull origin master:side - fetch후 side에 merge "만약 여기까지 다 푸셨다면 멋진 문구가 여러분을 반겨줍니다!"

- :에서 소스를 삭제하면? git push : $ git push origin :foo 라고 가정한다면 이 명령어는 원격 저장소의 foo 브랜치를 삭제합니다! git fetch : $ git fetch origin :bar 이 명령어는 로컬 저장소에 bar라는 새 브랜치를 만듭니다! -문제 이번 문제는 그저 소스를 삭제하면 어떤 일이 일어나는지를 보여주는 문제입니다. 순서대로 $ git push origin :foo $ git fetch origin :bar 을 입력하면 해결됩니다!

-fetch의 인자들 push에서 인자를 변경한 것 처럼, fetch도 인자를 변경할 수 있습니다. 하지만 push는 업로드, fetch는 다운로드니까 조금 다르긴 합니다. $ git fetch origin foo 이러면 git은 원격 저장소의 foo 브랜치로 가서, 현재 로컬 저장소에 없는 커밋들을 가져와 로컬의 o/foo 브랜치 아래에 추가합니다. "그렇다면, 이전 강의처럼 source와 destination를 모두 직접 지정해주면 어떻게될까요? $ git fetch origin source:destination (*이 명령어 또한 목적지가 없으면 자동으로 생성합니다) 이 명령어로 말이죠" 여러분이 커밋을 직접 로컬 브랜치로 fetch할 열의가 있다면, 네 콜론 참조스펙으로 지정해서 할 수 있습니다...

-Push의 인자들. git push에 다음 명령어를 통해 선택적으로 인자를 사용할 수 있습니다. git push 만약 "git push origin master"라고 입력하면 "내 저장소에 있는 "master"라는 이름의 브랜치로 가서 모든 커밋들을 수집합니다, 그다음 "origin"의 "master"브랜치로 가서 이 브랜치에 부족한 커밋들을 채워 넣고 완료 되면 알려줍니다." 라는 명령을 하게 되는 겁니다. -문제 -해결 $ git push origin foo $ git push origin master 간단히 push할 인자를 foo와 master로 한번씩 해주시면 됩니다.

-원격 추적 간단히, master와 o/master사이의 연결은 브랜치의 "원격 추적" 속성을 통해 간단하게 설명됩니다. master브랜치는 o/master브랜치를 추적하도록 설정되어 있습니다. (-- 이것은 master가 merge와 push할 내재된 목적지가 생겼다는 뜻 입니다.) 여러분은 어떻게 이 속성을 지정해주는 그 어떤 명령어 없이 master 브랜치에 설정되있는지 궁금할것 입니다. 사실, 여러분이 git으로 저장소를 clone할때 이 속성이 여러분을 위해 자동으로 설정 됩니다. clone을 진행하면서 git은 원격 저장소에있는 모든 브랜치에 대해 로컬에 원격 브랜치를 생성합니다(o/master같은것들 말이죠). 그 후 원격 저장소에서 현재 활성화 된 브랜치를 추적하는 로컬 브랜치를 생성합니다..

-문제 merge를 사용하여 원격 작업과 로컬작업 합치기. -해결 이번 문제는 조금 복잡해 보이지만 로컬 저장소에서 merge를 끝마치고 push로 원격 저장소로 업로드만 해주면 됩니다. 1. master로 이동. $ git checkout master master로 작업해야 하기 때문에 master로 checkout해줍니다. 2. pull로 C8커밋 가져오기. $ git pull 3. master와 side1을 merge. $ git merge side1 master와 side2을 merge. $ git merge side2 5. master와 side3을 merge. $ git merge side3 6. push로 로컬 저장소 파일 원격 저장소로 업로드. $ git push

-문제 -해결 1. C8 커밋 생성. $ git fetch C8커밋이 원격 저장소에 있기때문에 fetch로 로컬 저장소로 이동해 줍니다. 2. o/master와 side1를 rebase해주기. $ git rebase o/master side1 3. side1과 side2를 rebase해주기. $ git rebase side1 side2 4. side2와 side3를 rebase해주기. $ git rebase side2 side3 5. side2와 master를 rebase해주기. $ git rebase side3 master 6. push하기. $ git push

-Git push란? Git pull이 원격 저장소에서 가져오는 것과 다르게 git push는 원격 저장소로 업로드 시키는 것입니다. $ git push push를 하게되면 원격 저장소로 업로드 후, 업로드 한 새 커밋들을 합치고 갱신합니다. *노트 -- git push를 매개변수 없이 사용하는 디폴트 행동은 push.default라 불리는 git의 설정에 따라 결정 됩니다. 이 설정의 기본값은 여러분이 사용하는 git 버전에 따라 다릅니다만, 우리 강의에서는 upstream을 값으로 사용합니다. 대단한것은 아니지만, 여러분이 프로젝트를 push하기전에 한번쯤 확인해볼 가치가 있습니다. -문제 push는 로컬 저장소에서 원격 저장소로 업로드 하는 것이기 때문에, 커밋을 먼저 2번하여 C3커밋을 만든 후,..