git : 원격에 로컬에없는 작업이 포함되어있어 업데이트가 거부되었습니다. 대해 며칠 동안

저는 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:devremote/master브랜치 를 가져와 브랜치에 병합합니다 local/dev.

git pull <remote> devremote/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하면 큰 문제가 발생합니다.