Create a Github repository from command line

前端 未结 4 1233
死守一世寂寞
死守一世寂寞 2020-12-01 16:30

I have been trying to push my local repo changes to github from command line. I have been away from git for a while now so I don\'t remember a few things. For the past hour

相关标签:
4条回答
  • 2020-12-01 17:09

    The answer by mickiewicz using the REST API via curl has numerous deficiencies which are addressed in this answer. Notably, this answer:

    1. authorizes against GitHub using the necessary token authorization, not the obsolete password authentication
    2. makes curl exit with a nonzero code in case of an error (via -f)
    3. parameterizes the repo name
    4. makes a private repo (default is public)

    First, obtain a token with access to the repo scope.

    REPO_NAME=foo1
    GITHUB_TOKEN=0000000000000000000000000000000000000000  # Enter your own.
    
    curl -f -X POST \
      -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github.v3+json" \
      https://api.github.com/user/repos -d "{\"name\": \"${REPO_NAME}\", \"private\": true}"
    

    This answer is relevant only for creating a repository under a user. The request for creating a repository under an organization is slightly different.

    If you don't mind installing the GitHub CLI, refer to the answer by VonC instead.

    0 讨论(0)
  • 2020-12-01 17:10

    Github API should make work.

    First create repo using curl and API https://developer.github.com/v3/repos/#create

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

    and then you can add remote and push as you have described before:

    git remote add origin git@github.com:user/repository_name.git && git push origin master

    0 讨论(0)
  • 2020-12-01 17:12

    You need to create the repo before pushing, but there's hub that automates this for you:

    git init newRepo
    cd newRepo
    hub create
    

    Use the -p switch to hub create to create a private repository. To push the local master branch, issue:

    git push -u origin HEAD
    

    The tool can also create pull requests, open the project page, check the CI status, clone existing repos by specifying only username/repo, and a few more things.

    The project page suggests aliasing git to hub (because the latter forwards unknown commands to git), but I don't recommend this, even if just to distinguish "bare" Git commands from the hub candy.

    0 讨论(0)
  • 2020-12-01 17:17

    cli.github.com is now the successor of hub.

    It allows for repository creation from command line, since cli 0.6, and PR 547

    Create a new GitHub repository.

    Usage:

    Create a new GitHub repository.

    Use the "ORG/NAME" syntax to create a repository within your organization.

    Usage:

    gh repo create [<name>] [flags]
    

    Flags:

    -d, --description string   Description of repository
        --enable-issues        Enable issues in the new repository (default true)
        --enable-wiki          Enable wiki in the new repository (default true)
    -h, --homepage string      Repository home page URL
        --public               Make the new repository public
    -t, --team string          The name of the organization team to be granted access
    

    Global Flags:

     --help                  Show help for command
     -R, --repo OWNER/REPO   Select another repository using the OWNER/REPO format
    
    0 讨论(0)
提交回复
热议问题