SCM/Git Source Tree (13) 썸네일형 리스트형 13. 협업하기 Repository 복제 1. 소스를 내려받기 위해 GitHub 의 내 Repository 에서 아래 주소를 복사한다. 나의 경우에는 아래와 같은 주소를 가진다. https://github.com/sam38k0/WebProject.git 2. SourceTree 로 돌아와서 저장소 복제를 채워주면 된다. Push & Pull 원격 저장소를 제공하는 계정에서 추가하는 계정 쪽으로 협업(Collaborators) 추가를 해 줘야 한다. 이 작업을 해주지 않으면 협업에 참여하게 되는 사람이 pull은 할 수 있으나 push가 되지 않는다. 프로젝트에 들어가서 아래와 같이 추가할 수 있다. https://help.github.com/articles/adding-or-inviting-members-to-a-tea.. 12. 원격 저장소 만들고 소스 올리기 원격 저장소 만들기 Github 에 원격 저장소를 만들어보자. 1. https://github.com/ 에 회원가입한다. 2. New repository 를 클릭한다. 2. Repository name 입력을 하고 Public 을 지정후 Create repository 버튼을 클릭한다. 3. 접근을 위한 정보를 미리 저장한다. SSH 와 HTTPS 를 각각 클릭하여 이 정보를 잘 저장해 놓는다. 나의 경우는 아래와 같다. https://github.com/sam38k0/SamGit.git git@github.com:sam38k0/SamGit.git 4. SourceTree 에서 원격 저장소 추가를 누른다. 5. 추가를 클릭한다. 6. 아까 잘 적어놓은 URL 경로를 넣고 디폴트 원격을 선택한다. 7. 확.. 11. 원격 저장소 사이트 1. GitHub 오픈소스에 한해서 무료 private일 경우 유료. https://github.com/ 2. GitLab https://about.gitlab.com/ 저장소 제한없음. Unlimited Private Collaborators. 약간 불안정한 기억?!, 내 서버에서도 설치할 수 있는 기능 제공. 3. Yobi Nhn 제작. 위와 비슷한 기능 http://yobi.io/ 10. 브랜치 충돌 예방하기 브랜치를 너무 많이 방치하지 않는다. 가능하다면 몇 주나 몇 달 단위로 계속해서 마스터 코드의 내용을 새로운 브랜치에 병합해 줘야 한다. ( 새로운 브랜치를 마스터 브랜치로 병합 하라는게 아니고 마스터 브랜치의 내용을 새로운 브랜치로 병합하라는 것. ) 09. 브랜치 충돌 해결하기 Conflict 위에서는 소스가 서로 다른 부분만 고쳤기 때문에 아름답게 병합이 끝났지만 대부분의 경우 같은 부분을 서로 고치기 때문에 충돌이 일어난다. 이번에는 이런 충돌 사항을 해결하는 방법을 배워보자. 1. 브랜치 하나 만들기 나는 NewBranch2 라는 브랜치를 하나 더 생성했다. 그리고 코드는 아래와 같이 수정해서 커밋했다. 2. 마스터 브랜치에도 같은 라인에 커밋하기 마스터 브랜치를 활성화하고 같은 라인에 새로운 내용을 입력하고 커밋해보자. 3. 병합을 시도하기 아래와 같이 병합을 시도해보자. 4. 메시지 확인 충돌이 났다고 알려준다. 5. 파일 확인 파일을 열어보니 아래와 같이 파일이 변경되었다. 이 부분은 프로그램이 풀 수 없으므로 사용자에게 수정하라고 아래와 같이 코드를 박아준다. 필요.. 08. 브랜치 합치기 Merge 두개의 프로젝트가 각각 성공했다고 가정해서 새로운 브랜치를 마스터 브랜치로 합쳐보자. 1. 마스터 브랜치를 활성화 한다. 마스터 브랜치를 더블클릭하여 체크 버튼이 오도록 만든다. 2. 현재 브랜치로 NewBranch 병합을 클릭한다. 3. 병합 확정을 한다. 다이얼로그가 뜨면 OK 를 클릭한다. 4. 결과확인 병합 전 마스터 브랜치 내용 병합 전 새로운 브랜치 내용 병합 후 최종 브랜치 내용 07. 브랜치 만들기 불확실성을 가지는 기능을 추가하려고 할 때 메인 코드를 기준으로 계속 커밋하다가 그 기능을 구현하지 못했다고 하면 되돌아가려고 엄청난 노고를 들이거나 불가능할 수 있다. 즉 프로젝트에 실험적인 일이 추가되었을 때 메인 브랜치를 기준으로 ( Git 에서는 master 라고 이름이 지어졌다. ) 새로운 브랜치를 뜨고 이를 바탕으로 모험이 필요한? 프로젝트를 시작한다. ( 즉 현재 기준으로 프로젝트 통째로 복사해서 따로 일을 하는 것 ) 그리고 만약에 성공한다면 이를 메인 브랜치에 병합한다. 병합하기는 정말 어렵다. Git 은 이런 경우에 대한 해답을 제시한다고 한다. 이런 작업을 위한 초석인 브랜치 만들기에 대해 배워보자. 브랜치 만들기 1. Original 코드 확인 Original 커밋은 아래와 같이 짠.. 06. 코드 리버트하기 Revert 리버트는 복귀의 의미를 가진다. 즉 기존 커밋한 내용을 삭제하지 않으면서 이전 버전으로 되돌아가고 싶을 때 사용한다. 어떤 특정 버전까지 리버트 하기 위해서는 하나하나 뒤로 되돌려야 한다. "여러 버전을 건너뛰어 Revert 하게 되면 충돌이 발생 하게 된다." "순차적으로 Revert 해야 안전하다." 사실 충돌이 나면 풀기가 어렵다. 코드를 하나 하나 따라가 보면서 고쳐야 하는데 이게 여러명이 작업하고 마구 코드를 올린 상황이면 정말 암담하다. 남의 코드는 용도를 모르니깐.. 사용에 주의를 기울이자. 1. 순차적으로 커밋 되돌리기 목표가 커멘트가 "1" 인 내용까지 커밋 되돌리기를 하는 것이라고 가정하자. 먼저 맨 처음 체크인 한 내용을 "커밋 되돌리기" 로 되돌린다. 이렇게 되면 그 아.. 이전 1 2 다음