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: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 <remote> dev
대신에 git pull <remote> master:dev
동일한 문제가 발생하면 누군가에게 도움이되기를 바랍니다.
실제로 github는 우리가 생각하는 것보다 훨씬 간단하며 git 저장소에 일부 파일을 명시 적으로 삽입 한 후에도 푸시를 시도 할 때마다 발생 하므로 문제를 해결하려면 간단히 시도해보십시오.
: git pull
그리고..
: git push
참고 : 저장소를 가져온 후 실수로 vim 편집기에서 멈춘 경우 vim 편집기를 닫고 푸시를 시도해도됩니다.
이 오류는 서버에 업데이트가 있었지만 SourceTree가 사용 가능한 업데이트를 표시하지 않았기 때문입니다 (마지막으로 확인했을 때 오프라인 이었기 때문일 수 있음). 그래서 소스 트리에서 새로 고침을했는데 이제 푸시 할 항목 1 개 대신 2 개 항목이 표시됩니다.
따라서이 오류가 발생하면 새로 고침 을 누르 거나 당겨서 다시 시도하십시오.
다음을 입력해야합니다.
$ git pull
$ git fetch
$ git merge
를 사용 git push origin master --force
하면 큰 문제가 발생합니다.
밀기
git push -f origin master
이는 일반적으로 저장소에 로컬에없는 일부 항목이 포함 된 경우 발생합니다. 따라서 변경 사항을 푸시하려면이 경우 원격 변경 사항을 통합 한 다음 푸시해야합니다.
So create a pull from remote
git pull origin master
Then push changes to that remote
git push origin master
I had a SSDT VS project first. I wanted to push the project as I had it to Github. I wanted that push to be the initial version of my repo starting the master branch. Donal's suggestion of git push -f origin master was the easiest way (that I saw) to accomplish this. Since I didn't have to worry about re-writing anything, it seemed to make sense.
You can try this: git pull origin master --rebase
'Programing' 카테고리의 다른 글
MotionEvent.getRawX와 MotionEvent.getX의 차이점 (0) | 2020.12.04 |
---|---|
MySQL의 \ G에서와 같이 psql에서 선택 결과를 세로로 표시합니다. (0) | 2020.12.04 |
Symfony 2.6으로 업데이트 한 후 '파라미터 "debug.error_handler.throw_at"를 정의해야합니다. "오류 (0) | 2020.12.04 |
역할에 상대적으로 ansible로 파일을 복사하는 방법은 무엇입니까? (0) | 2020.12.04 |
부울 C # 변수를 javascript 변수에 전달하고 true로 설정하려고합니다. (0) | 2020.12.04 |