当前位置:  开发笔记 > 运维 > 正文

是否可以在不打开浏览器的情况下从CLI在GitHub上创建远程仓库?

如何解决《是否可以在不打开浏览器的情况下从CLI在GitHub上创建远程仓库?》经验,为你挑选了7个好方法。

我创建了一个新的本地Git存储库:

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

是否有任何git命令来创建一个新的远程仓库并从此处将我的提交推送到GitHub?我知道启动浏览器并转向创建新存储库没什么大不了的,但如果有办法从CLI实现这一点,我会很高兴.

我阅读了大量的文章,但我没有提到如何使用git命令从CLI创建远程仓库.Tim Lucas的好文章设置一个新的远程git存储库是我找到的最接近的,但GitHub不提供shell访问.



1> bennedich..:

用于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


第一个命令的一个小问题是你在你的`〜/ .bash_history`中留下你的GitHub密码.我建议用`-u'USER'`替换`-u'USER:PASS'`,然后curl会以交互方式询问你的密码.
要从一开始就使repo成为私有,请使用:`curl -u'USER'https://api.github.com/user/repos -d'{"name":"REPO","private":"true" }'`
不要忘记您可以[生成访问令牌](https://github.com/settings/applications)并以这种方式使用它:`curl https://api.github.com/user/repos?access_token= myAccessToken -d'{"name":"REPO"}'`.:-)
我写了一个bash脚本来为我们节省一些打字.采取用户输入并具有合理的默认值:https://gist.github.com/robwierzbowski/5430952
以下是如何将其添加为git别名:`git config --global alias.gh-create'!sh -c"curl -u \"USERNAME \"https://api.github.com/user/repos -d \"{\\\"name \\\":\\\"$ 1 \\\"} \"" - '`

2> mipadi..:

您可以使用GitHub API通过命令行创建GitHub存储库.查看存储库API.如果向下滚动大约三分之一,您将看到一个标题为"创建"的部分,该部分解释了如何通过API创建存储库(正如上面的部分解释了如何使用API​​来交换存储库) ).显然你不能用git它来做,但你可以通过命令行使用像这样的工具curl.

在API之外,没有办法通过命令行在GitHub上创建一个repo.如你所知,GitHub不允许shell访问等,所以除了GitHub API之外,创建repo的唯一方法是通过GitHub的web界面.


谢谢一堆mipadi!不知道GitHub API.对于其他遇到同样问题的人来说,这就是我基本上做的:`curl -F'login = username'-F'token = API Token'https://www.github.com/api/v2/yaml/repos/create - F name = reponame`.您的API令牌可以在GitHub站点上找到,单击*帐户设置*,查找*管理信息*和*API令牌*(32个字符长的字符串).
API版本3语法通过@bennedich http://stackoverflow.com/a/10325316/305633给出
@cseder:问题是询问是否可以通过GitHub API在GitHub上创建远程仓库,而不是如何创建新仓库并推送到GitHub上的现有仓库.
@cseder:Git不需要这个来创建一个repo,但是在GitHub*上设置一个*.我不认为Mercurial允许您通过推送到不存在的仓库来在远程服务器上创建仓库.

3> Nay..:

这可以通过三个命令完成:

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是一个unix命令(上面也适用于mac),它检索URL并与之交互.它通常已经安装.

"-u"是一个curl参数,它指定用于服务器身份验证的用户名和密码.

如果您只是提供用户名(如上例所示),curl将提示输入密码.

如果您不想输入密码,请参阅有关身份验证的 githubs api文档

"-d"是一个curl参数,允许您使用请求发送POST数据

您正在以githubs 定义的API格式发送POST数据

"name"是唯一需要的POST数据; 我还想包括"描述"

我发现用单引号引用所有POST数据是好的

定义要推送的位置

git remote add origin git@github.com:nyeates/projectname.git

在github上添加连接(远程)repo的位置和存在的定义

"origin"是git用于源来源的默认名称

技术上没有来自github,但现在github repo将成为记录的来源

"git@github.com:nyeates"是一个ssh连接,假设您已经使用github设置了可信的ssh密钥对.

将本地存储库推送到github

git push origin master

从主本地分支推送到源远程(github)



4> cavalcade..:

如果您安装defunkt的优秀Hub工具,那么就变得如此简单

git create

用作者的话说," hub是git的命令行包装器,可以让你在GitHub上更好. "


我喜欢'hub`!同样有用的是`hub` - 或者`hub`通常是`git` ...`git fork`的别名,它为你所在的克隆仓库的`pwd`创建一个repo的分支. .. 好极了.
这个工具太棒了!它负责为您存储身份验证令牌,因此您无需反复输入密码.还要检查github的ZSH插件.

5> kenorb..:

简单步骤(使用git+ hub=> GitHub):

    安装集线器(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
    

    转到您的仓库或创建空仓:mkdir foo && cd foo && git init.

    运行:hub create,它会第一次询问有关GitHub凭据的信息.

    用法: hub create [-p] [-d DESCRIPTION] [-h HOMEPAGE] [NAME]

    例: hub create -d Description -h example.com org_name/foo_repo

    Hub首次需要访问API时会提示输入GitHub用户名和密码,并将其交换为OAuth令牌,然后保存~/.config/hub.

    要明确命名新存储库,请传入NAME,可选地以ORGANIZATION/NAME表单形式在您是其成员的组织下创建.

    使用-p,创建一个私有存储库,并分别使用 -d-h设置存储库的描述和主页URL.

    为避免被提示,请使用GITHUB_USERGITHUB_PASSWORD环境变量.

    然后像往常一样提交和推送或检查hub commit/ hub push.

如需更多帮助,请运行:hub help.

另请参阅:使用 GitHub上的命令行导入Git存储库.



6> Jason Marcel..:

有一个官方的github宝石,我认为,这样做.我会尝试在学习时添加更多信息,但我现在才发现这个宝石,所以我还不知道.

更新:设置我的API密钥后,我可以通过create命令在github上创建一个新的repo ,但是我无法使用该create-from-local命令,该命令应该采用当前的本地存储并在github上进行相应的远程控制.

$ 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


这个项目在几年内没有任何工作,对我来说没有用,而且,如[暗示] [这里](https://github.com/defunkt/github-gem/issues/97),死了 它显然已被[hub](https://github.com/github/hub)工具所取代,如[本答案](http://stackoverflow.com/a/13366414/229792)中所述.

7> Nasif Md. Ta..:

使用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

更简单的方法是:

    在目录中创建一个shell脚本,即/ home/USER_NAME/Desktop/my_scripts命名 githubscript.sh

    修改以下代码并将其保存到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;

NB $1repository nameargumentscriptYOUR_GITHUB_USER_NAME在保存脚本之前调用 Change 传递的.

    script文件 设置所需的权限 chmod 755 githubscript.sh

    在环境配置文件中包含scripts目录. nano ~/.profile; export PATH="$PATH:$HOME/Desktop/my_scripts"

    还设置别名以运行githubscript.sh文件. nano ~/.bashrc; alias githubrepo="bash githubscript.sh"

    现在重新加载终端中的.bashrc.profile文件. source ~/.bashrc ~/.profile;

    现在创建一个新的存储库,即demo: githubrepo demo;

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有