development

!

big-blog 2020. 11. 6. 21:02
반응형

! [거부 됨] 마스터-> 마스터 (먼저 가져 오기)


! [rejected] master -> master (fetch first)'Git에서 " " 를 해결하는 방법을 설명하는 좋은 방법이 있습니까?

이 명령을 사용 $ git push origin master하면 오류 메시지가 표시됩니다.

! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:zapnaa/abcappp.git'

대답은 거기에 있습니다. git은 먼저 가져 오라고 말합니다.

아마 다른 누군가가 이미 마스터하기 위해 밀어 붙였고 당신의 커밋은 뒤쳐져있을 것입니다. 따라서 변경 세트를 가져 와서 병합 한 다음 다시 푸시 할 수 있습니다.

그렇지 않은 경우 (또는 --force옵션 을 사용하여 강제하는 경우 ) 커밋 기록을 엉망으로 만들 수 있습니다.

편집 : 여기에있는 사람이 --force옵션 사용에 대한 매우 나쁜 조언을했기 때문에 마지막 요점에 대해 자세히 설명합니다 .

git은 DVCS이므로 이상적으로는 다른 많은 개발자가 동일한 저장소 (또는 포크)를 사용하여 동일한 프로젝트에서 작업하고 있습니다. 변경 세트로 강제로 덮어 쓰면 "이력을 다시 작성"하기 때문에 저장소가 다른 사람의 저장소와 일치하지 않습니다. 당신은 다른 사람들을 불행하게 만들 것이고 저장소는 고통받을 것입니다. 아마도 세상의 새끼 고양이도 울 것입니다.

TL; DR

  1. 해결하려면 먼저 가져 와서 병합하십시오.
  2. 해킹하려면 --force옵션을 사용하십시오 .

하지만 당신은 전자를 요구했습니다. 1) 항상 git을 혼자서 사용하더라도 좋은 습관이기 때문에 항상 사용하십시오.


시험:

git fetch origin master
git merge origin master

이 코드를 작성한 후 다른 오류가 발생했습니다. (빨리 감기가 아님)

이 코드를 작성합니다.

git fetch origin master:tmp
git rebase tmp
git push origin HEAD:master
git branch -D tmp

그리고 내 문제를 해결했습니다.


을 사용해야 합니다 . git pull명령은 do a를 git fetch하고 다음은 git merge.

git push origin master --force명령 을 사용 하면 향후 문제가 발생할 수 있습니다.


pull은 항상 올바른 접근 방식이지만 Git이 아닌 파일 시스템을 Github 저장소로 변환하려는 경우 한 가지 예외가있을 수 있습니다. 거기에서 첫 번째 커밋을 강제해야합니다.

git init
git add README.md
git add .
git commit -m "first commit"
git remote add origin https://github.com/userName/repoName.git
git push --force origin master

이 git 명령을 시도하십시오.

git push origin master --force

또는 힘 부족 -f

git push origin master -f


다음 명령을 사용할 수 있습니다. 먼저 --mirror 플래그를 사용하여 저장소의 새 복사본을 복제합니다.

$ git clone --mirror git://example.com/some-big-repo.git

그런 다음 그에 따라 코드를 따르십시오.

명령 줄을 사용하여 GitHub에 기존 프로젝트 추가

작동하지 않더라도 간단히 코딩 할 수 있습니다.

$ git push origin master --force 

또는

$ git push origin master -f

다른 사람 (예 : 동료)이 origin/master로컬 master브랜치에 없는 커밋을했고 로컬 브랜치에서 서버로 커밋을 푸시하려고 할 수 있습니다. 99 %의 경우에서 작업을 지우고 싶지 않다고 가정하면 origin두 가지 옵션이 있습니다.

2) 변경 사항을 로컬 브랜치에 병합 한 다음 병합 된 결과를 푸시합니다. git checkout master git pull # resolve conflicts here git push

( 이 경우 git pull본질적으로 a git fetch와 a git merge입니다.)

1) Rebase your local branch, so that it looks like your colleague made their commits first, and then you made your commits. This keeps the commit history nice and linear - and avoids a "merge commit". However, if you have conflicts with your colleague's changes, you may have to resolve those conflicts for each of your commits (rather than just once) in the worst case. Essentially this is nicer for everyone else but more effort for you. git pull --rebase # resolve conflicts here git push

(Note that git pull --rebase is essentially a git fetch and a git rebase origin/master.)


Sometimes it happens when you duplicate files typically README sort of.


Your error might be because of the merge branch.
Just follow this:

step 1 : git pull origin master (in case if you get any message then ignore it)
step 2 : git add .
step 3 : git commit -m 'your commit message'
step 4 : git push origin master


this work for me

  1. git init

  2. git add --all

3.git commit -m "name"

4.git push origin master --force


This worked for me:

$ git add .
$ git commit -m "commit"
$ git push origin master --force

참고URL : https://stackoverflow.com/questions/28429819/rejected-master-master-fetch-first

반응형