2012-02-03 4 views
1

원본이 완전히 최신 인 로컬 저장소가 있다고 가정합니다.다양한 원격 커밋을 사용하여 새 로컬 브랜치를 리베이스하는 것이 안전할까요?

특정 SHA에서 새 분기를 만든 다음 원래 분기에 존재하는 다른 분기/SHA에 대해 새 분기를 원하는 모든 리베이스를 수행하는 것이 안전합니까?

git checkout -b merging_some_commits bfd70a83f5bf3f7fd44422233a82751535428cbd 

git rebase --onto some_other_branch 02979b4e34809d53e5071501046f59ad5c 

git checkout some_other_branch 

git merge mergin_some_commits 

git push origin some_other_branch 

업데이트 : 기본적으로 02979b... 선택 체리에 노력하고있어 - some_other_branchbfd70a83...합니다. 02979b...은 (는) bfd70a83...의 조상이 아니며 some_other_branch과 (과) 최근 기록을 공유하지 않습니다. 02979b... 전에 10-15 커밋이 있고 공통 조상을 공유하고 싶다고 가정합니다 (아직). 결국이 10-15 커밋도 병합해야합니다.

+1

두 SHA가 참조하는 것이 ... 02979b4e34809d53e5071501046f59ad5c bfd70a83f5bf3f7fd44422233a82751535428cbd의 조상인지 알 수 있습니까? some_other_branch의 조상 중 하나입니까? – avh

+0

업데이트 됨 ... 요청해야 할 경우에도이 작업을 수행하고 싶지 않다고 가정합니다. – drstevens

답변

2

예, 거기에있는 항목은 괜찮아 보입니다. 업데이트에 원하는 내용을 처리해야합니다. @haydenmuhi가 설명했듯이, 거의 모든 것이 여러분의 로컬 저장소에서 "안전"합니다. 푸시 할 때, 중요한 것은 모두 당신이 추진하고있는 지점에있는 커밋입니다. 당신이 가지고있는 지점과 다른 지점은 차이를 만들지 않을 것입니다. 지금까지와 같은 나중에 다른 10 ~ 15 커밋 병합

, 당신은, 또는 some_other_branch..02979b 또는 some_other_branch..02979b을 리베이스가 잘 향후 중 하나를 단순히 02979b 또는 bfd70a83 병합 그렇게 할 수 있어야한다. 병합하기 전에 여전히 약간의 시간이 걸리면, 그들을 some_other_branch에 리베이스 (rebase)하여 지금 비트 전류를 유지할 수 있습니다.

+0

고마워요. 다른 사람들의 리펙토링을 망쳐 버리기 때문에 아직 029 이전에 모든 것을 가져갈 수는 없습니다. 만약 내가 할 수만 있다면 나는'merge'를 사용했을 것입니다. – drstevens

4

커밋이 로컬이고 로컬 일 경우 원하는대로 할 수 있습니다. 리모트 Repo에 대한 커밋을 한 번도 해보지 않은 한 리베이스를 포함하여 어떤 방식 으로든 수정하는 것이 공정한 게임입니다. 아동 위탁이 조상들에게 영향을 미치지 않기 때문에 위에 쌓아 놓은 것이 무엇이든 상관 없습니다.

+0

rebase를 수행했는데 새로운 커밋이 생성되지 않았습니다. 실제로 기존 커밋은 smartgit에서 히스토리를 볼 때 두 번 나타납니다 (히스토리를 보거나 비교할 때만 사용됩니다). 새로운 커밋은 merge에 의해 merge_come_commits으로 생성 될 것입니다. – drstevens

+0

응답 해 주셔서 감사합니다. 나는 당신의 대답을 답글로 표시했을 것입니다, 그러나 그것은 여전히 ​​부분적으로 내 머리 위로있었습니다. – drstevens

관련 문제