นำเข้าซอร์สโค้ดที่มีอยู่ไปยัง GitHub


609

ฉันจะนำเข้าซอร์สโค้ดจากคอมพิวเตอร์ของฉันไปยังบัญชี GitHub ได้อย่างไร


4
ฉันพบว่าง่ายที่สุดในการใช้ GitHub GUI จากนั้นชี้การกำหนดค่าไปที่รูทของพื้นที่ทำงานของคุณและคลิกปุ่ม "ค้นหา Repostitories บนฮาร์ดไดรฟ์ของคุณ" และจะระบุ repos ภายใน Git ทั้งหมดในเวิร์กสเปซของคุณ ง่าย.
djangofan

1
@djangofan คุณหมายถึง GUI gitub ใด? คุณมีลิงค์ไปยัง GUI หรือไม่?
Anderson Green


คำตอบของ Pete นั้นยอดเยี่ยมใน OS X - ไม่จำเป็นต้องใช้ GUI
funroll

คำตอบ:


969

หากคุณมีซอร์สโค้ดท้องถิ่นคุณต้องการเพิ่มไปยังที่เก็บ git ใหม่ระยะไกลใหม่โดยไม่ต้อง 'ทำการโคลนนิ่ง' จากระยะไกลก่อนให้ทำดังนี้ แหล่งที่มาของคุณ)

  1. สร้างที่เก็บระยะไกลและรับ URL เช่นgit@github.com:/youruser/somename.gitหรือhttps://github.com/youruser/somename.git

    หาก repo GIT ในพื้นที่ของคุณตั้งค่าไว้แล้วให้ข้ามขั้นตอนที่ 2 และ 3


  2. ในพื้นที่ที่รูทไดเร็กทอรีของแหล่งข้อมูลของคุณ git init

    2a หากคุณเริ่มต้น repo ด้วย. gignignore และ README.md คุณควรทำgit pull {url from step 1}เพื่อให้แน่ใจว่าคุณไม่ได้ส่งไฟล์ไปยังแหล่งที่คุณต้องการละเว้น;)

  3. ในพื้นที่เพิ่มและยอมรับสิ่งที่คุณต้องการใน repo เริ่มต้นของคุณ (สำหรับทุกอย่างgit add .แล้ว git commit -m 'initial commit comment')


  4. เพื่อแนบ repo ระยะไกลของคุณด้วยชื่อ 'ต้นกำเนิด' (เช่นการโคลนจะทำ)
    git remote add origin [URL From Step 1]

  5. ปฏิบัติ git pull origin masterเพื่อดึงสาขาระยะไกลเพื่อให้พวกเขาอยู่ในซิงค์
  6. เพื่อผลักดันสาขาหลักของคุณ (เปลี่ยนต้นแบบเป็นสาขาอื่นสำหรับสาขาอื่น):
    git push origin master

92
ทำงานให้ฉัน ฉันพบว่าฉันจำเป็นต้องเรียกใช้git pull origin masterก่อนที่จะผลักดันคอมไพล์ หากไม่มีมันฉันได้รับ "เพราะส่วนปลายของสาขาปัจจุบันของคุณอยู่เบื้องหลัง" ข้อผิดพลาดในระหว่างการพยายามผลัก อาจเป็นเพราะฉันสร้างที่เก็บระยะไกลด้วย Readme.md เริ่มต้น
yuvilio

5
รับ repo URL เพื่อให้โปรโตคอล SSH สามารถส่งมอบได้โดยใช้คีย์ส่วนตัว ssh ของคุณแทนที่จะพิมพ์รหัสผ่าน
Snicolas

5
@yuvilio นั่นเป็นสาเหตุ หากคุณสร้าง repit GitHub ของคุณด้วย readme.md ตอนนี้คุณกำลังอยู่เบื้องหลังสิ่งที่คุณกำลังพยายามทำให้กำเนิดของคุณ

7
ดังที่ @Snicolas กล่าวว่าหากคุณใช้ SSH ให้ใช้ git@github.com: youruser / somename.git แทน git: //github.com/youruser/somename.git
tsusanka

5
GitHub อธิบายขั้นตอนเดียวกันนี้ทันทีหลังจากที่คุณสร้าง repo ใหม่ ดังที่ได้กล่าวแล้วโดย @yuvilio คุณไม่ควรเริ่มต้นพื้นที่เก็บข้อมูลของคุณด้วย README แต่ไปกับtouch README.mdใน repo มีอยู่ในท้องถิ่นของคุณ
Simone

41

นี่คือคำอธิบายในที่ดีเยี่ยม eBook ProGit มันจะถือว่าคุณมีที่เก็บ Git ในพื้นที่อยู่แล้วและที่อยู่ห่างไกล ในการเชื่อมต่อใช้:

$ git remote
origin
$ git remote add pb git://github.com/paulboone/ticgit.git
$ git remote -v
origin    git://github.com/schacon/ticgit.git
pb    git://github.com/paulboone/ticgit.git

ในการพุชข้อมูลจากที่เก็บในเครื่องไปยัง GitHub ให้ใช้:

$ git push pb master

หากคุณไม่ได้ติดตั้งในประเทศและ / หรือพื้นที่เก็บข้อมูลระยะไกลยังตรวจสอบความช่วยเหลือบนGitHubและบทก่อนหน้านี้ในหนังสือเล่มนี้


21

หนึ่งในความคิดเห็นที่กล่าวถึงโดยใช้ GitHub GUI แต่มันไม่ได้ให้ความช่วยเหลือเฉพาะในการใช้งานและสังเกตว่าส่วนใหญ่ถ้าไม่ใช่คำตอบทั้งหมดจะมีประโยชน์ที่พร้อมรับคำสั่งเท่านั้น

หากคุณต้องการใช้ GitHub GUI คุณสามารถทำตามขั้นตอนเหล่านี้:

  1. คลิกปุ่ม "+" และเลือก "เพิ่มที่เก็บในเครื่อง" ป้อนคำอธิบายภาพที่นี่
  2. นำทางไปยังไดเรกทอรีด้วยรหัสที่มีอยู่ของคุณและคลิกที่ปุ่ม "เพิ่ม"
  3. ตอนนี้คุณควรได้รับแจ้งให้ "สร้างที่เก็บ Git ในพื้นที่ใหม่ที่นี่" ดังนั้นคลิกที่ปุ่ม "ใช่" ป้อนคำอธิบายภาพที่นี่
  4. เพิ่ม "Commit Summary" และ "Extended description" ของคุณตามต้องการ โดยค่าเริ่มต้นไฟล์ทั้งหมดของคุณควรเลือกด้วยเครื่องหมายถูกแล้ว คลิกปุ่ม "คอมมิท & ซิงค์" ป้อนคำอธิบายภาพที่นี่
  5. ตอนนี้คุณจะได้รับแจ้งให้เพิ่มชื่อและคำอธิบายของโครงการของคุณเช่นเดียวกับบัญชีที่จะผลักดันไปที่ (ถ้าคุณมีหลายคน) คลิกปุ่ม "Push Repository" ป้อนคำอธิบายภาพที่นี่

หลังจากนั้นครู่หนึ่งด้วยการหมุนไอคอน GitHub ซอร์สโค้ดของคุณจะเป็นของที่เก็บในเครื่องและผลัก / ซิงโครไนซ์กับที่เก็บระยะไกลในบัญชี GitHub ของคุณ ทั้งหมดนี้เป็นการสันนิษฐานว่าคุณเคยตั้งค่า GitHub GUI บัญชี GitHub ของคุณและคีย์ SSH


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

1
@TheJollySin ขอโทษฉันต้องทำงานเพื่อให้การแจ้งเตือนสแต็คโอเวอร์โฟลว์ของฉันทำงานอย่างถูกต้องฉันคิดว่า สิ่งนี้ควรเก็บประวัติของที่เก็บข้อมูลในเครื่องของคุณ TBH ฉันไม่ได้ทดสอบสิ่งนั้นในเวลานั้น แต่ฉันไม่สามารถคิดได้ว่ามันจะสควอชประวัติศาสตร์ท้องถิ่นของคุณ ในความเป็นจริงแล้วประเด็นทั้งหมดควรที่จะรักษาไว้จนกว่าคุณจะต้องการสควอช
cfont

12

ในขณะที่ JB ชี้ให้เห็นอย่างถูกต้องมันทำให้ GitHub เป็นเรื่องง่ายอย่างเหลือเชื่อโดยเพียงทำตามคำแนะนำ

นี่คือตัวอย่างของคำแนะนำที่ปรากฏขึ้นหลังจากตั้งค่าที่เก็บใหม่บน GitHub โดยใช้http://github.com/newเมื่อคุณลงชื่อเข้าใช้

Global setup:

 Set up Git:
  git config --global user.name "Name"
  git config --global user.email email@gmail.com


Next steps:

  mkdir audioscripts
  cd audioscripts
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin git@github.com:ktec/audioscripts.git
  git push -u origin master


Existing Git repository?

  cd existing_git_repo
  git remote add origin git@github.com:ktec/audioscripts.git
  git push -u origin master


Importing a Subversion repository?

  Check out the guide for step-by-step instructions.

มันคงไม่ง่ายไปกว่านี้ !!



8

ฉันมีปัญหาเล็กน้อยเกี่ยวกับการรวมกันเมื่อพยายามทำตามขั้นตอนของ Pete เหล่านี้เป็นขั้นตอนที่ฉันลงเอยด้วย

  1. ใช้ระบบปฏิบัติการของคุณเพื่อลบ.gitโฟลเดอร์ภายในโฟลเดอร์โครงการที่คุณต้องการส่ง สิ่งนี้จะทำให้คุณมีกระดานชนวนที่สะอาดในการทำงานกับ นี่เป็นเวลาที่ดีที่จะสร้าง.gitignoreไฟล์ในโฟลเดอร์โครงการ นี่อาจเป็นสำเนาของที่.gitignoreสร้างขึ้นเมื่อคุณสร้างที่เก็บบน github.com การทำสำเนานี้จะหลีกเลี่ยงการลบเมื่อคุณอัปเดตที่เก็บ github.com

  2. เปิด Git Bash แล้วไปที่โฟลเดอร์ที่คุณเพิ่งลบ.gitโฟลเดอร์

  3. git initวิ่ง นี่เป็นการตั้งค่าที่เก็บโลคัลในโฟลเดอร์ที่คุณอยู่

  4. git remote add [alias] https://github.com/[gitUserName]/[RepoName].gitวิ่ง [นามแฝง] สามารถเป็นอะไรก็ได้ที่คุณต้องการ [นามแฝง] มีวัตถุประสงค์เพื่อผูกกับที่เก็บข้อมูลในเครื่องดังนั้นชื่อเครื่องจึงใช้งานได้ดีสำหรับ [นามแฝง] URL สามารถพบได้ใน github.com ด้านบนให้แน่ใจว่ามีการคลิกปุ่ม HTTP จาก HTTP | SSH | Git อ่านอย่างเดียว git://URL ที่ไม่ได้ทำงานสำหรับฉัน

  5. git pull [alias] masterวิ่ง สิ่งนี้จะอัปเดตที่เก็บในเครื่องของคุณและหลีกเลี่ยงข้อขัดแย้งในการรวม

  6. วิ่ง git add .

  7. วิ่ง git commit -m 'first code commit'

  8. วิ่ง git push [alias] master


1
-1 สิ่งนี้ทำได้มากกว่าเพียงแค่ "นำเข้าโค้ดที่มีอยู่ไปยัง GitHub" มันจะลบประวัติพื้นที่เก็บข้อมูลทั้งหมด!
Michael Durrant

6
  1. เปิดแผงควบคุม GitHub ของคุณ (อยู่ที่https://github.com/หากคุณลงชื่อเข้าใช้)
  2. คลิกที่พื้นที่เก็บข้อมูลใหม่
  3. เติมในช่องว่าง; คลิกที่สร้างพื้นที่เก็บข้อมูล
  4. ทำตามคำแนะนำในหน้าที่ปรากฏขึ้น

6

จาก Bitbucket:

ผลักดันพื้นที่เก็บข้อมูลที่มีอยู่ คุณมีที่เก็บ Git ในคอมพิวเตอร์ของคุณแล้ว มาผลักดันมันจนถึง Bitbucket:

cd /path/to/my/repo
git remote add origin ssh://git@bitbucket.org/javacat/geo.git
git push -u origin --all   # To push up the repo for the first time

1
fyi, -u เหมือนกับ --set-upstream
AnneTheAgile

4

ฉันมาที่นี่เพื่อค้นหาวิธีง่ายๆในการเพิ่มไฟล์ต้นฉบับที่มีอยู่ในที่เก็บ GitHub ฉันเห็นคำตอบที่สมบูรณ์ของ @ Pete อย่างยอดเยี่ยมและคิดว่า"อะไรนะ! ต้องมีวิธีที่ง่ายกว่านี้"

นี่เป็นวิธีที่ง่ายกว่าในห้าขั้นตอน (ไม่จำเป็นต้องดำเนินการคอนโซล!)

หากคุณกำลังรีบคุณสามารถอ่านขั้นตอนที่ 3 คนอื่น ๆ จะอยู่ที่นั่นเพื่อความสมบูรณ์เท่านั้น

  1. สร้างที่เก็บบนเว็บไซต์ GitHub (ฉันจะไม่ดูถูกสติปัญญาของคุณโดยนำคุณผ่านขั้นตอนนี้)
  2. โคลนที่เก็บใหม่ในเครื่อง (คุณสามารถทำได้ผ่านทางเว็บไซต์หรือผ่านทางซอฟต์แวร์ไคลเอนต์เดสก์ท็อป)
  3. ค้นหาที่เก็บโคลนใหม่ในฮาร์ดไดรฟ์ของคุณและเพิ่มไฟล์เช่นเดียวกับที่คุณทำในไดเรกทอรีปกติ
  4. ซิงค์การเปลี่ยนแปลงกลับไปที่ GitHub
  5. แค่นั้นแหละ!

ทำ!


4

เพิ่มที่เก็บ GitHub เป็นแหล่งกำเนิดระยะไกล (แทนที่ [] ด้วย URL ของคุณ):

git remote add origin [git@github.com:...]

สลับไปที่สาขาหลักของคุณและคัดลอกเพื่อพัฒนาสาขา:

git checkout master
git checkout -b develop

ผลักดันการพัฒนาสาขาของคุณไปยัง GitHub พัฒนาสาขา ( -fหมายถึงกำลัง):

git push -f origin develop:develop

3

ที่จริงแล้วถ้าคุณเลือกที่จะสร้าง repo ที่ว่างเปล่าบน GitHub มันจะให้คำแนะนำที่ถูกต้องซึ่งคุณเกือบจะสามารถคัดลอกและวางลงในเทอร์มินัลของคุณซึ่งคือ (ณ เวลานี้):

…or create a new repository on the command line

echo "# ..." >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:<user>/<repo>.git
git push -u origin master

2

ต่อไปนี้เป็นคำแนะนำเกี่ยวกับวิธีเริ่มต้นพื้นที่เก็บข้อมูล GitHub จากนั้นกดรหัสที่คุณสร้างไว้แล้ว ชุดคำสั่งแรกนั้นโดยตรงจาก GitHub

ที่มา: https://help.github.com/articles/create-a-repo/

  1. ที่มุมบนขวาของหน้าใด ๆ คลิกแล้วคลิกที่เก็บใหม่

  2. สร้างชื่อที่สั้นและน่าจดจำสำหรับที่เก็บของคุณ ตัวอย่างเช่น "hello-world"

  3. หรือเพิ่มคำอธิบายของที่เก็บของคุณ ตัวอย่างเช่น "พื้นที่เก็บข้อมูลแรกของฉันบน GitHub"

  4. เลือกระหว่างการสร้างที่เก็บสาธารณะหรือส่วนตัว

  5. เริ่มต้นพื้นที่เก็บข้อมูลนี้ด้วย README

  6. สร้างที่เก็บ

ขอแสดงความยินดี! คุณสร้างที่เก็บข้อมูลแรกของคุณสำเร็จและเริ่มต้นด้วยไฟล์ README

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

  1. git init (ในโฟลเดอร์รูทที่โค้ดของคุณตั้งอยู่)

  2. git add -A (สิ่งนี้จะเพิ่มไฟล์และโฟลเดอร์ทั้งหมดในไดเรกทอรีของคุณที่จะยืนยัน)

  3. git commit -am "First Project commit"

  4. git remote add origin git@github.com:YourGithubName/your-repo-name.git (คุณจะพบที่อยู่นี้ในที่เก็บ GitHub ที่คุณเพิ่งสร้างภายใต้ "ssh clone URL" ในหน้าหลัก)

  5. git push -u origin master

แค่นั้นแหละ. รหัสของคุณจะถูกส่งไปยัง GitHub ตอนนี้ทุกครั้งที่คุณต้องการที่จะผลักดันรหัสที่มีการเปลี่ยนแปลงเพียงทำ

  1. git commit -m "New changes"

  2. git push origin master (ถ้าอาจารย์เป็นสาขาที่คุณกำลังทำงานอยู่)


1

ทางออกสำหรับฉัน:

ปัญหาคือขนาดของไฟล์ซึ่งต้องไม่เกิน 100M

ก่อนที่จะย้ายไปยัง Github ในที่เก็บทำสิ่งนี้

git clone --mirror git://example.com/some-big-repo.git

wget http://repo1.maven.org/maven2/com/madgag/bfg/1.12.12/bfg-1.12.12.jar

mv bfg-1.12.12.jar bfg.jar

java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git

cd some-big-repo.git

git reflog expire --expire=now --all && git gc --prune=now --aggressive

git push

พร้อม!

ตอนนี้ทำการโยกย้ายอีกครั้งโดยเครื่องมือ: https://github.com/new/import

ดูเพิ่มเติม: เกิด ข้อผิดพลาดขณะผลักดันไปยัง github repo และ https://rtyley.github.io/bfg-repo-cleaner/

ฉันหวังว่าฉันช่วยคุณ :)


0

สร้างที่เก็บของคุณใน git hub

อนุญาตให้ติดตามโครงการของคุณโดย GIT

  1. การใช้ CMD ไปที่โฟลเดอร์ที่เก็บไฟล์โครงการของคุณ -> cd / automation / xyz / codebase ตรวจสอบการทำให้เป็น git intialization ด้วยคำสั่งสถานะ git หากคุณได้รับข้อความแสดงข้อผิดพลาดนี้: ร้ายแรง: ไม่ใช่ที่เก็บ git (หรือไดเรกทอรีหลัก): .git ซึ่งหมายความว่าโฟลเดอร์ที่คุณอยู่ในปัจจุบันไม่ได้ถูกติดตามโดย git ในกรณีนี้ให้เริ่มต้นคอมไพล์ภายในโฟลเดอร์โปรเจ็กต์ของคุณโดยพิมพ์ git init จากนั้นดำเนินการตามขั้นตอนการเพิ่มและคอมมิชชันโครงการของคุณ

หากคุณได้รับข้อความแสดงข้อผิดพลาดอื่นให้อ่านอย่างระมัดระวังสิ่งที่พูด มันบอกว่าไม่ได้ติดตั้งคอมไพล์ในคอมพิวเตอร์ของคุณโดยบอกว่าคำว่า 'git' นั้นไม่เป็นที่รู้จักหรือไม่? มันบอกว่าคุณอยู่ในโฟลเดอร์หรือโฟลเดอร์ย่อยที่มีการเริ่มต้นคอมไพล์หรือไม่? Google ข้อผิดพลาดและ / หรือผลลัพธ์ของคุณเพื่อทำความเข้าใจและเพื่อหาวิธีแก้ไข

ตอนนี้เรียกใช้คำสั่งดังต่อไปนี้

#

echo "ชื่อที่เก็บฮับ git ของคุณ" >> README.md git init git เพิ่ม README.md git commit -m "ก่อนคอมมิท" git รีโมตเพิ่มต้นกำเนิด https: // #

บล็อกข้างต้นคุณจะได้รับเมื่อครั้งแรกที่คุณเปิดพื้นที่เก็บข้อมูลของคุณ

หากเกิดข้อผิดพลาดหรือไม่มีอะไรเกิดขึ้นหลังจากคำสั่งสุดท้ายให้รัน "git push -u origin master" ไม่ต้องกังวล

ไปที่โฟลเดอร์ที่มีรหัสและผ่านการขยาย git ให้กดไปที่ git [URL], สาขา

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