2016-08-23 3 views
8

나는 항상 무서운 무언가이고 결코해서는 안되는 어떤 것이라는 말을 듣는다. 예를 들어, 여기에 끌어 오기 대화 상자가 SourceTree에서 보이는 방법은 다음과 같습니다푸시 한 후 리베이스하면 어떻게됩니까?

enter image description here

그래서 나는 어떤 일이 일어날 것, 호기심 그리고 난 후, 변경을 밀어으로 업데이트했다면 얼마나 나쁜는 것하고는 다시 밀어? 그리고 만약 내가 이런 식으로 깨면 저장소를 고치는 방법?

+0

좋은 소식은 아무것도 잃어 버리지 않는다는 것입니다. 기존의 저장소와 중복되는 새로운 저장소를 만들면 저장소에서 가져온 사람에게 불필요한 번거 로움이 없습니다. – Thilo

+2

커밋을 리베이스하면 원래 커밋과 내용이 같지만 다른 ID를 가진 또 다른 커밋이 생성됩니다. 원래의 커밋이 푸시되고 새로운 커밋을 강제로 푸시 했으므로 이미 원래 커밋을 가져온 다른 개발자는 이제 커밋이 중복되어 (파일은 동일하지만 ID는 동일하게 변경됩니다.) 커밋을 반복합니다. 이것은 혼란을 가져옵니다. – axiac

답변

7

아무 일도 일어나지 않지만 다음 푸시는 받아 들여지지 않습니다.

밀기를 강요하지 않는 한. 이렇게하면 원격 저장소도 손상되지 않으므로 그리 나쁘지 않습니다.

이 repo를 사용하는 사람들이 더 많을 때 상황이 좋지 않습니다. 다시 쓰기 기록을 사용하면 원격에서 새로운 변경 사항을 가져올 다른 사용자에게 약간의 혼란이 발생할 수 있습니다. 특히 그들이 자식에 대해 잘 모른다면. 로컬 리포지토리의 상태에 따라 재 작성된 원격 분기를 가져 오는 사람에 대해 발생할 수있는 여러 가지 사항이있을 수 있습니다.

누군가가 X 기능을 사용하고 변경 사항을 기반으로 코드를 변경 한 경우 사용자가 사용하지 않은 작업의 양에 따라 완전히 화가 날 수도 있습니다.

+1

좋은 소식은 다른 사람이 그가 본대로 지사에 변경 사항을 적용 할 수 있다는 것입니다 (해당 지역의 repo에서 손실되는 것은 아님). 그리고 한 가지 점은 누군가가 함께 병합해야한다는 것입니다. – Thilo

+2

@Thilo 네, 그래도 GIT하는 방법을 아는 팀에 최소 1 명이 필요합니다. 그렇지 않으면 코드를 먹고, 프로젝트, 세계 기아 등을 깬 GIT를 비난한다고 상상할 수 있습니다. – Mateusz

+1

예, 모든 사람이 도움이 될 것이라고 이해합니다. '--force'를 사용하고 경고 상자에주의를 기울이십시오. – Thilo

1

SourceTree에 나열한 시나리오에서 SourceTree는 원격에서 가져 오는 변경 사항 위에 푸시되지 않은 로컬 커밋을 리베이스합니다.

THAT 옵션을 사용하기 전에 변경 사항을 이미 푸시했다면 변경 사항은 이미 리모컨에 있기 때문에 리베이스되지 않습니다.

리모컨이 여러 개인 경우 하나의 리모컨에만 변경 사항을 적용한 다음 다른 리모컨으로 풀/리베이스를 수행하면 심각한 문제가 발생할 수 있습니다.

끌어 오기 중에 리베이스했는지 여부는 논쟁의 대상입니다. 추천하지는 않지만 일반적으로 안전합니다. https://developer.atlassian.com/blog/2014/12/pull-request-merge-strategies-the-great-debate/

관련 문제