Fork의 개념 원본저장소를 fork(복제)한다는 것은 독립된 원격저장소를 만든다는 의미 fork 한 시점 이후의 원본 저장소의 히스토리는 알 수 없다. 원격저장소에서 원본저장소의 히스토리를 함께 보고 싶다면? → 리모트 추가(Add remote) SourceTree Fork 및 리모트 추가 방법 1. Fork 원하는 저장소로 가서 Fork 버튼 클릭 저장소 이름과 여러 가지 설정들이 있는데 Copy the main branch only를 선택하면main 브랜치만 fork해온다. Create fork를 누르면 아래와 같이 개인 저장소로 가져와진다. 이렇게 하고 code를 누르면 주소가 뜨는데 이걸 복사해서 Source Tree로 돌아간다. SourceTree에서 원격 → URL에서 복제 클릭 아까 복사해..
Pull Request(풀 리퀘스트)로 보는 차이 Pull Request? 원본 저장소에 병합을 요청하는 것(권한이 없어도 가능) base:master : 병합된 커밋이 들어갈 브랜치를 정하는 선택박스 compare:JP-test : 병합의 대상, 즉 base 브랜치에 반영시키고 싶은 브랜치 Able to merge : 두 브랜치가 충돌 없이 병합될 수 있다는 뜻 만약 충돌이 나면 빨간색으로 Conflict 표시 풀 리퀘스트 제목 : 동료 개발자가 한눈에 이해하기 쉬운 제목을 적어야 함 풀 리퀘스트 내용 : 동료 개발자가 코드를 이해하는데 도움이 되는 설명 스크린숏 첨부 및 테스트 방법 서술 Reviewers: 저장소에 협력자가 여러 명이라면 해당 요청을 받는 사람을 지정 가능 보통 기능 연관자 지정 A..
병합(merge) : 두 버전의 합집합을 구하는 것 병합 커밋(Merge Commit) 새로운 상태가 나오므로 새로운 커밋이 생긴다. 빨리 감기(Fast-forward) 합친 결과물이 뒤에 있는 커밋과 같다. → 새로 상태를 만들어줄 필요가 없음 충돌(Conflict) 같은 구간에 다른 커밋이 발생했을 경우 충돌 발생 두 병합의 차이 및 충돌 발생 초기 상태가 아래와 같이 존재할 때 이를 이용하여 두 병합의 차이를 알아보자. 1. Master 브랜치와 A 브랜치 합치기 새로운 커밋이 생성되지 않고 A 브랜치와 master 브랜치가 동시에 커밋 5를 가리킴 → 빨리 감기(Fast-forward) 둘 다 커밋 5를 가리키고 있으면 A 브랜치를 삭제해도 무방함. (이후 삭제했다고 가정) 2. master 브랜..
브랜치 : 특정 기준에서 줄기를 나누어 작업할 수 있는 기능 브랜치 이동 원리 master / 포인터(Pointer) / HEAD 꼬리표 이해 master : Git에서 제공하는 기본적인 브랜치 첫 번째 커밋을 하면 자동으로 ‘master’라는 이름의 브랜치가 커밋을 가리킴(Point) Pointer : 물리적인 길이 아닌 그저 가리키는 것 새로 커밋을 할 때마다 브랜치의 포인터가 최신 커밋을 가리킴 물리적인 것이 아니기 때문에 커밋을 가리키는 것만으로도 분기를 만들 수 있음 프로젝트를 통째로 복사할 필요 없음 → Git은 가볍고 빠름 HEAD : 브랜치 혹은 커밋을 가리키는 특수한 포인터 해당 브랜치 상태로 이동할 수 있음 → 타임머신 같은 역할
add : 하나의 버전을 만들기 위해 변경사항을 선택하는 과정 commit : 선택한 변경사항을 하나로 묶어 버전으로 만든 것 변경사항만 부분적으로 저장하는 것이 아닌 변경된 파일 전체를 저장 → Snapshot Snapshot vs Delta Delta : 바뀐 내용만을 저장 SVN(SubVersion)에서 사용하던 방식 Snapshot : 바뀐 내용뿐만 아니라 전체 코드 저장 Git이 대중화된 이유 → 더 빠르기 때문 why? 버전을 보여줄 때의 차이점 때문 Delta 방식 파일이 만들어졌던 맨 처음까지 거슬러 올라가며 바뀐 점을 모두 반영하는 계산을 해야 함 SnapShot 방식 이미 전체 파일이 저장되어 있기 때문에 앞 커밋과 비교하는 연산 한 번만 하면 됨 Git으로 관리하는 파일의 4가지 상태..
1. Repository name : 저장소 이름(필수) 작업할 프로그램의 이름을 입력 이름에 따라 URL이 결정됨 2. Description : 저장소 간단 설명 저장소 이름에 대한 간단 설명 3. Public / Private : 공개 / 비공개 설정(필수) Public : 저장소를 공개해서 누구나 코드를 볼 수 있게 함 Private : 등록된 사람만 볼 수 있도록 함. 비공개 저장소는 3인 이하일 때만 무료 4. Initialize with a README : README로 첫 내용 설정 빈 저장소가 아닌 README.md 파일이 담김 저장소가 생성됨 [README.md 저장소든 폴더든 코드로 공간을 만들 때에 그 설명을 기록하는 곳 보통 저장소에 대한 설명, 설치 방법, 저장소에 기여한 사람 등..