ฉันจะเพิ่มไฟล์และโฟลเดอร์ลงใน repos ของ GitHub ได้อย่างไร


248

ฉันสร้างบัญชีใน GitHub - ฉันใหม่ในนั้น - และฉันกำลังประสบปัญหากับการเพิ่มไฟล์ readme.txtฉันได้เพิ่ม นอกจากนี้ฉันยังมีไฟล์ PHP อื่น ๆ อีก 3 ไฟล์และโฟลเดอร์รวมถึงรูปภาพด้วย

ฉันจะเพิ่มไฟล์และโฟลเดอร์ได้อย่างไร ฉันลองด้วยgit pullเพราะgit push origin -u masterแสดงให้ฉันเห็นข้อผิดพลาด


9
ทดลองใช้คอมไพล์อย่างเป็นทางการแล้วหรือยัง? นี้จะครอบคลุมที่ขอทานมาก
jweyrich

2
ฉันแนะนำหนังสือ ProGit รุ่นออนไลน์ฟรีprogit.org/book
house9

หมายเหตุ: ตั้งแต่เดือนธันวาคม 2012 คุณสามารถสร้างไฟล์ได้โดยตรงผ่านเว็บอินเตอร์เฟส GitHub ดูคำตอบของฉันด้านล่าง
VonC

คำตอบ:


371

คุณสามารถเพิ่มไฟล์โดยใช้git addตัวอย่างgit add README, git add <folder>/*หรือแม้กระทั่งgit add *

จากนั้นใช้git commit -m "<Message>"เพื่อส่งไฟล์

ในที่สุดก็git push -u origin masterดันไฟล์

เมื่อคุณทำการแก้ไขเรียกใช้git statusซึ่งให้รายการของไฟล์ที่แก้ไขให้เพิ่มไฟล์เหล่านั้นโดยใช้git add *สำหรับทุกสิ่งหรือคุณสามารถระบุแต่ละไฟล์ทีละไฟล์จากนั้นgit commit -m <message>และในที่สุดgit push -u origin master

ตัวอย่าง - สมมติว่าคุณสร้างไฟล์ README การรันgit statusจะช่วยให้คุณ

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   README

เรียกใช้git add READMEไฟล์จะถูกจัดเตรียมไว้สำหรับการส่งข้อมูล จากนั้นเรียกใช้git statusอีกครั้งควรให้ - ไฟล์ได้รับการเพิ่มและพร้อมที่จะกระทำ

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   README
#

nothing added to commit but untracked files present (use "git add" to track)

จากนั้นเรียกใช้ git commit -m 'Added README'

$ git commit -m 'Added README'
[master 6402a2e] Added README
  0 files changed, 0 insertions(+), 0 deletions(-)
  create mode 100644 README

สุดท้ายgit push -u origin masterที่จะผลักดันสาขาที่ห่างไกลสำหรับพื้นที่เก็บข้อมูลmasterorigin

$ git push -u origin master
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 267 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To xxx@xxx.com:xxx/xxx.git
   292c57a..6402a2e  master -> master
Branch master set up to track remote branch master from origin.

ไฟล์ถูกส่งไปยังที่เก็บรีโมตเรียบร้อยแล้ว

ใช้ a git pull origin masterเพื่อให้แน่ใจว่าคุณได้รับการเปลี่ยนแปลงต้นน้ำ

$ git pull origin master
remote: Counting objects: 12, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 8 (delta 4), reused 7 (delta 3)
Unpacking objects: 100% (8/8), done.
From xxx.com:xxx/xxx
 * branch            master     -> FETCH_HEAD
Updating e0ef362..6402a2e
Fast-forward
 public/javascript/xxx.js |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
 create mode 100644 README

หากคุณไม่ต้องการรวมการเปลี่ยนแปลงต้นน้ำกับที่เก็บข้อมูลในเครื่องของคุณให้เรียกใช้git fetchการดึงข้อมูลการเปลี่ยนแปลงจากนั้นgit mergeรวมการเปลี่ยนแปลง git pullเป็นเพียงการรวมกันของและfetchmerge

ฉันใช้ส่วนตัว gitimmersion - http://gitimmersion.com/เพื่อให้ได้เส้นโค้งบน git มันเป็นคำแนะนำทีละขั้นตอนถ้าคุณต้องการเอกสารและความช่วยเหลือ


8
git add --all folder/ทำงานได้ดีกว่าฉันมากกว่าฉันgit add folder/*
อเล็กซ์

4
นั่นเพิ่มไฟล์และโฟลเดอร์ทั้งหมดซ้ำหรือไม่?
Alix

git add <folder>/*เพิ่มไฟล์ใหม่ด้วย
Danijel

49

สำหรับผู้ใช้ Linux และ MacOS:

  1. ก่อนอื่นให้สร้างที่เก็บ (ชื่อ = RepositoryName) บน github
  2. เปิดเทอร์มินัลและสร้างไดเรกทอรีใหม่ (mkdir NewDirectory)
  3. คัดลอก ProjectFolder ของคุณไปยัง NewDirectory นี้
  4. เปลี่ยนไดเร็กทอรีงานปัจจุบันเป็น NewDirectory
  5. เรียกใช้คำสั่งเหล่านี้
    1. git init
    2. git เพิ่ม ProjectFolderName
    3. คอมไพล์กระทำ - m "กระทำครั้งแรก"
    4. คอมไพล์รีโมทเพิ่มต้นกำเนิดhttps://github.com/YourGithubUsername/RepositoryName.git
    5. git push -u origin master

20

โปรดทราบว่าตั้งแต่ต้นเดือนธันวาคม 2012 คุณสามารถสร้างไฟล์ใหม่ได้โดยตรงจาก GitHub :

สร้างไฟล์ใหม่

ProTip ™ : คุณสามารถเติมฟิลด์ชื่อไฟล์ล่วงหน้าโดยใช้เพียง URL
พิมพ์ดีด?filename=yournewfile.txtในตอนท้ายของ URL yournewfile.txtจะก่อนกรอกข้อมูลชื่อไฟล์ที่มีชื่อ

d


2
คุณจะอัพโหลดไฟล์อย่างภาพได้อย่างไร?
Drew Baker

@DrewBaker กลไกการอธิบายที่นี่มีไว้สำหรับสร้างไฟล์ข้อความ สำหรับรูปภาพคุณยังคงต้องโคลน repo ของ GitHub เพิ่มรูปภาพในพื้นที่กระทำและกด
VonC

ขอขอบคุณและ +1 สำหรับเคล็ดลับในการ "สร้างไฟล์ใหม่โดยตรงจาก GitHub"!
zeFree

ฉันไม่เชื่อว่า Github web UI มีวิธีเพิ่มโฟลเดอร์อื่น ๆ นอกเหนือจากการเพิ่มไฟล์ข้อความอย่างง่ายเช่น markme readme
Devy

ฉันคิดว่าคำถามนี้ถามวิธีอัปโหลดไฟล์จากคอมพิวเตอร์ของคุณไม่ใช่วิธีสร้างไฟล์
Élektra

8

หากคุณต้องการเพิ่มโฟลเดอร์ว่างคุณสามารถเพิ่มไฟล์ '.keep' ในโฟลเดอร์ของคุณ

นี่เป็นเพราะคอมไพล์ไม่สนใจโฟลเดอร์


คำตอบที่ฉันกำลังมองหา
Alexis Wilke

6

คุณต้องชำระเงินที่เก็บลงในเครื่องของคุณ จากนั้นคุณสามารถเปลี่ยนโฟลเดอร์นั้นในเครื่องท้องถิ่นของคุณ

git commit -am "added files"

คำสั่งนั้นจะส่งไฟล์ทั้งหมดไปยัง repo

git push origin master

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


4

วิธีแก้ปัญหาง่าย ๆ :

git init
git add =A
git commit -m "your commit"
git push -u origin master

ถ้าคุณต้องการเพิ่มโฟลเดอร์ไปยัง repo ที่มีอยู่แล้วเพิ่มโฟลเดอร์ไปยังรหัสโครงการท้องถิ่น

git rm --cached ./folderName
 git add ./folderName

หลังจากนั้น

git status
git commit -m "your commit"
git push -u origin master

2

เมื่อเพิ่มไดเรกทอรีลงใน Github ให้ตรวจสอบว่าไดเรกทอรีนั้นไม่มีไฟล์. git โดยใช้ "ls -a" ถ้ามันลบออกไป ไฟล์. git ในไดเรกทอรีจะทำให้เกิดปัญหาเมื่อคุณพยายามเพิ่มไดเรกทอรีนั้นในคอมไพล์


0

ตรวจสอบคำตอบของฉันที่นี่: https://stackoverflow.com/a/50039345/2647919

"หรือดียิ่งขึ้นเพียงแค่โฟลเดอร์ ol '" ลากและวาง "ไปยังที่เก็บข้อมูลของคุณที่เปิดในเบราว์เซอร์ git

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

เปิดโฟลเดอร์ที่คุณต้องการอัปโหลด ลากและวางรายชื่อในเบราว์เซอร์ ดูรูปได้ที่นี่ "


0

ฉันใช้ VS SSDT บน Windows ฉันเริ่มโครงการและตั้งค่าการควบคุมเวอร์ชันในเครื่อง ฉันภายหลังติดตั้งคอมไพล์แล้วและสร้าง repo Github เมื่อฉันมี repo ของฉันบน Github ฉันคว้า URL และใส่ลงใน VS เมื่อมันถามฉันเกี่ยวกับ URL เมื่อฉันกดปุ่ม "เผยแพร่ไปที่ Github"

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