379

新しいローカルGitリポジトリを作成しました:

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

新しいリモートリポジトリを作成し、ここからGitHubにコミットをプッシュするgitコマンドはありますか?ブラウザを起動して新しいリポジトリの作成に進むのは大したことではないことはわかっていますが、CLIからこれを実現する方法があれば幸いです。

私は膨大な量の記事を読みましたが、gitコマンドを使用してCLIからリモートリポジトリを作成する方法について言及しているものは見つかりませんでした。Tim Lucasのすばらしい記事新しいリモートgitリポジトリのセットアップは私が見つけた最も近いものですが、GitHubはシェルアクセスを提供していません

4

24 に答える 24

342

github API v3のCLIコマンド(すべての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
于 2012-04-25T23:38:57.593 に答える
223

GitHub APIを使用して、コマンドラインからGitHubリポジトリを作成できます。リポジトリAPIを確認してください。約3分の1まで下にスクロールすると、APIを介してリポジトリを作成する方法を説明する「作成」というタイトルのセクションが表示されます(そのすぐ上には、APIを使用してリポジトリをフォークする方法も説明するセクションがあります。 )。明らかにgitこれを行うために使用することはできませんが、のようなツールを使用してコマンドラインから行うことができますcurl

APIの外部では、コマンドラインを介してGitHubにリポジトリを作成する方法はありません。お気づきのとおり、GitHubではシェルアクセスなどが許可されていないため、GitHub APIを除いて、リポジトリを作成する唯一の方法はGitHubのウェブインターフェースを使用することです。

于 2010-03-11T14:20:42.820 に答える
76

これは、次の3つのコマンドで実行できます。

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用に更新)


これらのコマンドの説明...

githubリポジトリを作成する

    curl -u 'nyeates' https://api.github.com/user/repos -d '{"name":"projectname","description":"This project is a test"}'
  • curlは、URLを取得して操作するUNIXコマンドです(上記はMacでも機能します)。通常、すでにインストールされています。
  • 「-u」は、サーバー認証に使用するユーザー名とパスワードを指定するcurlパラメーターです。
  • 「-d」は、リクエストとともにPOSTデータを送信できるようにするcurlパラメーターです。
  • 「名前」は必要な唯一のPOSTデータです。「説明」も含めるのが好きです
  • すべてのPOSTデータを一重引用符で囲むのが良いことがわかりました''

プッシュ先を定義する

git remote add origin git@github.com:nyeates/projectname.git
  • githubに接続された(リモート)リポジトリの場所と存在の定義を追加します
  • 「origin」は、ソースがどこから来たのかをgitが使用するデフォルトの名前です。
    • 技術的にはgithubからのものではありませんでしたが、今ではgithubリポジトリがレコードのソースになります
  • 「git@github.com:nyeates」は、githubで信頼できるsshキーペアをすでに設定していることを前提としたssh接続です。

ローカルリポジトリをgithubにプッシュする

git push origin master
  • マスターローカルブランチからオリジンリモート(github)にプッシュします
于 2011-09-27T03:14:13.127 に答える
55

defunktの優れたハブツールをインストールすると、これは次のように簡単になります

hub create

著者の言葉を借りれば、「ハブはgitのコマンドラインラッパーであり、GitHubをより良くすることができます。

于 2012-11-13T18:20:58.050 に答える
21

簡単な手順(git+ hub=> GitHubを使用):

  1. ハブGitHub )をインストールします。

    • OS X:brew install hub
    • 行くこと:go get github.com/github/hub
    • それ以外の場合(Goもあります):

      git clone https://github.com/github/hub.git && cd hub && ./script/build
      
  2. リポジトリに移動するか、空のリポジトリを作成します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は、初めてAPIにアクセスしてOAuthトークンと交換する必要があるときに、GitHubのユーザー名とパスワードの入力を求めます。トークンはに保存され~/.config/hubます。

    新しいリポジトリに明示的に名前を付けるにはNAME、オプションでORGANIZATION/NAME、メンバーである組織の下に作成するフォームを渡します。

    -p、プライベートリポジトリを作成し、で 、リポジトリの説明-d-hホームページURLをそれぞれ設定します。

    プロンプトが表示されないようにするには、環境変数を使用GITHUB_USERGITHUB_PASSWORDます。

  4. 次に、通常どおりコミットしてプッシュするか、hub commit/を確認しhub pushます。

さらにヘルプが必要な場合は、次を実行してくださいhub help

参照:GitHubのコマンドラインを使用したGitリポジトリのインポート。

于 2015-08-03T19:13:19.040 に答える
21

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
于 2020-04-27T13:37:51.173 に答える
11

これを行う公式のgithubgemがあります。学びながら情報を追加していきますが、この宝石を発見したのはたった今なので、まだよくわかりません。

更新:APIキーを設定した後、コマンドを使用してgithubに新しいリポジトリを作成できますが、現在のローカルリポジトリを取得して対応するリモートをgithubに作成するコマンドcreateを使用できません。create-from-local

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

誰かがこれについて何らかの洞察を持っているなら、私は私が間違っていることを知りたいです。すでに問題が提出されています。

更新:私は最終的にこれを機能させることができました。問題を再現する方法が正確にはわかりませんが、最初から始めたばかりです(.gitフォルダーを削除しました)

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

これで、この行はリモートリポジトリを作成し、それにプッシュすることもできますが、残念ながら、希望するリポジトリの名前を指定することはできないと思います。githubで「dotfiles」と呼ばれるようにしたかったのですが、gh gemは現在のフォルダーの名前を使用していました。これは、ホームフォルダーにいるので「jason」でした。(目的の動作を求めるチケットを追加しました)

gh create-from-local

一方、このコマンドは、リモートリポジトリの名前を指定する引数を受け入れますが、新しいプロジェクトを最初から開始することを目的としています。つまり、このコマンドを呼び出すと、ローカルリポジトリを追跡する新しいリモートリポジトリを取得します。現在の位置を基準にして新しく作成されたサブフォルダーで、両方とも引数として指定された名前を使用します。

gh create dotfiles
于 2011-04-08T04:36:41.367 に答える
10

Bashシェルを使用してリモートリポジトリをすばやく作成するには

リポジトリを作成するたびに完全なコードを入力するのは面倒です

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_scriptsgithubscript.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ものです。argumentscriptYOUR_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 source ~/.bashrc ~/.profile;

  5. 次に、新しいリポジトリを作成しますdemo githubrepo demo;

于 2015-01-05T05:53:15.013 に答える
6

@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"
于 2015-03-08T07:19:46.213 に答える
6

受け入れられた回答とこれまでで最も投票された回答の両方 が現在では古くなっています。パスワード認証は廃止され、2020年11月13日の16:00UTCに削除されます。

現在、GitHub APIを使用する方法は、個人用アクセストークンを使用することです。

(すべてのCAPSキーワードを置き換える)必要があります:

  1. Webサイトから個人アクセストークンを作成します。はい、ブラウザを使用する必要がありますが、今後のすべてのアクセスに対して1回だけです。トークンを安全に保管してください。
  2. 経由でリポジトリを作成する
curl -H 'Authorization: token MY_ACCESS_TOKEN' https://api.github.com/user/repos  -d '{"name":"REPO"}'

または、最初から非公開にするには:

curl -H 'Authorization: token MY_ACCESS_TOKEN' https://api.github.com/user/repos -d '{"name":"REPO", "private":"true"}'
  1. 新しい原点を追加し、それにプッシュします。
git remote add origin git@github.com:USER/REPO.git
git push origin master

これには、トークンを毎回入力する必要があり、bashの履歴に表示されるという欠点があります。

これを回避するには、次のことができます

  1. ヘッダーをファイルに保存します(たとえば、と呼びましょうHEADER_FILE
Authorization: token MY_ACCESS_TOKEN
  1. ファイルからcurlを読み取らせます
curl -H @HEADER_FILE https://api.github.com/user/repos -d '{"name":"REPO"}' # public repo
curl -H @HEADER_FILE https://api.github.com/user/repos -d '{"name":"REPO", "private":"true"}' # private repo
  1. より安全にするために、アクセス許可を400に設定し、ユーザーをrootに設定できます。
chmod 400 HEADER_FILE
sudo chown root:root HEADER_FILE
  1. これで、ヘッダーファイルにアクセスするためにsudoが必要になります
sudo curl -H @HEADER_FILE https://api.github.com/user/repos -d '{"name":"REPO"}' # public repo
sudo curl -H @HEADER_FILE https://api.github.com/user/repos -d '{"name":"REPO", "private":"true"}' # private repo
于 2020-10-19T07:47:39.503 に答える
5

更新20200714

Githubには新しい公式CLIがあります。

... ghは、公式のGitHubCLIツールが根本的に異なるデザインでどのように見えるかを調査するのに役立つ新しいプロジェクトです。どちらのツールもGitHubをターミナルにもたらしますが、ハブはgitのプロキシとして動作し、ghはスタンドアロンツールです。

ハブとの主な違いは、これが既存のgitコマンドをラップしないことです。したがって、ハブの場合のようにgitをghにエイリアスすることはできません。

GitHub CLIをgitラッパーとは異なる方法で、つまり独自のコマンドとして設計することにしたため、ハブに追加しませんでした。結局のところ、gitのプロキシである実行可能ファイルを維持することは維持するのが難しく、また、常にgitの互換性を維持しなければならないという制限を受けたくありませんでした。最初から脆弱なパラダイムでGitHubCLIを構築したくありませんでした。

--mislav (ハブのメンテナ

元の回答

必要なのはハブです。Hubは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
于 2014-03-24T07:50:02.553 に答える
5

いいえ、 GitHubで作成するには、少なくとも1回はブラウザを開く必要があります。作成したら、 GitHub APIusernameを利用して、次のコマンドに従ってコマンドラインからリポジトリを作成できます。

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"}'
于 2017-02-03T17:09:23.090 に答える
4

2要素認証を使用するユーザーの場合、bennedichのソリューションを使用できますが、最初のコマンドにX-Github-OTPヘッダーを追加するだけで済みます。CODEを、2要素認証プロバイダーから取得したコードに置き換えます。彼のソリューションの場合と同様に、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
于 2013-12-15T19:27:32.490 に答える
3

GitHubとBitBucketのRESTAPIを使用して、Gitterと呼ばれるこのための気の利いたスクリプトを作成しました。

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=新しいリポジトリを作成する
  • -r=リポジトリプロバイダー(g = GitHub、b = BitBucket)
  • -n=リポジトリに名前を付ける
  • -l=(オプション)リポジトリでアプリの言語を設定します
于 2013-02-02T20:19:38.210 に答える
3

Rubyistsの場合:

gem install githubrepo
githubrepo create *reponame*

プロンプトに従ってユーザー名とpwを入力します

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

出典:Elikem Adadevoh

于 2014-04-24T00:26:55.930 に答える
3

すべてのPython2.7。*ユーザー向け。現在バージョン3にあるGithubAPIの周りにGitPython呼ばれるPythonラッパーがあります。またはを使用してインストールするだけです。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オブジェクトのドキュメントはこちらです。

于 2016-12-19T09:43:29.737 に答える
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"
}

ここに行くことでいつでもトークンを取り消すことができます

于 2012-10-04T14:33:05.917 に答える
2

Bennedichの回答に基づいて、これを行うためのGitエイリアスを作成しました。以下をあなたのに追加してください~/.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パスワードを入力します。

于 2013-05-27T04:03:38.497 に答える
2

私が気に入ったこのソリューションを見つけました: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>

以下のどこかに、他のbash関数を使用して、次のようなものを貼り付けることができます。

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ユーザーアカウントに新しいパブリックリモートリポジトリを作成できます。

于 2017-09-22T17:03:34.157 に答える
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
};
于 2018-01-07T16:31:04.323 に答える
2

最後に、GitHubがすべてのコア機能の新しいCLIを正式に発表したことが起こりました。

ここをチェックしてください:https ://cli.github.com/

HomeBrew経由でインストールするには:brew install gh他の方法の場合:https ://github.com/cli/cli#installation

それから

gh repo create

その他の利用可能な機能。

$ gh --help

Work seamlessly with GitHub from the command line.

USAGE
  gh <command> <subcommand> [flags]

CORE COMMANDS
  gist:       Create gists
  issue:      Manage issues
  pr:         Manage pull requests
  release:    Manage GitHub releases
  repo:       Create, clone, fork, and view repositories

ADDITIONAL COMMANDS
  alias:      Create command shortcuts
  api:        Make an authenticated GitHub API request
  auth:       Login, logout, and refresh your authentication
  completion: Generate shell completion scripts
  config:     Manage configuration for gh
  help:       Help about any command

FLAGS
  --help      Show help for command
  --version   Show gh version

EXAMPLES
  $ gh issue create
  $ gh repo clone cli/cli
  $ gh pr checkout 321

ENVIRONMENT VARIABLES
  See 'gh help environment' for the list of supported environment variables.

LEARN MORE
  Use 'gh <command> <subcommand> --help' for more information about a command.
  Read the manual at https://cli.github.com/manual

FEEDBACK
  Open an issue using 'gh issue create -R cli/cli'

これで、ターミナルからリポジトリを作成できます。

于 2020-09-21T03:46:33.900 に答える
0

担当者の理由から、これをコメントとして追加することはできません(bennedichの回答を使用した方がよい場合)が、Windowsコマンドラインの場合、正しい構文は次のとおりです。

curl -u YOUR_USERNAME https://api.github.com/user/repos -d "{\" name \ ":\" YOUR_REPO_NAME \ "}"

これは同じ基本形式ですが、一重引用符ではなく二重引用符( ")を使用し、POSTパラメーター(-dフラグの後)で送信された二重引用符をバックスラッシュでエスケープする必要があります。ユーザー名の前後の一重引用符も削除しました。ただし、ユーザー名にスペースが含まれている場合(可能ですか?)、おそらく二重引用符が必要になります。

于 2014-09-23T04:59:51.037 に答える
-1

これが私の最初の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
于 2014-04-28T14:38:47.567 に答える
-6

コマンドラインで新しいリポジトリを作成する

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
于 2016-07-08T11:17:27.813 に答える