ส่งข้อผิดพลาดต้นกำเนิดต้นแบบบนที่เก็บใหม่


181

ฉันเพิ่งเริ่มใช้คอมไพล์กับ github ฉันทำตามคำแนะนำและพบข้อผิดพลาดในขั้นตอนสุดท้าย ฉันกำลังตรวจสอบในไดเรกทอรีที่มีอยู่ซึ่งไม่ได้ควบคุมแหล่งที่มาในปัจจุบัน (โครงการประมาณหนึ่งสัปดาห์) นอกเหนือจากนั้นกรณีการใช้งานของฉันควรเป็นเรื่องที่ค่อนข้างน่าสนใจ

นี่คือสิ่งที่เกิดขึ้น:

$ git push origin master
error: src refspec master does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'git@github.com:{username}/{projectname}.git'

คำแนะนำของ Github:

Global setup:

  Download and install Git
  git config --global user.name "Your Name"
  git config --global user.email {username}@gmail.com

Next steps:

  mkdir projectname
  cd projectname
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin git@github.com:{username}/{projectname}.git
  git push origin master

4
ดูเหมือนว่าการกระทำครั้งแรกไม่สามารถทำงานได้ไม่ว่าด้วยเหตุผลใด บันทึก Git ช่วยให้ฉันเห็นหรือไม่ว่าการกระทำที่กระทำ ฉันประสบความสำเร็จในการลองอีกครั้งในวันถัดไป ขอบคุณ!
sutee

1
หากคุณไม่เพิ่มไฟล์ใด ๆ คอมมิทหรือรัน git init ก็จะพบปัญหาประเภทนี้เสมอ ดังนั้นให้เรียกใช้ทุกครั้งgit statusเพื่อดูว่าทุกอย่างเรียบร้อยดีหรือไม่
raduken

ข้อผิดพลาดที่คล้ายกันเมื่อสร้างสาขาไปยังที่เก็บ git ที่สร้างขึ้นใหม่จากรหัสที่มีอยู่ แก้ไขข้อผิดพลาดโดยการโคลนที่เก็บ git
user553620

การทำซ้ำที่เป็นไปได้ของsrc refspec master ไม่ตรงกับเมื่อทำการคอม

คำตอบ:


137

ข้อความแสดงข้อผิดพลาดนำไปสู่ข้อสรุปที่ว่าคุณไม่มีmasterสาขาในที่เก็บในเครื่องของคุณ ผลักดันสาขาการพัฒนาหลักของคุณ ( git push origin my-local-master:masterซึ่งจะเปลี่ยนชื่อเป็นmasterบน GitHub) หรือทำการกระทำก่อน คุณไม่สามารถผลักดันพื้นที่เก็บข้อมูลที่ว่างเปล่าอย่างสมบูรณ์


10
ฉันมีปัญหา "พื้นที่เก็บข้อมูลว่างเปล่า" เนื่องจากคู่มือที่เกี่ยวข้องอ้างอิงโดย GitHub ( beans.seartipy.com/2008/12/09/… ) ไม่ได้พูดถึงคำสั่ง "git commit -m 'คำสั่ง commit ครั้งแรก'" เมื่อฉันใช้มันทุกอย่างก็โอเค!
Pascal Lindelauf

3
ฉันเพิ่งลืมที่จะกระทำการเปลี่ยนแปลงของฉัน
Nick Josevski

เมื่อคุณพูดgit push origin my-local-master:masterมันหมายความว่าmy-local-masterอย่างไร ถ้าฉันมีชื่อ CSS-pix ในโฟลเดอร์ของฉันซึ่งฉันต้องการกด
Nofel

187

ฉันมีปัญหาเดียวกันแล้วตบตัวเองในหัวเพราะฉันไม่ได้เพิ่มไฟล์โครงการของฉัน

git add -A
git commit -am "message"
git push origin master

ใช่ฉันลองแล้ว แต่วิธีแก้ปัญหาสำหรับฉันคือใช้คำสั่งของคุณแทน: git add * ไวยากรณ์ที่ถูกต้องคือ: git add
Eric Martindale

5
สิ่งเดียวกันหรือไม่ ... jeesh ขอบคุณ!
cbmeeks

28

ฉันมีปัญหาเดียวกัน ฉันลบโฟลเดอร์. git แล้วทำตามคำสั่งต่อไปนี้

  1. $ git init
  2. $ git add .
  3. $ git remote add origin git@gitorious.org:project/project.git
  4. $ git commit -m "Initial version"
  5. $ git push origin master

9

ฉันมีปัญหาเดียวกัน มันแก้ไขปัญหาของฉัน ถ้าคุณเริ่มต้นคอมไพล์ คุณต้องทำบนเทอร์มินัล

1) git add .

2)git commit -m "first commit"

สำหรับส่งไปยัง bitbucket

3) git push -u origin --all # pushes up the repo and its refs for the first time


6

ฉันมีปัญหาเดียวกันในขณะที่สร้างที่เก็บ Git แรกของฉันตลอดไป ฉันพิมพ์ผิดในการสร้างรีโมท Git - ปรากฎว่าฉันไม่ได้ใช้ประโยชน์จากชื่อที่เก็บของฉัน

 git remote add origin git@github.com:Odd-engine

ก่อนอื่นฉันถอดรีโมตเก่าออกโดยใช้

git remote rm origin

จากนั้นฉันก็สร้างต้นกำเนิดขึ้นใหม่ตรวจสอบให้แน่ใจว่าชื่อต้นกำเนิดของฉันถูกพิมพ์อย่างแม่นยำเหมือนกับที่ต้นกำเนิดของฉันสะกด

git remote add origin git@github.com:Odd-Engine

ไม่มีข้อผิดพลาด! :)


4

ฉันมีข้อผิดพลาดแบบเดียวกันขณะที่ Bombe บอกว่าฉันไม่มีสาขาท้องถิ่นชื่อ master ใน config ของฉันแม้ว่าจะมีgit branchรายการสาขาที่ชื่อว่า master ...

หากต้องการแก้ไขให้เพิ่มส่วนนี้ใน. git / config ของคุณ

[branch "master"]
    remote = origin
    merge = refs/heads/master

ค่อนข้างแฮ็ก แต่ทำงานได้ดี


3

ตรวจสอบให้แน่ใจว่าคุณอยู่ในสาขาอย่างน้อยในสาขาต้นแบบ

พิมพ์:

git branch

คุณควรเห็น:

ผู้ใช้อูบุนตู: ~ / git / turmeric-releng $ git branch

* (no branch)
master

จากนั้นพิมพ์:

git checkout master

จากนั้นการเปลี่ยนแปลงทั้งหมดของคุณจะพอดีกับสาขาหลัก (หรือสาขาที่คุณเลือก)


2

ในการแก้ไขปัญหาฉันใช้คำสั่งต่อไปนี้เพื่อจัดวางไฟล์ทั้งหมดของฉันให้เป็นคอมมิท

$ git add .
$ git commit -m 'Your message here'
$ git push origin master

ปัญหาที่ฉันมีคือคำสั่ง -u ใน git add ไม่ได้เพิ่มไฟล์ใหม่จริง ๆ และคำสั่ง git add -A ไม่ได้รับการสนับสนุนในการติดตั้ง git ของฉัน ดังนั้นตามที่ระบุไว้ในหัวข้อนี้ความมุ่งมั่นที่ฉันพยายามเวทีว่างเปล่า


มันใช้งานได้สำหรับฉัน! ฉันพยายามด้วยคำสั่งมากเกินไปและไม่มีอะไรเปลี่ยนแปลง ... แต่นี่เป็นทางออกสำหรับฉัน!
karensantana

1

ฉันแก้ไขปัญหาของฉัน ....

ไม่แน่ใจว่าปัญหาคืออะไร แต่ใช้อินเทอร์เฟซ gitx เพื่อส่งไฟล์ staged ของฉันแล้ว ...

$ git push origin master

ทำงาน ...

ฉันมีปัญหาเดียวกัน ...

สร้างโฟลเดอร์ใหม่ที่เพิ่มในไฟล์เทมเพลต bort ...

$ git commit -m 'first commit'

$ git remote add origin git@github.com:eltonstewart/band-of-strangers.git

$ git push origin master

จากนั้นฉันได้รับข้อผิดพลาดเดียวกัน ...

ข้อผิดพลาด: src refspec master ไม่ตรงกับใด ๆ
ร้ายแรง: ปลายระยะไกลวางสาย
ผิดพลาดโดยไม่คาดคิด: ไม่สามารถผลักดันผู้อ้างอิงบางคนไปที่ 'git@github.com: eltonstewart / band-of-strangers.git'


1
error: failed to push some refs to 'git@github.com:{username}/{projectname}.git'

ยกเว้นว่าคุณกำลังใช้งานข้อความแสดงข้อผิดพลาดทั่วไปดูเหมือนว่าคุณจะgit@github.com:{username}/{projectname}.gitเป็น repo Git ระยะไกลอย่างแท้จริง คุณควรกรอก{username}ชื่อผู้ใช้ GitHub และ{projectname}ชื่อโครงการของคุณ


1
cd  app 

git init 

git status 

touch  test 

git add . 

git commit  -a  -m"message to log " 

git commit  -a  -m "message to log" 

git remote add origin 

 git remote add origin git@git.google.net:cherry 

git push origin master:refs/heads/master

git clone git@git.google.net:cherry test1

1

ฉันมีปัญหาเดียวกัน ฉันสร้างไดเรกทอรีในเครื่องโดยไม่ตั้งใจด้วยตัวพิมพ์เล็ก เมื่อเปลี่ยนกรณีปัญหาแก้ไขได้ (แต่เสียเวลา 1.5 ชั่วโมง :() ลองดูชื่อไดเรกทอรีและชื่อ repo ทางไกลของคุณเหมือนกัน


1

ดูเหมือนว่าคำถามนี้จะมีคำตอบจำนวนหนึ่งอยู่แล้ว แต่ฉันจะชั่งใจเรื่องของฉันเพราะฉันไม่ได้เห็นปัญหาที่ฉันมี

ฉันมีข้อผิดพลาดนี้เช่นกันในที่เก็บ github ใหม่ ปรากฎว่าผู้ใช้ที่ฉันกดจากไม่มีการเข้าถึงแบบพุช ด้วยเหตุผลบางอย่างส่งผลให้เกิดข้อผิดพลาด "ข้อผิดพลาดที่เก็บไม่พบที่เก็บข้อมูล" แทนที่จะเป็นข้อผิดพลาดการเข้าถึงบางประเภท

อย่างไรก็ตามฉันหวังว่าสิ่งนี้จะช่วยให้วิญญาณที่น่าสงสารที่เจอปัญหาเดียวกัน


1

มีปัญหาเดียวกันเมื่อนาทีที่แล้วจากนั้นแก้ไข

สร้างพื้นที่เก็บข้อมูลใน Github เรียกว่า wordpress ...

cd wordpress
git init
git add -A
git commit -am “WordPress 3.1.3″ or any message
git remote add origin git@github.com:{username}/wordpress.git
git push -u origin master

สิ่งนี้ควรใช้เพื่อแก้ไขปัญหา refspec


ขอบคุณมันใช้งานได้สำหรับฉัน .. ฉันรู้ได้อย่างไรว่า "git add" ต่างกันอย่างไร และ "git add -A"
Satish Karuturi

ไม่แตกต่างกันถ้าคุณอยู่บน v 2.x จะสำคัญก็ต่อเมื่อคุณอยู่ในตารางตรวจสอบ 1.x สำหรับผู้อ้างอิงในอนาคต: stackoverflow.com/a/26039014/640727
David Chase


0

ฉันคิดว่าในรุ่นเก่าของ git คุณควรคอมมิทไฟล์อย่างน้อยหนึ่งไฟล์ก่อนจากนั้นคุณสามารถ "push origin master" อีกครั้ง


0

ดี .. มันเป็นปัญหากับไดเรกทอรีที่ว่างเปล่าเท่านั้นไม่มีอะไรอื่น ฉันได้รับการแก้ไขปัญหาของฉันโดยการสร้างหนึ่งไฟล์ไบนารีในแต่ละไดเรกทอรีแล้วเพิ่มพวกเขา


0

การเพิ่มเริ่มต้นและการทำงานเหมือนมีเสน่ห์ ฉันเดาว่ามันเป็นเพียงเรื่องของการทำความเข้าใจวิธีการของ Git ในการจัดการโครงการภายในพื้นที่เก็บข้อมูล

หลังจากนั้นฉันก็สามารถดันข้อมูลของฉันได้ทันทีโดยไม่ต้องยุ่งยาก


0

ฉันเพิ่งพบปัญหานี้และดูเหมือนว่าเกิดจากการที่ฉันไม่ได้เพิ่มข้อความการส่งข้อความที่กำหนดเองไว้เหนือข้อความส่งข้อความเริ่มต้น (ฉันคิดว่าเหตุใดจึงต้องเขียน "initial commit" เมื่อเห็นอย่างชัดเจนว่าสิ่งเดียวกันในข้อความที่สร้าง Git ด้านล่าง)

ปัญหาได้รับการแก้ไขเมื่อฉันลบไดเรกทอรี. git เริ่มต้นไดเรกทอรีโครงการใหม่สำหรับ Git เพิ่ม GitHub ระยะไกลเพิ่มไฟล์ทั้งหมดไปยังสเตจใหม่มุ่งมั่นกับข้อความส่วนตัวด้านบนข้อความที่สร้างขึ้นอัตโนมัติและผลักดันไปที่ ต้นกำเนิด / Master


0

เมื่อคุณสร้างพื้นที่เก็บข้อมูลบน Github มันจะเพิ่มไฟล์ README.md ไปยัง repo และเนื่องจากไฟล์นี้อาจไม่มีอยู่ในไดเรกทอรีท้องถิ่นของคุณหรือบางทีมันอาจมีเนื้อหา git push ที่แตกต่างกัน เพื่อแก้ปัญหาที่ฉันทำ:

git pull origin master
git push origin master

เวลานี้มันใช้งานได้ตั้งแต่ฉันมีไฟล์ README.md


0

ก่อนที่จะคอมมิทครั้งแรกลองเพิ่มไฟล์เช่น readme.txt สิ่งนี้จะ "บังคับ" repo ระยะไกลสร้างต้นแบบสาขาในกรณีที่ไม่มีอยู่ มันทำงานกับฉัน


0

นี่เป็นคำถามที่เก่ามาก แต่สำหรับคนใหม่ที่จะมาจบที่นี่เหมือนฉัน โซลูชันนี้ใช้สำหรับ

error: src refspec master does not match any.

เกิดข้อผิดพลาดสำหรับ repo ใหม่ที่สร้างขึ้น

คุณต้องเพิ่มของคุณ

git config user.email "your email"
git config user.name "name"

หลังจากเพิ่มอีเมลและชื่อเพิ่มไฟล์เพื่อคอมไพล์และกระทำ

git add .
git commit -m "message"

มันจะทำงานเหมือนมีเสน่ห์


0

ฉันมีข้อผิดพลาดนี้เช่นกันฉันให้คำมั่นว่าจะไม่ผลักโครงการที่ว่างเปล่าเหมือนที่คนส่วนใหญ่ทำ แต่ไม่ได้ผล

ปัญหาคือ ssl, y ใส่ต่อไป

git config --system http.sslverify false

และหลังจากนั้นทุกอย่างทำงานได้ดี :)

git push ต้นกำเนิดมาสเตอร์


0

ฉันมีปัญหา / ข้อผิดพลาดเหมือนกันฉันกำลังทำgit push -u origin masterแทนฉันเพิ่งทำไปgit push origin masterและใช้งานได้


0

ไปที่แผงควบคุม -> จัดการข้อมูลประจำตัวของคุณและลบข้อมูลประจำตัว GitHub ถ้ามี


0

กระแทกด้ายเก่า

หากคุณได้สร้างพื้นที่เก็บข้อมูลบน Github ด้วยReadmeหรือ.gitignoreคุณอาจต้องรีบูตโลคัลมาสเตอร์ด้วยรีโมตมาสเตอร์ เพราะหากคุณใช้เครื่องมือ scaffolding โครงการเช่น create-app มันจะสร้างไฟล์เหล่านี้ให้คุณและต้นแบบระยะไกลจะต้องซิงค์กับโลคัลของคุณก่อนที่จะส่ง

หากคุณกำลังสร้างที่เก็บว่างบน Github จากนั้นคุณสามารถผลักดัน


-1

ฉันมีปัญหาเดียวกันผู้ใช้บางคนได้ตอบคำถามนี้ ก่อนที่จะผลักดันคุณจะต้องมีความมุ่งมั่นครั้งแรกของคุณ ตอนนี้สำหรับผู้ใช้ใหม่ฉันได้สร้างชุดของขั้นตอนง่าย ๆ ก่อนหน้านั้นคุณต้องติดตั้ง git และรันใน command line:

  • git config user.email "อีเมลของคุณ"
  • git config user.name "ชื่อ"

ขั้นตอนในการสร้างที่เก็บระยะไกล (ฉันใช้ดรอปบ็อกซ์เป็นที่เก็บระยะไกล):

1. create a directory in Dropbox (or on your remote server)
2. go to the Dropbox dir (remote server dir)
3. type git command: git init --bare
4. on your local drive create your local directory
5. go to local directory
6. type git command: git init
7. add initial files, by typing git command:: git add <filename> 
8. type git command: git commit -a -m "initial version" (if you don't commit you can't do the initial push
9. type git command: git remote add name <path to Dropbox/remote server> 
10. git push name brach (for first commit the branch should be master)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.