pull-request를 할 수 있는 것은 약 2가지 경우가 있다. 하나는 원격 저장소의 특정 프로젝트의 버전들을 직접 crud할 수 있는 권리를 갖고 있는 경우가 있다. 자신이 작업한 로컬 저장소의 브랜치를 원격 저장소의 브랜치와 병합을 할 때 이에 대한 다른 사람들의 피드백을 받고 싶을 때 pull-request를 이용할 수 있다. 또 하나는 첫번째와 같은 권리를 갖고 있지 않는 경우이다. 이때 자신은 해당 원격 저장소의 소스코드를 fork를 통해 해당 소스코드에 영향을 주지 않고 자신이 crud할 수 있는 복제된 소스코드를 갖게 된다. 그리고 자신이 crud한 버전들을 참고하여 자신의 소스코드를 pull해달라는 요청을 할 때 pull-request를 이용할 수 있다. 필자는 전자의 경우를 정리하여 ..
타 깃헙 유저의 특정 오픈소스를 또 다른 깃헙 유저의 원격 저장소에 복제하는 것을 의미한다. 한편 B유저의 원격 저장소의 특정 오픈소스에 새로운 버전이 push되었을 경우 내가 복제한 오픈소스 페이지에 다음과 같이 알림이 뜬다. This branch is 커밋 갯수 commits ahead of B의 원격저장소 명: B의 원격저장소 리모트 브랜치명 그리고 pull request 및 compare라는 버튼이 생긴다. pull request 내가 복제한 오픈소스의 버전과 원작자의 오픈소스의 버전을 동기화시키는 것을 의미한다. 이를 통해 내가 복제한 오픈소스의 버전도 원작자의 오픈소스의 버전과 동일해진다. compare 원작자의 오픈소스와 B유저가 복제한 오픈소스 간의 파일 내용 및 버전의 차이점을 비교해준다..
오픈소스가 얼마나 활성화되어 있는가 그리고 어떤 문제점이 있는지 등을 알 수 있는 기능이다. 해당 기능은 깃헙프로 혹은 해당 원격 저장소를 public으로 했을 경우 기능이 활성화된다. pulse 오픈소스에 대한 종합적인 정보를 조회할 수 있다. Code frequency 오픈소스에 대한 코드가 얼마나 활발하게 작성되고 있는지를 알 수 있는 기능이다. 초록색 선(Additions)은 코드를 추가한 것이다 빨간색 선(Deletions)은 코드를 제외한 것이다. Forks 해당 오픈소스를 복제한 유저들의 명단을 조회할 수 있다.
base rebase라는 개념을 알기 위해서는 우선 base의 개념을 짚고 넘어 가야 한다. base란 예를 들어 a브랜치에서 새로운 브랜치 B가 생성되었을 경우 B 브랜치가 생성되는 곳인 a브랜치의 최신 버전을 의미한다. 위처럼 b 브랜치가 생성되었을 때 b 브랜치의 base는 a3라는 것이다. rebase A 브랜치에서 생겨난 B브랜치가 있을 때 b브랜치의 base를 a브랜치의 최신 버전으로 바꾸는 것을 의미한다. B브랜치를 보면 a브랜치의 최신버전 위에 B브랜치의 최신버전이 놓여있는 것을 다음 이미지처럼 확인할 수 있다. 즉 B브랜치의 base였던 a3가 이제 a4로 바뀐 것이다. B브랜치를 rebase를 할 경우 베이스가 바뀔 브랜치인 B브랜치에 위치한 다음(B로 checkout한다.) git r..
git fetch 원격저장소의 최신 버전을 조회하여 이전 버전과 달라진 점을 조회만 하고 로컬 저장소의 버전으로 병합하지 않을 경우 사용된다. git fetch를 통해 원격 저장소의 최신 버전을 조회 후 merge를 할 때 충돌 해결 방법 내가 로컬 저장소에서 작업하는 중에 다른 협업자가 원격 저장소를 먼저 변경할 수 있는 경우가 있다. 이때 깃은 이후에 내 커밋을 원격 저장소에 push하는 것을 아래처럼 허용하지 않는다. To 원격 저장소 url ! [rejected] develop -> develop (fetch first) error: failed to push some refs to '원격 저장소 url' hint: Updates were rejected because the remote cont..