제목 그대로 서로 다른 2개의 repository 를 합쳐보자. 1. Base repository 열기 우선, 베이스 레포지토리를 연다. 2. 합칠 원격 repository를 추가한다. 3. Fetch from target repository 4. Integration 전용 branch 생성 그냥 베이스 브랜치에서 checkout 해도 된다. 5. Merge & Resolve conflict ⚠️ 서로 다른 저장소의 커밋 히스토리를 합치려(merge)하므로 에러가 발생한다. --allow-unrelated-histories 옵션을 주면 해결할 수 있다. 대부분 merge 하고나면 CONFLICT 에러가 발생할텐데 여기서는 수작업 하는 수 밖에 없다. 6. git push 이정도는 할 줄 알잖아? 7. 이..
merge
🔒 문제 상황 git push를 하려니 (non-fast-forward) 에러 메시지가 나왔다. 아래와 같은 메시지를 봤다면 이 글을 잘 찾아왔다. "Push was rejected, and update failed with an error" error: failed to push some refs to [git-repository-url] hint: Updates were rejected because the tip of your current branch is behind 직역하면 현재 당신의 브랜치 일부가 origin 브랜치의 뒤에 와있다는 뜻이다. 상세하게 분석해보기 위해 sourcetree 를 살펴봤다. 💡 아이디어 해결 방안 1. push --force ❌ 이전 포스트에서 본 것처럼 그냥 $ ..
🎯 Goals Merge 와 Rebase 의 차이점을 안다. 결론 왠만하면 merge 써라, commit 히스토리를 유지할 수 있다. ⚠️ Merge request 중에서도 'squash' 는 단 하나의 Merge request (Pull Requset) 이력만 남기고 나머지는 사라지게한다. Merge & Pull Request 별도의 병합 히스토리 커밋을 생성한다. 리뷰, 테스트 등을 제공하여 "여기가 이어지는 커밋이에요!" 라는 이력을 남긴다. Rebase 별도의 병합 히스토리 커밋 없이 곧바로 깔끔하게 이어붙이기 하는 용도다. 리뷰, 테스트 등이 필요하지 않게 일관된 히스토리를 유지할 수 있다. Why to use 깨끗한 커밋 히스토리 정리 Merge 커밋이 생성되지 않는다. When to use ..
🔒문제 원인 'pull' 하지않고 Push하기 때문에!! Pull 하지않으면 Working Directory, Local Repository에 담기지도 않은 Commit 내용을 Push하라고 하는 것과 같음. 이러면 당연히 git 입장에서는 띠용임. ?? commit이랑 push 메시지는 있는데 원본 파일이 Working Directory, Local Repository에 없네? 문제상황 1 git push 명령어 입력시 Error: Failed to push some refs to 'git address' (Hint: git pull) before pushing again. 힌트에서 시킨대로 push 전에 먼저 pull을 해서 프로젝트를 병합해 주자. File Sync를 맞춰주기 위한. git pull..