좋아, 나는 이것이 간단한 자식 시나리오라고 생각했다.
나는이 master
지점과 feature
지점을. 나는 몇 가지 작업을하고 master
, 어떤 작업은 계속하고 , feature
더 작업을 master
합니다. 나는 이런 식으로 끝납니다 (사전 순서는 커밋 순서를 암시합니다).
A--B--C------F--G (master)
\
D--E (feature)
git push origin master
원격 작업을 master
업데이트하거나 git push origin feature
(켜져있을 때 feature
) feature
작업에 대한 원격 백업을 유지하는 데 아무런 문제가 없습니다 . 지금까지 우린 잘 지내
하지만 지금은 리베이스 할 feature
의 상단에 F--G
, 마스터에 커밋 I 있도록 git checkout feature
하고 git rebase master
. 여전히 좋은. 이제 우리는 :
A--B--C------F--G (master)
\
D'--E' (feature)
문제 : 백업 내가 원하는 순간 새로운 리베이스 feature
로 분기 git push origin feature
, 푸시가 거부 트리가 리베이스로 인해 변경되었습니다 때문이다. 이 문제는로만 해결할 수 있습니다 git push --force origin feature
.
나는 --force
그것을 확신하지 않고 사용하는 것을 싫어 한다. 그래서 필요합니까? 리베이스는 반드시 다음 push
이 충만 해야 함을 의미 합니까 --force
?
이 기능 브랜치는 다른 개발자와 공유되지 않으므로 강제 푸시에 실제로 아무런 문제가 없으며 데이터를 잃지 않을 것입니다. 질문은 더 개념적입니다.