저는 BitBucket에서 git을 사용하는 몇 명의 개발자로 구성된 팀에서 일하고 있습니다. 우리는 모두 dev
브랜치에서 작업하고 master
있으며 릴리스까지 추진하지 않습니다 .
개발자 중 한 명이 실수로 내 자신을 덮어 쓴 잘못된 코드를 저질렀 고 이제 올바른 코드를 repo로 다시 푸시하려고합니다. 나는이 오류에 대해 며칠 동안 읽었으며 다음 오류가 발생하기 때문에 더 이상 저장소로 푸시 할 수 없습니다.
! [rejected] master -> dev (fetch first)
error: failed to push some refs to 'https://myusername@bitbucket.org/repo_user/repo_name.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
및 지침을 따르지만 pull
병합 충돌이 발생합니다. 병합 충돌에 대한 메시지를 입력 한 후 내 로컬 코드는 이제 다른 개발자가 실수로 업로드 한 잘못된 코드입니다 (에서 예상 한대로 pull
). 따라서 잘못된 코드를 커밋하기 전에 복사 한 백업으로 대체하고 다시 푸시하려고하면 동일한 오류가 발생합니다.
정말 실망스럽고 팀을 돕고 기여하고 싶지만이 오류 때문에 할 수 없습니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까? 도움을 주시면 감사하겠습니다.
누군가에게 도움이된다면 커밋하기 위해 실행하는 명령은 다음과 같습니다.
git pull remotename master:dev
git add --all
git commit -m "some message"
git pull remotename master:dev
git push remotename master:dev
이 주문을 유지하면 병합 충돌이 발생하지 않을 것이라고 생각했을 것입니다. 내가 틀렸다고 생각합니다. 다시 한 번 감사합니다
업데이트 : 내가 다른 지침을 구글과 유래에 몇 시간 동안보고 및 준수했는지 추가해야합니다,하지만 난 아직 할 수없는 push
받는 dev
지점입니다.
답변
git pull <remote> master:dev
remote/master
브랜치 를 가져와 브랜치에 병합합니다 local/dev
.
git pull <remote> dev
remote/dev
분기 를 가져와 현재 분기에 병합합니다.
충돌하는 커밋이 on이라고 말한 것 같아서 remote/dev
가져오고 병합하려는 분기 일 것입니다.
이 경우 실제로 충돌을 로컬 브랜치로 병합하지 않았습니다. 작업 복사본에서 잘못된 코드를 보았다고 말했기 때문에 다소 이상합니다. 에서 무슨 일이 일어나고 있는지 확인하고 싶을 수 있습니다 remote/master
.
답변
터미널에서이 명령 사용
git push -f origin master
답변
원격 저장소로 푸시하려고하지만 아직 가져 오지 않은 새 파일을 원격 저장소에 만들었을 때 발생합니다 Readme
. 이 경우 오류가 말했듯이
자식은 업데이트를 거부합니다
로컬 환경에서 원격으로 업데이트하지 않았기 때문입니다. 그러니 먼저 원격에서 당겨
git pull
로컬 저장소를 업데이트하고 새 Readme
파일을 추가 합니다. 그런 다음 업데이트 된 변경 사항을 원격으로 푸시
git push origin master
답변
이는 일반적으로 저장소에 로컬에없는 일부 항목이 포함 된 경우 발생합니다. 따라서 변경 사항을 푸시하려면이 경우 원격 변경 사항을 통합 한 다음 푸시해야합니다.
따라서 원격에서 가져 오기를 만듭니다.
git pull origin master
그런 다음 변경 사항을 해당 리모컨으로 푸시합니다.
git push origin master
답변
밀기
git push -f origin master
답변
나는 그것을 고쳤고 내가 무엇을했는지 정확히 모르겠습니다. 나는 단순히 밀고 당기는 것을 시도했다.
git pull <remote> dev
대신에
git pull <remote> master:dev
동일한 문제가있는 경우 이것이 누군가에게 도움이되기를 바랍니다.
답변
다음을 입력해야합니다.
$ git pull
$ git fetch
$ git merge
를 사용 git push origin master --force
하면 큰 문제가 발생합니다.