ฉันจะเพิ่มโซลูชันที่มีอยู่ใน GitHub จาก Visual Studio 2013 ได้อย่างไร


208

ฉันได้ตรวจสอบเว็บเพจหลาย ๆ หน้าในการรวม Git ใหม่ใน VS 2013 และพวกเขาไม่ได้เกี่ยวข้องกับการเพิ่มโซลูชันที่มีอยู่ให้กับ Github อันที่จริงฉันไม่สามารถใช้ GitHub ได้มากนักแทนที่จะใช้ Visual Studio Online

ทุกคนสามารถบอกฉันได้ว่าฉันเริ่มต้นจากโซลูชันที่มีอยู่และเพิ่มลงใน Github โดยใช้เครื่องมือใน VS 2013


ทำไมไม่เพียงทำจากบรรทัดคำสั่ง? มันควรจะเป็นเพียงประมาณ 5 คำสั่ง(สร้าง repo เพิ่มโครงการเพื่อ repo [2 คำสั่ง] เพิ่มระยะไกลผลักไปที่ระยะไกล) ? คำสั่งทั้งหมดมีการบันทึกไว้ค่อนข้างดี
R0MANARMY

2
การเพิ่มผ่าน github สำหรับ VS จะเพิ่มปุ่ม "Open with Visual Studio" ในหน้า github เล็กน้อย แต่มีประโยชน์ :)
Ateik

คำตอบ:


348

ตกลงนี้ใช้ได้สำหรับฉัน

  1. เปิดโซลูชันใน Visual Studio 2013
  2. เลือกไฟล์ | เพิ่มการควบคุมแหล่งที่มา
  3. เลือกผู้ให้บริการ Microsoft Git

ที่สร้างที่เก็บ GIT ในพื้นที่

  1. ท่องไปที่ GitHub
  2. สร้างที่เก็บใหม่อย่าเลือกเริ่มต้นพื้นที่เก็บข้อมูลนี้ด้วย README

ที่สร้างที่เก็บว่างโดยไม่มีสาขาหลัก

  1. เมื่อสร้างเปิดที่เก็บและคัดลอก URL (อยู่ทางด้านขวาของหน้าจอในเวอร์ชันปัจจุบัน)
  2. กลับไปที่ Visual Studio
    • ตรวจสอบให้แน่ใจว่าคุณได้เลือกผู้ให้บริการ Microsoft Git ภายใต้เครื่องมือ / ตัวเลือก / การควบคุมแหล่ง / การเลือกปลั๊กอิน
  3. เปิด Team Explorer
  4. เลือกหน้าหลัก | มุ่งมั่นที่ไม่ได้ซิงค์
  5. ป้อน URL GitHub ลงในช่องสีเหลือง (ใช้ HTTPS URL ไม่ใช่ค่าเริ่มต้นที่แสดง SSH หนึ่ง)
  6. คลิกเผยแพร่
  7. เลือกหน้าหลัก | การเปลี่ยนแปลง
  8. เพิ่มคอมมิทคอมเม้นท์
  9. เลือก Commit และ Push จากรายการแบบหล่นลง

โซลูชันของคุณอยู่ใน GitHub แล้ว


4
ฉันต้องการเพิ่มว่าไม่รองรับ ssh ในปัจจุบันดังนั้นคุณต้องใช้โปรโตคอล https หากมีการใช้ URL ที่ไม่ถูกต้องอยู่แล้วคุณสามารถใช้ต้นกำเนิด set-url git ระยะไกลได้ https: // ...เพื่อเปลี่ยน
Michael Dietrich

1
ขอบคุณสิ่งนี้ช่วยฉัน ตรวจสอบการเริ่มต้นใน GitHub ได้ทำลายมันสำหรับฉัน
josha76

6
หากคุณกระโดดปืนและสร้าง repo ด้วย readme คุณสามารถกู้คืนได้โดยการเปิด git shell (bash หรือ ps) และจากไดเรกทอรีรากพิมพ์ git remote rm สิ่งนี้จะนำกล่องข้อความ URL กลับมาใน VS2013 และอนุญาตให้คุณเพิ่มเซิร์ฟเวอร์ระยะไกลอีกครั้ง อาจมีวิธีที่จะทำใน VS แต่ฉันหามันไม่เจอ
บ๊อบ

4
เมื่อฉันคลิกเผยแพร่จะบอกฉัน: You must commit changes to your local repository before you can publish.ฉันต้องทำอย่างไร ฉันจะส่งการเปลี่ยนแปลงไปยังที่เก็บในเครื่องของฉันได้อย่างไร
Mark Kramer

4
คุณคลิกที่หน้าแรก | การเปลี่ยนแปลง จากนั้นป้อนข้อความยืนยันในกล่องสีเหลืองและคลิกกระทำ
Richard210363

82

มีวิธีที่ง่ายกว่ามากในการทำเช่นนี้ซึ่งคุณไม่จำเป็นต้องทำอะไรนอก Visual Studio

  • เปิดโครงการของคุณใน Visual Studio
  • ไฟล์> เพิ่มการควบคุมแหล่งที่มา
  • เปิด Team Explorer คลิกที่ปุ่มหน้าแรกไปที่ " ซิงค์ " จากนั้นคุณจะพบ " เผยแพร่สู่ GitHub " คลิกที่ " เริ่มต้น "
  • พิมพ์หัวเรื่องของที่เก็บและคำอธิบายของคุณ (เลือกได้)
  • คลิกที่ " เผยแพร่ "

นั่นคือทั้งหมดที่ ปลั๊กอิน Visual Studio github ที่สร้างขึ้นโดยอัตโนมัติสำหรับคุณและกำหนดค่าทุกอย่าง ตอนนี้เพียงแค่คลิกที่หน้าแรกและเลือกแท็บ " การเปลี่ยนแปลง " และในที่สุดก็กระทำการกระทำแรกของคุณ


17
อย่าได้รับคะแนนล้นหลาม อันนี้ใช้ได้ผลและง่ายกว่ามากอย่างน้อยใน VS2015
dotNET

2
ฉันไม่พบสิ่ง github ดังนั้นฉันต้องใช้สิ่งนี้: visualstudio.github.com
ʍѳђઽ ૯ ท

นี่คือสิ่งที่ฉันกำลังมองหา อย่างไรก็ตามประสบการณ์ของฉันแตกต่างกันเล็กน้อย เมื่อฉันกดAdd to source controlฉันถูกนำไปที่หน้าจอโดยตรงเพื่อเพิ่มการกระทำแรกกับสิ่งที่ดูเหมือนจะเป็นพื้นที่เก็บข้อมูล git ท้องถิ่นที่สร้างขึ้นโดยอัตโนมัติซึ่งเป็นสิ่งที่ฉันต้องการ ชุมชน VS2015
parker.sikand

3
ฉันค่อนข้างมั่นใจว่าโซลูชันนี้จะถือว่าส่วนขยาย Github สำหรับ VS2015 ได้รับการติดตั้งแล้ว คุณสามารถรับได้ที่นี่เหมือนความคิดเห็นด้านบนอธิบาย: visualstudio.github.com
Greg

2
เพียงใช้วิธีนี้เพื่อผลักดันโซลูชัน VS2017 ไปยังที่เก็บ Gogs ในพื้นที่
Peter M

12

Richard210363 ตอบคำถามนี้ถูกต้องแล้ว

อย่างไรก็ตามฉันอยากจะชี้ให้เห็นว่ามีวิธีอื่นในการทำเช่นนี้และเตือนว่าควรหลีกเลี่ยงวิธีการอื่นเนื่องจากจะทำให้เกิดปัญหา

ตามที่ R0MANARMY ระบุไว้ในความคิดเห็นกับคำถามดั้งเดิมคุณสามารถสร้าง repo จากโฟลเดอร์โซลูชันที่มีอยู่โดยใช้บรรทัดคำสั่ง git หรือแม้แต่ Git Gui อย่างไรก็ตามเมื่อคุณทำเช่นนี้จะเพิ่มไฟล์ทั้งหมดที่อยู่ใต้โฟลเดอร์นั้นลงใน repo รวมถึงไฟล์ตัวเลือกผู้ใช้ build (bin / obj / โฟลเดอร์) ไฟล์ (. suo, .csproj.user) และไฟล์อื่น ๆ อีกมากมายที่อาจอยู่ในโซลูชันของคุณ โฟลเดอร์ที่คุณไม่ต้องการรวมไว้ใน repo ของคุณ ผลข้างเคียงที่ไม่พึงประสงค์อย่างหนึ่งของสิ่งนี้คือหลังจากที่สร้างแบบโลคัลเอาต์พุตบิลด์จะปรากฏขึ้นในรายการ "การเปลี่ยนแปลง" ของคุณ

เมื่อคุณเพิ่มโดยใช้ "เลือกไฟล์ | เพิ่มไปยังตัวควบคุมแหล่งที่มา" ใน Visual Studio อย่างชาญฉลาดมันรวมถึงโครงการที่ถูกต้องและไฟล์โซลูชั่นและออกจากคนอื่น ๆ อีกทั้งยังสร้างไฟล์. gitignore ที่ช่วยป้องกันไม่ให้ไฟล์ที่ไม่ต้องการเหล่านี้ถูกเพิ่มลงใน repo ในอนาคต

หากคุณได้สร้าง repo ที่มีไฟล์ที่ไม่ต้องการเหล่านี้แล้วเพิ่มไฟล์. gignignore ในภายหลังไฟล์ที่ไม่ต้องการจะยังคงเป็นส่วนหนึ่งของ repo และจะต้องลบออกด้วยตนเอง ... มันอาจจะง่ายกว่าที่จะลบ repo และเริ่มต้นใหม่อีกครั้งโดยการสร้าง repo วิธีที่ถูกต้อง


ฉันใช้วิธีที่เสนอโดย MaKiPL มันได้ผล และมันไม่มีข้อบกพร่องที่อธิบายโดย jjjjs ฉันพบวิธีที่เสนอโดย MaKiPL ง่ายกว่าการใช้คำสั่ง Git
Glenn garson

6
  • จากเมนู Team Explorer คลิก "เพิ่ม" ใต้ส่วนที่เก็บ Git (คุณจะต้องเพิ่มไดเรกทอรีโซลูชันลงใน Local Git Repository)
  • เปิดโซลูชันจาก Team Explorer (คลิกขวาที่โซลูชันเพิ่มเติม - เปิด)
  • คลิกที่ปุ่มกระทำและมองหาลิงก์ "ดัน"

Visual Studio ควรถามข้อมูลประจำตัวของ GitHub ของคุณแล้วทำการอัปโหลดโซลูชันของคุณต่อไป

เนื่องจากฉันมีบัญชี Windows ของฉันเชื่อมต่อกับ Visual Studio เพื่อทำงานกับ Team Foundation ฉันไม่ทราบว่าทำงานได้หรือไม่หากไม่มีบัญชี Visual Studio จะติดตามว่าใครทำหน้าที่นั้นดังนั้นหากคุณไม่ได้ลงชื่อเข้าใช้มันอาจจะถามคุณก่อน


3
ไม่มีส่วนเพิ่มและไม่มี Git ใน Team Explorer ของฉัน
Richard210363

4

ฉันเข้าใจว่าคำถามนี้เกี่ยวข้องกับ Visual Studio GUI แต่ผู้ถามอาจลองใช้เคล็ดลับนี้ได้เช่นกัน เพียงแค่ให้มุมมองที่แตกต่างในการแก้ปัญหานี้

ฉันชอบใช้เทอร์มินัลเป็นจำนวนมากสำหรับ GIT ดังนั้นนี่คือขั้นตอนง่าย ๆ :

requisites ก่อน ...

  • ถ้าเป็น Linux หรือ MAC คุณควรติดตั้งแพ็คเกจ git บนเครื่องของคุณ
  • หากเป็น Windows คุณสามารถลองดาวน์โหลดซอฟต์แวร์ git bash ได้

ตอนนี้

  1. ไปที่ Github.com
  2. ในบัญชีของคุณสร้างที่เก็บใหม่
  3. อย่าสร้างไฟล์ใด ๆ ภายในที่เก็บ ทำให้มันว่างเปล่า คัดลอก URL ควรเป็นเช่น https://github.com/Username/ProjectName.git

  4. เปิดเทอร์มินัลแล้วเปลี่ยนเส้นทางไปยังไดเรกทอรีโครงการ Visual Studio ของคุณ

  5. กำหนดค่าข้อมูลรับรองของคุณ

    git config --global user.name "your_git_username"
    git config --global user.email "your_git_email"
    
  6. จากนั้นพิมพ์คำสั่งเหล่านี้

    git init
    git add .
    git commit -m "First Migration Commit"
    git remote add origin paste_your_URL_here
    git push -u origin master
    

เสร็จสิ้น ... หวังว่าจะช่วยได้


ในบรรทัดสุดท้าย, git push -u origin master นี้, ให้ข้อผิดพลาดว่า remote มีงานที่คุณไม่ได้อยู่ภายในเครื่อง (มันถูกสร้างขึ้นใหม่และว่างเปล่า) จากนั้นเมื่อพยายามดึงอีกครั้ง "ไม่มีข้อมูลการติดตามของสาขาปัจจุบัน" Git เป็นปริศนา
Blue Clouds

ลิงค์นี้ ให้คำอธิบายเกี่ยวกับคำสั่งที่กล่าวถึงข้างต้น
Tendai Mare

มันได้ผลจริงๆ ขอบคุณ ...
:)

0

ปัญหาของฉันคือเมื่อฉันใช้ https สำหรับ URL ระยะไกลมันไม่ทำงานดังนั้นฉันจึงใช้ http แทน สิ่งนี้ทำให้ฉันสามารถเผยแพร่ / ซิงค์กับ GitHub จาก Team Explorer ได้ทันที


ฉันหวังว่าฉันจะรู้ว่า "ไม่ทำงาน" หมายถึงอะไรฉันจึงมีความคิดที่ดีกว่าว่านี่อาจเกี่ยวข้องกับปัญหาที่ฉันมีหรือไม่
user34660

0

ไม่มีคำตอบเฉพาะสำหรับปัญหาของฉันดังนั้นนี่คือวิธีที่ฉันทำ

นี่สำหรับ Visual Studio 2015 และฉันได้สร้างที่เก็บข้อมูลบน Github.com แล้ว

หากคุณมีที่เก็บ URL แล้วให้คัดลอกมาไว้ใน visual studio:

  • ไปที่ Team Explorer
  • คลิกปุ่ม "ซิงค์"
  • มันควรจะมี 3 ตัวเลือกที่ระบุไว้พร้อมกับลิงค์ "เริ่มต้น"
  • ฉันเลือกลิงก์ "เริ่มต้นใช้งาน" กับ "เผยแพร่ไปยังที่เก็บข้อมูลระยะไกล" ซึ่งเป็นลิงก์ด้านล่าง
  • ช่องสีเหลืองจะปรากฏขึ้นเพื่อขอ URL เพียงวาง URL ที่นั่นและคลิกเผยแพร่

0

มันเป็นการคลิกน้อยใน VS2017 และถ้า repo ภายในเครื่องอยู่ข้างหน้า Git clone คลิกการควบคุมแหล่งที่มาจากเมนูโครงการป๊อปอัพ: สิ่งนี้จะแสดงกล่องโต้ตอบการเปลี่ยนแปลง Team Explorer: พิมพ์คำอธิบาย - นี่คือ "Stack Overflow ตัวอย่างการกระทำ " ทำให้ทางเลือกของสามตัวเลือกในข้อเสนอทั้งหมดที่มีการอธิบายที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


ป้อนคำอธิบายรูปภาพที่นี่

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