การส่งจากที่เก็บในเครื่องไปยัง GitHub ที่โฮสต์รีโมต


113

ฉันสร้างที่เก็บในเครื่องของโฟลเดอร์โซลูชัน Visual Studio 2010 โดยใช้ Git GUI บนเครื่อง dev ของฉัน จากนั้นฉันสร้างที่เก็บระยะไกลในบัญชี GitHub ของฉัน ตอนนี้ฉันกำลังมองหาวิธีพุชที่เก็บในเครื่องของฉันไปยังที่เก็บระยะไกล

ใน SVN ฉันสามารถคอมมิตโดยใช้ TortoiseSVN และการเปลี่ยนแปลงจะถูกผลักไปที่ที่เก็บระยะไกล ฉันไม่เห็นเครื่องมือแบบนี้สำหรับ Git

ฉันจะส่ง repo ในพื้นที่ของฉันไปยัง repo ระยะไกลบน GitHub ได้อย่างไร

คำตอบ:


230

คุณพุชที่เก็บโลคัลของคุณไปยังที่เก็บแบบรีโมตโดยใช้git pushคำสั่งหลังจากสร้างความสัมพันธ์ระหว่างทั้งสองด้วยgit remote add [alias] [url]คำสั่งก่อน หากคุณเยี่ยมชมที่เก็บ Github ของคุณจะแสดง URL ที่จะใช้สำหรับการพุช ก่อนอื่นคุณจะต้องป้อนสิ่งต่างๆเช่น:

git remote add origin git@github.com:username/reponame.git

เว้นแต่คุณจะเริ่มต้นด้วยการรันgit cloneกับที่เก็บระยะไกลซึ่งในกรณีนี้ได้ทำขั้นตอนนี้ให้คุณแล้ว

และหลังจากนั้นคุณจะพิมพ์:

git push origin master

หลังจากกดครั้งแรกคุณสามารถพิมพ์:

git push

เมื่อคุณต้องการอัพเดตที่เก็บระยะไกลในอนาคต


1
คุณพิมพ์ '~ origin ~' หรือแค่ 'origin'? คุณควรหลีกเลี่ยงเครื่องหมายทิลเดอที่ดีที่สุดเนื่องจากมีความหมายต่อ Git
GoZoner

1
สำหรับฉันมันใช้ได้กับ https: github.com/username/repo.git เท่านั้นฉันไม่รู้ว่าทำไม
eLRuLL

7
ฉันต้องไปgit pull origin masterก่อนแล้วดัน
มองซิเออร์

10
ทำไมพวกเขาอธิบายสิ่งนี้ในเอกสารปกติไม่ได้ มันเป็นความลับหรือบางอย่าง ขอบคุณ!
R Claven

1
@RClaven หลังจากที่คุณสร้าง repo ใหม่บน Github แล้วจะมีการอธิบายอย่างชัดเจนในหน้าจอถัดไปในส่วนที่ระบุว่า "พุชที่เก็บที่มีอยู่จากบรรทัดคำสั่ง"
mujimu

3

ชนิด

git push

จากบรรทัดคำสั่งภายในไดเร็กทอรีที่เก็บ


1
ฉันคิดว่ามันจะบอกเป็นนัยว่าใช้ gitbash แทน gitgui?
quakkels

ใช่ถ้าคุณใช้ระบบที่ไม่มีบรรทัดคำสั่งที่มีคุณสมบัติครบถ้วนในตัวนั่นคือสิ่งที่จะกล่าวถึงในคำถาม
Gareth

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

อาจเป็นช่วงการเรียนรู้ที่สูงชัน แต่ความเห็นร่วมกันคือประโยชน์ที่ได้รับมากกว่าข้อเสีย
Gareth

ขอบคุณ. ฉันไม่ต้องการที่จะต้องดูนานกว่านี้ IDE ยังคงแข็งขึ้นเรื่อย ๆ ตามขนาด ขอบคุณอีกครั้ง.
Eric Leroy

3

การโค่นล้มโดยปริยายมีที่เก็บรีโมตเชื่อมโยงอยู่ตลอดเวลา ในทางกลับกัน Git อนุญาตให้มี "รีโมท" จำนวนมากซึ่งแต่ละอันหมายถึงสถานที่ห่างไกลเดียวที่คุณสามารถผลักหรือดึงจาก

คุณต้องเพิ่มรีโมตสำหรับที่เก็บ GitHub ลงในที่เก็บในเครื่องของคุณจากนั้นใช้git push ${remote}หรือgit pull ${remote}เพื่อผลักและดึงตามลำดับ - หรือเทียบเท่า GUI

Pro Git พูดถึงรีโมทที่นี่: http://git-scm.com/book/ch2-5.html

ความช่วยเหลือ GitHub ยังกล่าวถึงพวกเขาในลักษณะ "เน้นงาน" เพิ่มเติมที่นี่: http://help.github.com/remotes/

เมื่อคุณเชื่อมโยงทั้งสองแล้วคุณจะสามารถผลักหรือดึงกิ่งไม้ได้


1

สิ่งนี้ใช้ได้กับ GIT เวอร์ชัน 1.8.4 ของฉัน:

  1. จากโฟลเดอร์ที่เก็บในเครื่องให้คลิกขวาและเลือก ' Git Commit Tool '
  2. ที่นั่นให้เลือกไฟล์ที่คุณต้องการอัปโหลดภายใต้ " การเปลี่ยนแปลงที่ไม่ได้จัดเตรียม " และคลิกปุ่ม " ขั้นตอนที่เปลี่ยนแปลง " (ในตอนแรกคุณสามารถคลิกที่ปุ่ม ' สแกนใหม่ ' เพื่อตรวจสอบไฟล์ที่แก้ไขและยังไม่ได้อัปโหลด)
  3. เขียน Commit Message แล้วคลิกปุ่ม ' Commit '
  4. ตอนนี้คลิกขวาในโฟลเดอร์อีกครั้งแล้วเลือก ' Git Bash '
  5. พิมพ์: git push origin masterและป้อนข้อมูลรับรองของคุณ เสร็จสิ้น

0

เปิดพรอมต์คำสั่งไปที่ไดเรกทอรีโครงการ

พิมพ์ git remote add สร้างตำแหน่งที่เก็บ git hub ของคุณด้วย git

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.