치명적 : 현재 지점 마스터에 업스트림 지점이 없습니다.


227

내 프로젝트 중 하나를 github에 푸시하려고 하는데이 오류가 계속 발생합니다.

peeplesoft@jane3:~/846156 (master) $ git push

fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

     git push --set-upstream origin master

그래서 나는 그것을 시도하고 이것을 얻었다.

peeplesoft@jane3:~/846156 (master) $ git push --set-upstream origin master

fatal: Authentication failed

또 다른 stackoverflow 스레드는 실망스러운 결과로 다음을 시도해 보라고 제안했습니다.

peeplesoft@jane3:~/846156 (master) $ git push -u origin master

fatal: Authentication failed

그런 다음 이것을 시도했습니다.

peeplesoft@jane3:~/846156 (master) $ git config remote.origin.push HEAD

peeplesoft@jane3:~/846156 (master) $ git push

fatal: Authentication failed

힌트가 있습니까?


1
REPO는 GitHub의에 존재해야 하기 전에 당신이 그것에 푸시 할 수 있습니다. 그렇습니까? 그리고 복제본으로 작업하는 리포지토리입니까?
— matt

Github에서 저장소를 복제 한 다음 readme 파일에 한 줄을 추가 한 다음 다시 밀어 넣으려고했습니다.
— user1524361

1
파일 커밋을 잊었 기 때문에 같은 오류가 발생했습니다
— Mateen

3
-u와 --set-upstream은 동일합니다
— brainLoop

gitOP가 게시 한 명령을 모두에게 알려주고 싶었 습니다. 답변보다 훨씬 더 도움이되었습니다
— Nathan

답변:


94

푸시를 수정했지만 해당 푸시 문제 ( " 새 분기를 명시 적으로 푸시해야하는 이유 ": git push -u origin master또는 git push -u origin --all)에서 설명한대로 이제 인증 문제를 해결해야합니다.

귀하의 URL에 따라 다릅니다 ( ' git@github.com/yourRepo에서와 같은 SSH 또는에서와 같은 https https://github.com/You/YourRepo)

https URL의 경우 :

계정이 이중 인증으로 보호되는 경우 여기 또는 여기에 설명 된대로 https 비밀번호의 경우 일반 비밀번호가 작동하지 않습니다 .

비밀번호에 특수 문자가 포함되어 있으면 동일한 문제입니다 ( 이 답변 에서와 같이 )

https가 작동하지 않으면 (보조 키, PAT : 개인 액세스 토큰을 생성하지 않기 때문에) 여기에 표시된 것처럼 ssh로 전환 할 수 있습니다 .


주석에서 qwerty 가 언급했듯이 다음을 사용하여 원격에서 동일한 이름의 분기를 자동으로 만들 수 있습니다.

git push -u origin head 

왜?

  • HEAD는 (귀하의 참조 .git\HEAD파일) 현재 체크 아웃 지점의 refspec있다 (예 : ref: refs/heads/master)
  • 기본 푸시 정책 은 간단합니다

이 푸시에 사용 된 refpec은 head :( 대상 없음)이므로 누락 :<dst>은 <src>(head, 분기) 와 동일한 참조를 업데이트하는 것을 의미합니다 .

HEAD가 분리되어 있으면 작동하지 않습니다 .


1
대단한, 이것은 우리가 근본 원인 문제를 해결하기 위해 필요한 것입니다. 표면에서 문제를 해결하는 것이 아니라
— workplaylifecycle

당신이 어떤 지점에 있다면, 이것은 유용합니다 git push origin head -u. 리모컨에 같은 이름의 분기를 자동으로 만듭니다.
— Qwerty

1
@Qwerty 감사합니다. 좋은 지적입니다. 가시성을 높이기 위해 귀하의 의견 (추가 정보 포함)을 답변에 포함 시켰습니다.
— VonC

115

또한 다음 명령을 사용할 수 있습니다.

git push -u origin master

그러면 원격 저장소에 다른 분기가 (-u) 생성됩니다. ssh를 사용한 인증이 완료되면


2
문제는 인증과 관련이 있기 때문에 문제와 실제로 관련이 있습니다. 그는 또한 자신의 직책에서 이미 시도했다고 언급했다.
— Mike Precup

2
나는 두 가지 이유로 하향 투표했다. 첫 번째 : OP는 이미 이것을 시도했다고 밝혔다. 두 번째 방법 : -uoption은 --set-upstream새 분기 생성과 관련이없는 옵션 의 바로 가기입니다 . 로부터 의 문서 -u또는 --set-upstream옵션 : "최신 또는 성공적으로 밀려 모든 지점의 경우, 인수없는 자식 풀 [1] 다른 명령에 의해 사용되는 업스트림 (추적) 참조를 추가합니다.". 실제로 나는이 답변이 오도 된 것처럼 그토록 많은 이유를 알지 못합니다.
— louisfischer

38

--all처음 푸시 할 때 매개 변수 를 잊어 버린 경우에도이 오류 메시지가 나타납니다 . 나는 썼다

git push -u origin

이 오류가 발생했을 것입니다.

git push -u origin --all

이런 복사-붙여 넣기 오류를 어떻게 좋아합니까?


3
감사. Visual Studio Code 에서이 오류가 발생하여 작동했지만 여러 개발자의 상황에서 누군가 이것이 무엇을했는지 설명 할 수 있습니까?
— 지옥.


13

이 시나리오를 시도하십시오

git push -f --set-upstream origin master

7
이것이 작동하는 방법과 이유에 대한 자세한 설명을 제공해야합니다.
— Benoît Latinier

6
"나쁘지 않다"는 정말 나쁜 설명이다. "나쁘지 않다"는 대답이 정말 나쁘다.
— GhostCat

이것은 OP가 언급 한 오류 : "인증 실패"
— Sean the Bean이

예. 그것은 나를 위해 일했다. 이것이 커밋을 업스트림 (원격) 브랜치로 강제하고 있다고 생각합니다.
— vkg 2016 년

12

액션을 정의하면 git push 경우 명령 행에 refspec이 제공되지 않고 원격에 refspec이 구성되어 있지 않고 명령 행에 제공된 옵션에 의해 refspec이 암시되지 않으면 를 취해야합니다.

그냥 해:

git config --global push.default current

그때

git push

1
이것은 전역 git 설정을 변경하여 악영향을 줄 수 있음을 알아야합니다. 그러나 이것은 내가 찾던 것입니다.
— Mavamaarten

@Mavamaarten 잠재적 부작용은 무엇입니까?
— kosii

7

글쎄, 업로드하는 동안 똑같은 문제가 발생했으며 동일한 작업을 수행하여 문제를 해결했습니다. 이전에는 https와 같이 Linux에서 터미널을 내 저장소로 푸시하려고했습니다.

git push https://github.com/SiddharthChoudhary/ClientServerCloudComputing.git

그러나 결과가 나오지 않아서 더 깊이 들어가서 시도했습니다.

git push --set-upstream https://github.com/SiddharthChoudhary/ClientServerCloudComputing.git master

그리고 효과가있었습니다. 따라서 사용자 이름과 비밀번호를 묻는 메시지가 나타납니다. 나는 또한 토큰 을 생성했으며 암호 대신 토큰을 붙여 넣어 성공적으로 완료했습니다.

  1. 토큰을 생성하려면 Github 계정과 개발자 설정에서 다른 토큰을 생성하십시오.
  2. 그것을 얻은 후, 해당 토큰을 복사하여 암호 프롬프트가 표시되면 붙여 넣습니다.

6

아주 간단한 측면에서 일단 다른 가지가 있으면 가지를 밀기 위해 사용할 수 없습니다

git push

그러나 푸시하려는 지점을 체크 아웃하더라도 분기를 지금 지정해야합니다.

git push origin <feature_branch>

심지어 master지점이 될 수있는 곳


5

나는 커밋 잊어 버리는 간단한 오류를 만들었습니다.

git commit -m "first commit"

그런 다음 git push origin master일했다.


4

나는 같은 문제가 있었다

여기에 이미지 설명을 입력하십시오

아래 명령을 사용하여 해결했습니다.

$ git branch --set-upstream develop origin/develop

.git 폴더의 구성 파일에 구성을 추가합니다.

여기에 이미지 설명을 입력하십시오


3

처음 사용 git pull origin your_branch_name 후use git push origin your_branch_name


죄송합니다. 어리석은 소리입니다. 내 지점 이름을 알 수있는 방법 리포지토리는 AWS에 있습니다.
— Pravinraj Venkatachalam

"git branch"사용
— Darius Miliauskas

3

macOS Sierra에서 저에게 도움이되는 간단한 해결책이 있습니다. 이 두 명령을 수행했습니다.

git pull --rebase git_url(Ex: https://github.com/username/reponame.git)
git push origin master

향후 푸시 후 업스트림에 치명적인 오류가 표시되면 다음을 실행하십시오.

git push --set-upstream origin master

0

1. 컴퓨터와 github 관련. SSH를 사용하십시오. 컴퓨터 코드이므로 확인 된 이미지 입력 ​​설명 을 제출할 필요가 없습니다.

2. 자식 빈 폴더를 관리 할 수 ​​없습니다. 따라서 파일에 저장된 이러한 readme.md를 작성해야합니다. 그렇지 않으면 파일을 찾을 수 없습니다.

3. 귀하의 지역 프로젝트는 새로운 프로젝트가 아닙니다. 부디

git init

git remote add origin +"githublink"

git add .

git commit -m "" 다시 가다.

4. 그런 다음 git pull origin master(키)

5. 마침내 git push origin master(모든 문제를 해결하십시오).

http://my.oschina.net/psuyun/blog/123005参考 链接


0

코드를 마스터 브랜치로 직접 푸시하려는 경우 명령을 사용하십시오.

git push origin master

도움이됩니다.


0

또한 같은 오류가 발생했습니다. 복제하고 밀어 넣으려고했기 때문이라고 생각합니다. $ git push -u origin master 이것은 올바른 명령입니다.

계산 개체 : 8, 완료. 최대 2 개의 스레드를 사용한 델타 압축. 압축 객체 : 100 % (4/4) 완료 객체 쓰기 : 100 % (8/8), 691 바이트 | 46.00 KiB / s 완료 총 8 (델타 1), 재사용 된 0 (델타 0) 원격 : 델타 해결 : 100 % (1/1) 완료.

  • [신규 지점] 마스터-> 마스터 지점에서 원격 지점 마스터를 추적하도록 설정되는 지점 마스터.

    It was successful. Try to create new u branch 
    

0

나는 같은 문제가 있었는데, 그 이유는 내가 지점을 지정하는 것을 잊어 버렸다는 것입니다.

git push myorigin feature/23082018_my-feature_eb

0

필자는 쓰기 권한이없는 개인 저장소로 변경 사항을 적용하고있었습니다. 푸시 또는 풀 작업을 수행하는 동안 유효한 액세스 권한이 있는지 확인하십시오.

직접 확인할 수 있습니다


1
"직접 확인"이란 무엇입니까?
— Mike Poole

0

나를 위해 숨겨진 숨겨진 .git을 삭제했기 때문입니다. 폴더를 입니다.

폴더를 삭제하고 다시 복제하고 변경하여 다시 수정했습니다.


0

어느 지점에 있더라도 다음을 사용할 수 있습니다.

git push origin head -u

이렇게하면 원격에서 동일한 이름의 새 분기가 자동으로 생성됩니다.


-1

이 문제를 해결하려면 코드 git자체 를 체크 아웃하는 동안 다음과 같은 명령을 제공해야합니다.

git checkout -b branchname origin/branchname

여기에서는 기본적으로 설정 the upstream branch되어 있으므로 언급 된 문제에 직면하지 않습니다.


-2

나에게 문제는 내 지점의 이름에서 나옵니다 : "# name-of-my-branch", "#"없이 작동합니다!

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