나는 Git을 처음 사용하기 때문에 초보자처럼 나를 자유롭게 다루십시오.
우리의 작업 흐름은 이와 같습니다. 에 연락 할 수있는 지점 dev
이 있습니다 origin/dev
. 변경을 수행하면 dev에서 분기를 작성합니다.
자식 체크 아웃 -b FixForBug origin / dev
이제 나는 지점을 FixForBug
추적하고 있습니다 (나는 그것이 올바른 단어라고 생각합니다) origin/dev
. 따라서 내가 그렇게하면 git pull
새로운 변화가 생길 것 origin/dev
입니다. 이제 수정 작업이 끝나면 동일한 항목이라는 원격 지점으로 푸시합니다.
먼저 변경 사항을 풀고 origin/dev
rebase를 수행하십시오.
자식 풀-리베이스
그런 다음 변경 사항을 동일한 이름의 원격 지점으로 푸시합니다.
git push origin FixForBug
이제 원격 서버에 지점이 있으며 해당 변경 사항을 승인하고 개발 지점으로 다시 병합하기위한 풀 요청을 만들 수 있습니다. 나는하지 않는다 지금까지 아무것도 밀어 origin/dev
자신. 나는 이것이 꽤 일반적인 워크 플로우라고 생각합니다.
내가 처음 할 때 git push
잘 작동하고 원격 지점을 만듭니다. 그러나 두 번째로 밀어 넣으면 (코드 검토 중에 누군가가 문제를 지적하자) 다음과 같은 오류가 발생합니다.
오류 : 일부 참조 를 ' https://github.limeade.info/Limeade/product.git ' 으로 푸시하지 못했습니다. 힌트 : 현재 분기의 팁이 힌트 뒤에 있기 때문에 업데이트가 거부되었습니다. 다시 변경하기 전에 원격 변경 사항 (예 : 힌트 : 'git pull ...')을 통합하십시오. 힌트 : 자세한 내용은 'git push --help'에서 '앞으로 가기에 대한 참고 사항'을 참조하십시오.
그러나 내가 그렇게하면 1 커밋 ( git status
앞의 origin/dev
의미가 있음)으로 앞서고 힌트를 따르고 실행 git pull
하면 모든 것이 최신 상태라고 말합니다. 내가 생각하는 내 상류 지점과 다른 지점에 밀어거야 때문입니다. 다음을 실행하여이 문제를 해결할 수 있습니다.
git push -f origin FixForBug
이 경우 변경 사항을 원격 지점으로 푸시하고 (강제 업데이트) 라고 말하면 모든 항목 이 원격 지점에서 양호 해 보입니다 .
내 질문 :
-f
이 시나리오에서 왜 필요한가요? 일반적으로 무언가를 강요 할 때 , 잘못하거나 최소한 표준 관행에 어긋 났기 때문입니다. 이 작업을 수행해도 괜찮습니까? 아니면 원격 지점에서 무언가를 엉망으로 만들거나 결국 내 물건을 개발자로 병합 해야하는 사람을 위해 번거 로움을 만들 수 있습니까?
git pull origin FixForBug
하기 전에 실행 합니까? 알겠습니다. 답변으로 자유롭게 추가하십시오!