Github에서 새 코드 푸시 문제


147

Readme.md 파일 만있는 Github에 새로운 저장소를 만들었습니다.

이 저장소로 푸시하려는 RoR 프로젝트를 새로 작성했습니다. 다음은 내가 받고있는 오류와 함께 이것을 실행하기 위해 터미널에서 준 명령입니다.

git remote add origin https://github.com/aniruddhabarapatre/learn-rails.git

그 후 사용자 이름과 비밀번호를 입력했습니다

git push -u origin master

오류 ---

To https://github.com/aniruddhabarapatre/learn-rails.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/aniruddhabarapatre/learn-rails.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 merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

코드를 Github 저장소로 푸시 한 것은 이번이 처음이며 오류로 인해 길을 잃었습니다. 여기에서 묻는 몇 가지 다른 질문을 검색했지만 처음에는 문제가 없었습니다.


답변:


167

사용자가 만든 때 GitHub의에 저장소를 , 당신은 생성 README.md 이며, A는 새로운 커밋을 .

로컬 저장소는이 커밋에 대해 아직 모릅니다. 그 후:

원격에 로컬에없는 작업이 포함되어있어 업데이트가 거부되었습니다.

이 조언을 따르고 싶을 수도 있습니다.

git pull다시 변경 하기 전에 먼저 원격 변경 사항 (예 : ' ')을 병합 할 수 있습니다 .

그건:

git pull
# Fix any merge conflicts, if you have a `README.md` locally
git push -u origin master

3
내가하고있는 일은 git pull origin master를 먼저 누른 다음 다시 밀어 넣는 것입니다.
Bagusflyer

12
어떤 경우에는 fatal: refusing to merge unrelated histories그러한 경우에 귀하가 입수 할 수 있습니다. 귀하는 git pull --allow-unrelated-histories origin master위의 답변에 따라 제출 한 다음
TheLebDev

1
나를 위해 작동하지 않습니다. 원격 : 푸시가 거부되었습니다. 원격 : 원격 : 심판 / 헤드 / 마스터 : ... : 예상 커미터 이름 xxx이지만 yyy를 찾았습니다. git config --global user.email yyy를 수행하지만 여전히 인식하지 못합니다. 아무것도 강요 할 수 없습니다. !!!
Baruch Atta

284

이것이 첫 번째 푸시 인 경우

그냥 변경

git push **-u** origin master

이렇게 바꾸세요!

git push -f origin master

5
이것은 먼저 github에 넣은 readme 파일을 삭제했습니다. 이제 다시 만들어야 할 것 같습니다.
jack blank

3
-f 푸시를 강요하고 코드 타임 라인을
망칠

이것은 나쁜 방법입니다, 그것은 문제를 일으켰습니다. readme를 삭제했습니다. 나에 의해 생성되지 않았습니다. 이제는 관리자에게 전화를 걸어서 바보라고 말해야합니다. 다시 읽어주세요. :(
Mohammad Elsayed

62

⚡️ EASY : 필요한 것은 강요입니다. readme.mdGithub에서 파일을 만들었을 수도 있고 아직 가져 오지 않았기 때문입니다.

git push -f origin master

그리고 여기 GIF가 있습니다.

git push -f origin 마스터

⚠️ 조심 : 사용 force같은 프로젝트에서 다른 사람에 대한 역사를 변경할 수 있습니다. 기본적으로 모든 사람이 파일을 삭제하는 것에 신경 쓰지 않는다면 계속 진행하십시오. 특히 당신이 프로젝트의 유일한 개발자라면.


1
이 접근 방식은이 저장소의 다른 사용자가 이미 가져온 히스토리를 변경합니다. git push -f origin master형성하는 좋은 습관이 아닙니다.
Johnsyweb

1
이 솔루션은 커밋 푸시를 해결하지만 과거 커밋을 모두 제거합니다!.
twenk11k

2
Github noobs주의 ... GitHub를 통해 Readme.md를 생성 한 경우이 명령은 새로운 변경 사항을 적용 할 때 IT를 제거합니다.
daCoda

이것이 대부분 사람들이 이곳에 도착하는 이유입니다. -f태그는 파일을 제거하므로주의해서 사용해야합니다.
Ahmad Awais

34

다음 명령으로 강제 푸시를 실행하십시오.

git push -f origin master

10
이것은 과거의 커밋을 삭제할 수 있으며 바람직하지 않을 수도 있습니다
Crashalot

8

github에서 제공하는 인터페이스를 통해 Readme.md 파일을 추가했다고 가정하면 readme는 아직 로컬 폴더에 없습니다. 따라서 원격 리포지토리로 푸시하려고하면 로컬 리포지토리에 readme 파일이 없기 때문에 오류가 발생합니다. 따라서 오류 메시지에 제시된대로 "git pull"을 먼저 시도하십시오. 이것은 원격 저장소에서 readme를 가져 와서 로컬 디렉토리와 병합합니다. 그 후에는 원격 저장소로 푸시하는 데 아무런 문제가 없습니다 (게시 한 명령은 나에게 유효합니다).


6

GitHub 리포지토리에는 readMe.md 또는 로컬 리포지토리에없는 다른 새로운 항목이 있기 때문에 발생합니다. 먼저 github repo의 관련이없는 기록을 병합해야합니다.

git pull origin master --allow-unrelated-histories

그런 다음 repo (readMe.md 또는 any)에서 다른 파일을 가져올 수 있습니다.

git pull origin master

그 후

git push -u origin master

이제 모든 변경 사항을 Github 저장소에 성공적으로 푸시합니다 .git 전문가는 아니지만이 단계가 저에게 효과적 일 때마다.


5

한동안 변경 사항을 커밋하지 않은 경우이를 고려하면 효과가있을 수 있습니다.

git add files
git commit -m "Your Commit"
git push -u origin master

그것은 나를 위해 일했지만 희망은 당신도 마찬가지입니다.


3

GUI에서 mac 용 git을 사용하는 경우 Respository-> Pull 또는 "comm + shift + p"를 먼저 "git pull"로 선택한 다음 소스를 게시 할 수 있습니다.


3

이 오류는 git 명령을 사용하여 로컬 디렉토리에서 원격 git 저장소로 데이터를 푸시 할 때 발생합니다. git push -u origin master

로컬 디렉토리와 git 원격 디렉토리의 파일이 충돌했습니다.

해결책 :

모든 파일을 준비 상태로 만든 후 아래 단계를 수행하십시오.

  1. 로컬 작업 디렉토리와 충돌하여 원격 저장소에서 파일을 가져옵니다.

    • git pull <remoter-url> <branch-name>
  2. 변경 사항을 다시 적용하십시오.

    • git add -A
    • git commit -m ‘<comment>'
  3. 두 디렉토리 모두에 병합 파일을 커밋 한 후 사용할 수 있습니다

    • git push -u origin master

문제가 해결됩니다. 감사.


1

나는 비슷한 문제가 있었다 ... 나는 이것을 이렇게 해결했다 (나는 git 전문가가 아니기 때문에 그것이 올바른 해결책인지 모르겠지만 나를 위해 일했다) :

git pull origin master --allow-unrelated-histories
git merge origin origin/master
git rm README.md
git commit -m 'removed readme.md'
git push origin master

0

나는 한 시간 이상이 오류로 어려움을 겪었습니다! 아래는 그것을 해결하는 데 도움이되었습니다. 내 작업 디렉토리는 시스템에서 복제 한 저장소였습니다.

기존 리포지토리에 파일을 추가하는 경우 ** 1. 리포지토리에 추가 한 모든 내용을 GitHub 폴더로 가져 왔습니다.

자식 풀


출력-일부 readme 파일 file1 file2

  1. 새 파일 (누르고 싶은 파일)을 복제 된 저장소 (GitHub 저장소)에 복사 (드래그 앤 드롭)했습니다. 이 리포지토리를 사용하면 이전 파일과 새 파일을 볼 수 있습니다.

예. 일부 readme 파일 file1 file2 newfile1 newfile2

  1. 자식 추가 "newfile1" "newfile2"

  2. [선택 사항] git status 추가하려는 파일이 제대로 준비되었는지 또는 출력되지 않았는지 확인할 수 있습니다.


지점 마스터에서 지점은 '원산지 / 마스터'로 최신 상태입니다. 커밋 할 변경 사항 : ( "git reset HEAD ..."를 사용하여 스테이지 해제)

    new file:   newfile1
    new file:   newfile2

5.git commit -m "설명에 관계없이"6.git push

그리고 이전 파일과 함께 새로운 파일이 모두 내 저장소에 표시되었습니다.


0

더 간단한 대답은 컴퓨터에서 GitHub로 README.MD 파일을 수동으로 업로드하는 것입니다. 나를 위해 아주 잘 작동했습니다.


0

지점 옵션을 사용하고 "원격 / 원점"폴더를 마우스 오른쪽 단추로 클릭 한 다음 "원격에서 지점 삭제"를 클릭하십시오 (아래 이미지 참조).

이미지


0

Azure Git 에서이 오류가 발생하여 문제를 해결합니다.

git fetch
git pull
git push --no-verify
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.