เป็นไปได้หรือไม่ที่จะสร้าง repo ระยะไกลบน GitHub จาก CLI โดยไม่ต้องเปิดเบราว์เซอร์?


348

ฉันสร้างที่เก็บ Git ในพื้นที่ใหม่:

~$ mkdir projectname
~$ cd projectname
~$ git init
~$ touch file1
~$ git add file1
~$ git commit -m 'first commit'

มีคำสั่ง git เพื่อสร้างrepo ระยะไกลใหม่และผลักดันการกระทำของฉันไปที่ GitHub จากที่นี่? ฉันรู้ว่ามันไม่ใช่เรื่องใหญ่อะไรที่จะเปิดเบราว์เซอร์และมุ่งหน้าไปที่สร้างพื้นที่เก็บข้อมูลใหม่แต่ถ้ามีวิธีที่จะทำให้บรรลุผลได้จาก CLI ฉันจะมีความสุข

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

คำตอบ:


215

คุณสามารถสร้าง repo GitHub ผ่านทางบรรทัดคำสั่งโดยใช้ GitHub API ตรวจสอบAPI พื้นที่เก็บข้อมูล หากคุณเลื่อนลงมาประมาณหนึ่งในสามของวิธีคุณจะเห็นส่วนที่ชื่อว่า"สร้าง"ที่อธิบายวิธีสร้าง repo ผ่าน API (ด้านบนขวาคือส่วนที่อธิบายวิธีแยก repo ด้วย API ด้วยเช่นกัน ) เห็นได้ชัดว่าคุณไม่สามารถใช้gitการทำเช่นนี้ curlแต่คุณสามารถทำมันได้ผ่านบรรทัดคำสั่งด้วยเครื่องมือเช่น

นอก API ไม่มีวิธีสร้าง repo บน GitHub ผ่านบรรทัดคำสั่ง ดังที่คุณได้กล่าวไว้ GitHub ไม่อนุญาตให้เข้าถึงเชลล์ ฯลฯ นอกจาก GitHub API วิธีเดียวในการสร้าง repo คือผ่านเว็บอินเตอร์เฟสของ GitHub


73
ขอบคุณมัด mipadi! ไม่ทราบเกี่ยวกับ GitHub API สำหรับคนอื่น ๆ curl -F 'login=username' -F 'token=API Token' https://github.com/api/v2/yaml/repos/create -F name=reponameที่มีปัญหาเดียวกันนี้คือสิ่งที่ฉันเป็นพื้นได้: API Token ของคุณสามารถพบได้บนเว็บไซต์ GitHub คลิกการตั้งค่าบัญชีค้นหาข้อมูลการดูแลระบบและโทเค็น API (สตริงอักขระยาว 32 ตัว)
anddoutoi

1
ดูเหมือนว่านี่จะล้าสมัยอย่างน้อยฉันก็ไม่พบ API Token ที่นั่น
Joachim Breitner

12
API เวอร์ชัน 3 ไวยากรณ์ที่ระบุด้านล่างผ่าน @bennedich stackoverflow.com/a/10325316/305633
JiminyCricket

2
@cseder: Git ไม่ได้ต้องการสิ่งนี้เพื่อสร้าง repo แต่การตั้งค่าหนึ่งใน GitHubทำ ฉันไม่คิดว่า Mercurial อนุญาตให้คุณสร้าง repo บนเซิร์ฟเวอร์ระยะไกลโดยการผลักดันไปยัง repo ที่ไม่มีอยู่เช่นกัน
mipadi

5
@cseder: คำถามกำลังถามว่าเป็นไปได้หรือไม่ที่จะสร้าง repo ระยะไกลบน GitHub ผ่าน GitHub API ไม่ใช่วิธีสร้าง repo ใหม่และผลักดันไปยัง GitHub ที่มีอยู่เดิม
mipadi

322

คำสั่ง CLI สำหรับ github API v3 (แทนที่คำหลัก CAPS ทั้งหมด):

curl -u 'USER' https://api.github.com/user/repos -d '{"name":"REPO"}'
# Remember replace USER with your username and REPO with your repository/application name!
git remote add origin git@github.com:USER/REPO.git
git push origin master

43
ปัญหาเล็กน้อยกับคำสั่งแรกคือการที่คุณกำลังจะออกรหัสผ่านของคุณได้ใน GitHub ~/.bash_historyของคุณ ฉันขอแนะนำให้แทนที่-u 'USER:PASS'ด้วย-u 'USER'แล้วขดจะขอรหัสผ่านโต้ตอบ
ivanzoid

20
ในการทำให้ repo เป็นส่วนตัวตั้งแต่เริ่มต้นให้ใช้:curl -u 'USER' https://api.github.com/user/repos -d '{"name":"REPO", "private":"true"}'
Joe Fletcher

3
ฉันเขียนสคริปต์ทุบตีเพื่อช่วยพวกเราพิมพ์บางอย่าง ใช้อินพุตของผู้ใช้และมีค่าเริ่มต้นที่สมเหตุสมผล: gist.github.com/robwierzbowski/5430952
RobW

3
นี่คือวิธีการเพิ่มเป็นนามแฝงคอมไพล์:git config --global alias.gh-create '!sh -c "curl -u \"USERNAME\" https://api.github.com/user/repos -d \"{\\\"name\\\":\\\"$1\\\"}\"" -'
Robin Winslow

13
อย่าลืมว่าคุณสามารถสร้างการเข้าถึงโทเค็นcurl https://api.github.com/user/repos?access_token=myAccessToken -d '{"name":"REPO"}'และใช้วิธีนี้: :-)
IonicăBizău

69

สามารถทำได้ด้วยสามคำสั่ง:

curl -u 'nyeates' https://api.github.com/user/repos -d '{"name":"projectname","description":"This project is a test"}'
git remote add origin git@github.com:nyeates/projectname.git
git push origin master

(อัปเดตสำหรับ v3 Github API)


คำอธิบายของคำสั่งเหล่านี้ ...

สร้าง repo gitHub

    curl -u 'nyeates' https://api.github.com/user/repos -d '{"name":"projectname","description":"This project is a test"}'
  • curl เป็นคำสั่ง unix (ด้านบนใช้ได้กับ mac ด้วย) ที่ดึงและโต้ตอบกับ URL มันถูกติดตั้งทั่วไปแล้ว
  • "-u" เป็นพารามิเตอร์ curl ที่ระบุชื่อผู้ใช้และรหัสผ่านเพื่อใช้สำหรับการตรวจสอบสิทธิ์เซิร์ฟเวอร์
    • หากคุณเพียงแค่ให้ชื่อผู้ใช้ (ดังแสดงในตัวอย่างด้านบน) curl จะถามรหัสผ่าน
    • หากคุณไม่ต้องการพิมพ์รหัสผ่านให้ดูที่เอกสารคู่มือ Githubs api เกี่ยวกับการตรวจสอบสิทธิ์
  • "-d" เป็นพารามิเตอร์ curl ที่อนุญาตให้คุณส่งข้อมูล POST พร้อมคำขอ
  • "name" เป็นข้อมูล POST ที่จำเป็นเท่านั้น ฉันชอบที่จะรวม "คำอธิบาย"
  • ฉันพบว่าเป็นการดีที่จะเสนอราคาข้อมูล POST ทั้งหมดด้วยเครื่องหมายคำพูดเดี่ยว ''

กำหนดตำแหน่งที่จะผลักดัน

git remote add origin git@github.com:nyeates/projectname.git
  • เพิ่มคำจำกัดความสำหรับตำแหน่งและการดำรงอยู่ของ repo ที่เชื่อมต่อ (ระยะไกล) บน github
  • "origin" เป็นชื่อเริ่มต้นที่ใช้โดย git ซึ่งเป็นที่มาของ
    • ในทางเทคนิคไม่ได้มาจาก GitHub แต่ตอนนี้ repo GitHub จะเป็นแหล่งของการบันทึก
  • "git@github.com: nyeates" เป็นการเชื่อมต่อ ssh ที่สมมติว่าคุณได้ติดตั้ง ssh keypair ที่เชื่อถือได้กับ github แล้ว

ผลักดัน repo ท้องถิ่นเพื่อ GitHub

git push origin master
  • ผลักดันไปยังรีโมทระยะไกล (GitHub) จากสาขาโลคัลมาสเตอร์

54

หากคุณติดตั้งเครื่องมือHub ที่ยอดเยี่ยมของ defunktสิ่งนี้จะกลายเป็นเรื่องง่ายเหมือน

git create

ในคำพูดของผู้แต่ง " ฮับคือ wrapper บรรทัดคำสั่งสำหรับคอมไพล์ที่ทำให้คุณดีขึ้นที่ GitHub "


3
ฉันรักhub! นอกจากนี้ยังมีประโยชน์คือhub- หรือตามhubปกติจะเป็นนามแฝงถึงgit... git forkซึ่งสร้างทางแยกของ repo สำหรับ repo ที่pwdเป็นโคลนที่คุณอยู่ใน ... Yay
Alex Gray

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

19

ขั้นตอนง่าย ๆ (โดยใช้git+ hub=> GitHub ):

  1. ติดตั้งHub ( GitHub )

    • OS X: brew install hub
    • มีไป :go get github.com/github/hub
    • มิฉะนั้น (มีไปเช่นกัน):

      git clone https://github.com/github/hub.git && cd hub && ./script/build
      
  2. ไป repo mkdir foo && cd foo && git initของคุณหรือสร้างที่ว่างเปล่าที่หนึ่ง:

  3. เรียกใช้: hub createมันจะถามคุณเกี่ยวกับข้อมูลประจำตัวของ GitHub เป็นครั้งแรก

    การใช้งาน: hub create [-p] [-d DESCRIPTION] [-h HOMEPAGE] [NAME]

    ตัวอย่าง: hub create -d Description -h example.com org_name/foo_repo

    Hub จะพร้อมท์ให้ใส่ชื่อผู้ใช้และรหัสผ่านของ GitHub ในครั้งแรกที่จำเป็นต้องเข้าถึง API และแลกเปลี่ยนเป็นOAuthโทเค็นซึ่งบันทึก~/.config/hubไว้

    หากต้องการตั้งชื่อที่เก็บใหม่อย่างชัดเจนให้ส่งNAMEทางเลือกในORGANIZATION/NAMEรูปแบบเพื่อสร้างภายใต้องค์กรที่คุณเป็นสมาชิก

    ด้วย-pสร้างที่เก็บส่วนตัวและด้วย -dและ-hตั้งคำอธิบายและที่เก็บของURLตามลำดับ

    เพื่อหลีกเลี่ยงการได้รับแจ้งให้ใช้GITHUB_USERและGITHUB_PASSWORDตัวแปรสภาพแวดล้อม

  4. แล้วกระทำและการผลักดันตามปกติหรือตรวจสอบ/hub commithub push

สำหรับความช่วยเหลือเพิ่มเติมให้เรียกใช้: hub help.

ดูเพิ่มเติม: การนำเข้าที่เก็บ Git โดยใช้บรรทัดคำสั่งที่ GitHub


ฉันจะตั้งค่าตัวแปรสภาพแวดล้อม GITHUB_USER และ GITHUB_PASSWORD ได้อย่างไร
แคสเปอร์

1
คุณอาจจะสามารถส่งออกได้โปรดดูที่: GH #
kenorb

1
ทำงานได้ดีสำหรับฉันหมายเหตุ "ฮับ" ก็มีให้ใน MacPorts
tiktak

ฉันคิดว่านี่คือสิ่งที่ฉันกำลังมองหา! :)
TᴀʀᴇǫMᴀʜᴍᴏᴏᴅ

11

มีอัญมณี github อย่างเป็นทางการซึ่งฉันคิดว่าทำเช่นนี้ ฉันจะพยายามเพิ่มข้อมูลเพิ่มเติมขณะที่ฉันเรียนรู้ แต่ตอนนี้ฉันเพิ่งค้นพบอัญมณีนี้ดังนั้นฉันยังไม่รู้อะไรมาก

อัปเดต: หลังจากตั้งค่าคีย์ API ของฉันฉันสามารถสร้าง repo ใหม่บน github ผ่านcreateคำสั่งได้ แต่ฉันไม่สามารถใช้create-from-localคำสั่งได้ซึ่งควรจะใช้ repo ท้องถิ่นปัจจุบันและสร้างรีโมตบน github ที่เกี่ยวข้อง

$ gh create-from-local
=> error creating repository

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

UPDATE: ในที่สุดฉันก็สามารถใช้งานได้ ฉันไม่แน่ใจว่าจะสร้างปัญหาได้อย่างไร แต่ฉันเพิ่งเริ่มต้นจากศูนย์ (ลบโฟลเดอร์. git)

git init
git add .emacs
git commit -a -m "adding emacs"

ตอนนี้บรรทัดนี้จะสร้าง repo ระยะไกลและแม้แต่ผลักดันมัน แต่น่าเสียดายที่ฉันไม่คิดว่าฉันสามารถระบุชื่อของ repo ที่ฉันต้องการ ฉันต้องการให้มันถูกเรียกว่า "dotfiles" บน github แต่ gh gem เพิ่งใช้ชื่อของโฟลเดอร์ปัจจุบันซึ่งเป็น "jason" ตั้งแต่ฉันอยู่ในโฟลเดอร์บ้านของฉัน (ฉันเพิ่มตั๋วขอพฤติกรรมที่ต้องการ)

gh create-from-local

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

gh create dotfiles

3
โครงการนี้ยังไม่ได้ทำงานเลยสักสองสามปีไม่ได้ผลสำหรับฉันและโดยนัยที่นี่ก็ตายแล้ว เห็นได้ชัดว่ามันถูกแทนที่ด้วยเครื่องมือฮับตามที่แนะนำในคำตอบนี้
jameshfisher

9

เมื่อต้องการสร้างที่เก็บระยะไกลอย่างรวดเร็วโดยใช้ Bash Shell

มันยุ่งยากในการพิมพ์รหัสที่สมบูรณ์ทุกครั้งที่จะสร้างพื้นที่เก็บข้อมูล

curl -u 'USER' https://api.github.com/user/repos -d '{"name":"REPO"}' git remote add origin git@github.com:USER/REPO.git git push origin master

วิธีที่ง่ายกว่าคือ:

  1. สร้างเชลล์สคริปต์ในไดเรกทอรีเช่น / home / USER_NAME / Desktop / my_scripts ชื่อ githubscript.sh
  2. แก้ไขและบันทึกรหัสต่อไปนี้ลงในgithubscript.shไฟล์
#!bin/bash
curl -u 'YOUR_GITHUB_USER_NAME' https://api.github.com/user/repos -d "{\"name\":\"$1\"}";
git init;
git remote add origin git@github.com:YOUR_GITHUB_USER_NAME/$1.git;

หมายเหตุ นี่$1คือสิ่งrepository nameที่ถูกส่งเป็นargumentเมื่อเรียกใช้การscript เปลี่ยนแปลงYOUR_GITHUB_USER_NAMEก่อนบันทึกสคริปต์

  1. ตั้งค่าการอนุญาตที่จำเป็นให้กับscriptไฟล์ chmod 755 githubscript.sh

  2. รวมไดเร็กทอรีสคริปต์ในไฟล์คอนฟิกูเรชันสภาวะแวดล้อม nano ~/.profile; export PATH="$PATH:$HOME/Desktop/my_scripts"

  3. ตั้งค่านามแฝงเพื่อรันไฟล์ githubscript.sh nano ~/.bashrc; alias githubrepo="bash githubscript.sh"

  4. ตอนนี้โหลด.bashrcและ.profileไฟล์ใน terminal source ~/.bashrc ~/.profile;

  5. ตอนนี้เพื่อสร้างพื้นที่เก็บข้อมูลใหม่เช่นdemo: githubrepo demo;


1
ในรหัสของคุณฉันเปลี่ยนส่วนนี้: git remote add origin git@github.com:YOUR_GITHUB_USER_NAME/$1.git; เป็น git remote add origin https://github.com/YOUR_GITHUB_USER_NAME/$1.git; สำหรับผู้ใช้ที่ไม่ได้ใช้คีย์ SSH
Damiii

5

ขึ้นอยู่กับคำตอบอื่น ๆ โดย @Mechanical Snail ยกเว้นว่าไม่มีการใช้ python ซึ่งฉันพบว่าเกินความจำเป็นมาก เพิ่มลงในของคุณ~/.gitconfig:

[github]
    user = "your-name-here"
[alias]
    hub-new-repo = "!REPO=$(basename $PWD) GHUSER=$(git config --get github.user); curl -u $GHUSER https://api.github.com/user/repos -d {\\\"name\\\":\\\"$REPO\\\"} --fail; git remote add origin git@github.com:$GHUSER/$REPO.git; git push origin master"

ฉันรักนามแฝงนี้ ขอบคุณอีกครั้ง @Robru PS ถ้ามันไม่ทำงานหรือหยุดทำงานหลังจากติดตั้งระบบปฏิบัติการใหม่ .. ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง curl แล้ว!
daveloyall

5

ไม่,คุณต้องเปิดเบราว์เซอร์อย่างน้อยหนึ่งครั้งเพื่อสร้างusernameGitHub ของคุณ, เมื่อสร้างแล้ว, คุณสามารถใช้GitHub APIเพื่อสร้างที่เก็บข้อมูลจากบรรทัดคำสั่ง, ด้านล่างคำสั่ง:

curl -u 'github-username' https://api.github.com/user/repos -d '{"name":"repo-name"}'

ตัวอย่างเช่น:

curl -u 'arpitaggarwal' https://api.github.com/user/repos -d '{"name":"command-line-repo"}'

1
จากนั้นgit remote add origin https://github.com/github-username/repo-name.gitเชื่อมโยงโครงการในท้องถิ่นของคุณกับ GitHub ตัวอย่างเช่นคำสั่งจะมีลักษณะดังนี้:git remote add origin https://github.com/arpitaggarwal/command-line-repo.git
SherylHohman

4

สำหรับผู้ใช้ที่มีการตรวจสอบสิทธิ์แบบสองปัจจัยคุณสามารถใช้โซลูชันของ bennedich แต่คุณเพียงแค่ต้องเพิ่มส่วนหัว X-Github-OTP สำหรับคำสั่งแรก แทนที่ CODE ด้วยรหัสที่คุณได้รับจากผู้ให้บริการการตรวจสอบสิทธิ์แบบสองปัจจัย แทนที่ USER และ REPO ด้วยชื่อผู้ใช้และชื่อของที่เก็บตามที่คุณต้องการในโซลูชันของเขา

curl -u 'USER' -H "X-GitHub-OTP: CODE" -d '{"name":"REPO"}' https://api.github.com/user/repos
git remote add origin git@github.com:USER/REPO.git
git push origin master

3

ฉันเขียนสคริปต์ที่ดีสำหรับGitterนี้โดยใช้ REST APIs สำหรับ GitHub และ BitBucket:

https://github.com/dderiso/gitter

BitBucket:

gitter -c -r b -l javascript -n node_app

GitHub:

gitter -c -r g -l javascript -n node_app
  • -c = สร้าง repo ใหม่
  • -r = ผู้ให้บริการซื้อคืน (g = GitHub, b = BitBucket)
  • -n = ชื่อ repo
  • -l = (เป็นทางเลือก) ตั้งค่าภาษาของแอพใน repo

3

ฉันได้สร้างนามแฝง Git การทำเช่นนี้ขึ้นอยู่กับคำตอบของ Bennedich เพิ่มสิ่งต่อไปนี้ในของคุณ~/.gitconfig:

[github]
    user = "your_github_username"
[alias]
    ; Creates a new Github repo under the account specified by github.user.
    ; The remote repo name is taken from the local repo's directory name.
    ; Note: Referring to the current directory works because Git executes "!" shell commands in the repo root directory.
    hub-new-repo = "!python3 -c 'from subprocess import *; import os; from os.path import *; user = check_output([\"git\", \"config\", \"--get\", \"github.user\"]).decode(\"utf8\").strip(); repo = splitext(basename(os.getcwd()))[0]; check_call([\"curl\", \"-u\", user, \"https://api.github.com/user/repos\", \"-d\", \"{{\\\"name\\\": \\\"{0}\\\"}}\".format(repo), \"--fail\"]); check_call([\"git\", \"remote\", \"add\", \"origin\", \"git@github.com:{0}/{1}.git\".format(user, repo)]); check_call([\"git\", \"push\", \"origin\", \"master\"])'"

หากต้องการใช้งานให้เรียกใช้

$ git hub-new-repo

จากที่ใดก็ได้ภายในพื้นที่เก็บข้อมูลในเครื่องและป้อนรหัสผ่าน Github ของคุณเมื่อได้รับแจ้ง


สิ่งนี้ไม่ได้ผลสำหรับฉัน ส่งคืน 'ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว'
adamwong246

สิ่งนี้ไม่ได้ผลสำหรับฉันเช่นกัน มันกลับมาcurl: (22) The requested URL returned error: 401 Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/lib64/python3.2/subprocess.py", line 488, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['curl', '-u', 'myusername', 'https://api.github.com/user/repos', '-d', '{"name": "reponame"}', '--fail']' returned non-zero exit status 22
Da Frenk

1
การใช้งานของไพ ธ อนนั้นค่อนข้างมากและเพิ่มเสียงรบกวนในรูปแบบของแบ็กสแลชเสริมและการลงโทษอื่น ๆ ฉันสร้างเวอร์ชันด้วยการทุบตีเพียงอย่างเดียว: stackoverflow.com/a/28924077/1423157
robru

3

สิ่งที่คุณต้องเป็นศูนย์กลาง Hub เป็น wrapper บรรทัดคำสั่งสำหรับ git มันถูกสร้างขึ้นเพื่อรวมกับ git พื้นเมืองโดยใช้นามแฝง มันพยายามที่จะให้การกระทำ github เป็น git รวมถึงการสร้างพื้นที่เก็บข้อมูลใหม่

→  create a repo for a new project
$ git init
$ git add . && git commit -m "It begins."
$ git create -d "My new thing"
→  (creates a new project on GitHub with the name of current directory)
$ git push origin master

3

สำหรับ Rubyists:

gem install githubrepo
githubrepo create *reponame*

ป้อนชื่อผู้ใช้และ pw เมื่อพร้อมต์

git remote add origin *ctrl v*
git push origin master

ที่มา: Elikem Adadevoh


3

สำหรับผู้ใช้ Python 2.7. * ทั้งหมด มีเสื้อคลุมหลามรอบเป็นAPI Githubว่าขณะนี้อยู่ในรุ่นที่ 3 ที่เรียกว่าGitPython เพียงแค่ติดตั้งใช้หรือeasy_install PyGithubpip install PyGithub

from github import Github
g = Github(your-email-addr, your-passwd)
repo = g.get_user().user.create_repo("your-new-repos-name")

# Make use of Repository object (repo)

Repositoryเอกสารวัตถุที่นี่


2

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

curl -u 'YOUR_USERNAME' -d '{"scopes":["repo"],"note":"YOUR_NOTE"}' https://api.github.com/authorizations

เมื่อคุณป้อนรหัสผ่านคุณจะเห็นสิ่งต่อไปนี้ซึ่งมีโทเค็นของคุณ

{
  "app": {
    "name": "YOUR_NOTE (API)",
    "url": "http://developer.github.com/v3/oauth/#oauth-authorizations-api"
  },
  "note_url": null,
  "note": "YOUR_NOTE",
  "scopes": [
    "repo"
  ],
  "created_at": "2012-10-04T14:17:20Z",
  "token": "xxxxx",
  "updated_at": "2012-10-04T14:17:20Z",
  "id": xxxxx,
  "url": "https://api.github.com/authorizations/697577"
}

คุณสามารถยกเลิกโทเค็นของคุณได้ทุกเวลาโดยไปที่นี่


2

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

curl -u YOUR_USERNAME https://api.github.com/user/repos -d "{\" ชื่อ \ ": \" YOUR_REPO_NAME \ "}"

มันเป็นรูปแบบพื้นฐานเดียวกัน แต่คุณต้องใช้เครื่องหมายคำพูดคู่ (") แทนคำเดียวและหลีกเลี่ยงอัญประกาศคู่ที่ส่งมาในพารามิเตอร์ POST (หลังแฟล็ก -d) ด้วยแบ็กสแลชฉันยังลบเครื่องหมายคำพูดเดี่ยวรอบชื่อผู้ใช้ของฉันด้วย แต่ถ้าชื่อผู้ใช้ของคุณมีช่องว่าง (เป็นไปได้?) มันอาจจะต้องมีเครื่องหมายคำพูดคู่


เหมาะสำหรับผู้ใช้ Windows ไม่ชื่อผู้ใช้ต้องไม่มีช่องว่าง (แบบฟอร์มลงชื่อสมัครใช้ที่github.comระบุว่า: "ชื่อผู้ใช้ต้องประกอบด้วยอักขระที่เป็นตัวอักษรและตัวเลขหรือเครื่องหมายยัติภังค์เดียวเท่านั้นและไม่สามารถเริ่มต้นหรือสิ้นสุดด้วยเครื่องหมายยัติภังค์") ดังนั้นจึงไม่จำเป็นต้องใส่ชื่อผู้ใช้สองครั้ง
mklement0

Power Github ไม่ยอมรับ -u ด้วย curl บน Windows :(
JuliandotNut

2

Disclamier: ฉันเป็นผู้เขียนโครงการโอเพนซอร์ซ

ฟังก์ชั่นนี้ได้รับการสนับสนุนโดย: https://github.com/chrissound/Human-Friendly-Commandsโดยพื้นฐานแล้วมันเป็นสคริปต์นี้:

#!/usr/bin/env bash

# Create a repo named by the current directory
# Accepts 1 STRING parameter for the repo description
# Depends on bin: jq
# Depends on env: GITHUB_USER, GITHUB_API_TOKEN
github_createRepo() {
  projName="$(basename "$PWD")"
  json=$(jq -n \
    --arg name "$projName" \
    --arg description "$1" \
    '{"name":$name, "description":$description}')

  curl -u "$GITHUB_USER":"$GITHUB_API_TOKEN" https://api.github.com/user/repos -d "$json"
  git init
  git remote add origin git@github.com:"$GITHUB_USER"/"$projName".git
  git push origin master
};

แท้จริงนี่คือใหม่วิธีการใช้ Personal Access TokenGitHub (วิธีเก่า ๆ ของการเพิ่มผ่านการ?access_token=${ACCESSTOKEN}ใช้งานไม่ได้อีกต่อไป
not2qubit

0

พบโซลูชันนี้ที่ฉันชอบ: https://medium.com/@jakehasler/how-to-create-a-remote-git-repo-from-the-command-line-2d6857f49564

คุณต้องสร้างโทเค็นการเข้าถึงส่วนบุคคลของ Github ก่อน

เปิด ~ / .bash_profile ของคุณหรือ ~ / .bashrc ในโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ เพิ่มบรรทัดต่อไปนี้ใกล้กับด้านบนของไฟล์ของคุณโดยที่ตัวแปรอื่น ๆ ของการส่งออกคือ:

export GITHUB_API_TOKEN=<your-token-here>

ที่ด้านล่างโดยฟังก์ชั่นทุบตีอื่น ๆ ของคุณคุณสามารถวางสิ่งที่คล้ายกับต่อไปนี้:

function new-git() {
    curl -X POST https://api.github.com/user/repos -u <your-username>:$GITHUB_API_TOKEN -d '{"name":"'$1'"}'
}

ตอนนี้เมื่อใดก็ตามที่คุณกำลังสร้างโครงการใหม่คุณสามารถเรียกใช้คำสั่ง$ new-git awesome-repoเพื่อสร้างพื้นที่เก็บข้อมูลสาธารณะระยะไกลใหม่ในบัญชีผู้ใช้ Github ของคุณ


0

ด้วยอินเตอร์เฟสบรรทัดคำสั่งใหม่อย่างเป็นทางการของ Github :

gh repo create

ดูเพิ่มเติมรายละเอียดและตัวเลือกและคำแนะนำการติดตั้ง


ตัวอย่างเช่นเพื่อทำให้เวิร์กโฟลว์ Git ของคุณเสร็จสมบูรณ์:

mkdir project
cd project
git init
touch file
git add file
git commit -m 'Initial commit'
gh repo create
git push -u origin master

-2

นี่คือคำสั่ง git เริ่มต้นของฉัน (อาจเป็นการกระทำนี้เกิดขึ้นC:/Documents and Settings/your_username/):

mkdir ~/Hello-World
# Creates a directory for your project called "Hello-World" in your user directory
cd ~/Hello-World
# Changes the current working directory to your newly created directory
touch blabla.html
# create a file, named blabla.html
git init
# Sets up the necessary Git files
git add blabla.html
# Stages your blabla.html file, adding it to the list of files to be committed
git commit -m 'first committttt'
# Commits your files, adding the message 
git remote add origin https://github.com/username/Hello-World.git
# Creates a remote named "origin" pointing at your GitHub repository
git push -u origin master
# Sends your commits in the "master" branch to GitHub

1
Hello-World repo ควรจะมีให้ที่ GitHub ในกรณีนี้ไม่ได้แก้ปัญหาในคำถาม
JuliandotNut

-2

ฉันเพิ่งค้นพบเกี่ยวกับcreate-github-repoการสร้าง-GitHub-repoจาก readme:

ติดตั้ง:

$ npm i -g create-github-repo

การใช้งาน:

$ export CREATE_GITHUB_REPO_TOKEN=<access_token>
$ create-github-repo --name "My coolest repo yet!"

หรือ:

$ create-github-repo <access_token> --name "My coolest repo yet!"

-7

สร้างที่เก็บใหม่บนบรรทัดคำสั่ง

echo "# <RepositoryName>" >> README.md

git init

git add README.md

git commit -m "first commit"

git remote add origin https://github.com/**<gituserID>/<RepositoryName>**.git

git push -u origin master

ผลักดันที่เก็บที่มีอยู่จากบรรทัดคำสั่ง

git remote add origin https://github.com/**<gituserID>/<RepositoryName>**.git

git push -u origin master

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