
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..

리모트 브랜치란? 원격 저장소에 있는 브랜치를 의미한다. 로컬 저장소의 브랜치에 있는 커밋들을 원격 저장소에 push를 하면 원격 저장소에 해당 로컬 저장소의 브랜치명과 같은 브랜치가 없을 경우 생성되는데 그 브랜치가 리모트 브랜치가 된다. 생성하는 방법은 다음과 같다. # 원격 저장소의 별명은 origin 혹은 upstream이 될 수 있다. git push 리모트 트래킹 브랜치 VS 트래킹 브랜치 리모트 트래킹 브랜치란? 리모트 브랜치를 추적(트래킹)하는 로컬 저장소에 있는 브랜치 이것은 로컬 저장소에 있지만 로컬 저장소에서 사용자가 임의로 수정할 수 없다. 리모트 트래킹 브랜치의 형식은 '원격 저장소의 별명/리모트 브랜치'로 되어 있다. 원격 저장소로부터 fetch 혹은 pull을 할 때마다 리모트..

백업 자신의 정보를 다른 컴퓨터에 동기화시키는 것을 의미한다. 다수의 사람들과 git으로 협업을 할 경우 본인이 작업한 파일을 커밋해야 백업할 수 있다. Local repository(지역 저장소) 개인적으로 버전을 만들어 관리하는 저장소를 의미한다. Remote repository(원격 저장소) local repository의 버전이 타 컴퓨터에 동기화되어 해당 버전이 저장된 저장소를 의미한다. http를 통해 백업 관리를 하기 위해 지역 저장소에서 원격 저장소로 버전을 동기화하는 방법은 예를 들어 지역 저장소에 저장된 버전을 원격 저장소로 push하는 것이 있다. 이때 원격 저장소에는 지역 저장소의 버전과 동기화된다. hosting 원격 저장소와 같은 서비스를 지원하는 것을 의미한다. 해당 서비스를 ..

브랜치란? 기존 작업 환경으로부터 독립된 곳에서 어떤 작업을 진행하기 위한 환경이라고 할 수 있다. 그럼 이 브랜치가 왜 탄생되었을까? 상황을 예시로 들어보자! 팀에서 개발을 하게 되면 같은 소스코드를 공유하는 메인 소스코드가 있다. 이때 각 개발자들마다 개발하는 부분이 다르고 또 어떤 개발자는 기존의 소스코드에서 버그를 고치는 경우도 있을 수 있다. 그렇기 때문에 각 개발자들이 개발한 코드를 서로 공유하는 소스코드에 커밋함으로써 기존의 메인 소스코드에 영향을 끼친다. 이로 인해 다양한 문제가 발생할 수 있기에 여러 개발자가 각자 독립된 브랜치에서 소스코드를 작성하고 커밋해도 특정 액션을 취하지 않는 이상 바로 메인 소스코드의 버전에 영향을 주지 않기 때문에 브랜치라는 환경이 탄생하게 되지 않았나 생각한..

버전 삭제 특정 과거의 버전으로 돌아가고 그 이후의 버전을 지우고 싶을 경우 돌아가고자 하는 버전의 커밋 일련번호 앞 7자리를 복사하고 다음과 같이 터미널에 입력한다. git reset --hard 커밋 일련번호 앞 7자리 해당 버전으로 reset하겠다는 말은 해당 버전과 그 이후의 것들을 삭제하겠다는 것이 아니라 해당 버전으로 돌아가고 그 이후의 버전을 삭제하겠다는 것을 의미한다. 이러한 방법으로 삭제한 버전으로 돌아갈 수 없기 때문에 신중히 선택해야 한다. 버전 되돌리기 이미 commit한 상태에서 해당 commit을 취소하고 commit 이전 상태로 되돌리고 싶은 경우 다음과 같이 다양하게 되돌리는 방법이 있다. git reset --soft HEAD^ git commit하기 직전의 상태로 되돌리는..