我创建了一个新的本地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访问。
有一个官方的github宝石,我认为,这样做。随着我的学习,我会尝试添加更多的信息,但我现在才刚刚发现这个宝石,所以我知道的还不多。
更新:设置我的API密钥后,我能够通过创建命令在github上创建一个新的repo,但是我不能使用create-from-local命令,这应该是采取当前的本地repo,并在github上做出相应的远程。
$ gh create-from-local
=> error creating repository
如果有人对此有一些见解,我很想知道我做错了什么。已经有问题了。
更新:我最终让这个工作。我不确定如何重新产生的问题,但我只是从头开始(删除。git文件夹)
git init
git add .emacs
git commit -a -m "adding emacs"
现在这一行将创建远程回购,甚至推到它,但不幸的是,我认为我不能指定我想要的回购的名称。我想要它被称为“dotfiles”在github上,但gh宝石只是使用当前文件夹的名称,这是“jason”,因为我是在我的家庭文件夹。(我添加了一张要求所需行为的票)
gh create-from-local
另一方面,这个命令接受一个参数来指定远程repo的名称,但它用于从头开始一个新项目,即在调用这个命令后,您将获得一个新的远程repo,它在相对于当前位置的新创建的子文件夹中跟踪一个本地repo,两者的名称都指定为参数。
gh create dotfiles
简单步骤(使用git + hub => GitHub):
Install Hub (GitHub).
OS X: brew install hub
having Go: go get github.com/github/hub
otherwise (having Go as well):
git clone https://github.com/github/hub.git && cd hub && ./script/build
Go to your repo or create empty one: mkdir foo && cd foo && git init.
Run: hub create, it'll ask you about GitHub credentials for the first time.
Usage: hub create [-p] [-d DESCRIPTION] [-h HOMEPAGE] [NAME]
Example: hub create -d Description -h example.com org_name/foo_repo
Hub will prompt for GitHub username & password the first time it needs to access the API and exchange it for an OAuth token, which it saves in ~/.config/hub.
To explicitly name the new repository, pass in NAME,
optionally in ORGANIZATION/NAME form to create under an organization
you're a member of.
With -p, create a private repository, and with
-d and -h set the repository's description and homepage URL, respectively.
To avoid being prompted, use GITHUB_USER and GITHUB_PASSWORD environment variables.
Then commit and push as usual or check hub commit/hub push.
有关更多帮助,请运行:hub help。
参见:在GitHub中使用命令行导入Git存储库。
更新20200714
Github有了一个新的官方CLI。
...gh是一个新项目,帮助我们探索官方GitHub CLI工具在完全不同的设计下可以是什么样子。虽然这两个工具都将GitHub带到终端,但hub充当git的代理,而gh是一个独立的工具。
与hub的核心区别在于,它不会覆盖现有的git命令。所以,你不能像使用hub一样,将git别名为gh。
我们没有将它添加到hub,因为我们决定将GitHub CLI设计成与git包装器不同的方式,即作为它自己的命令。事实证明,维护一个作为git代理的可执行文件是很难维护的,而且我们也不想被总是保持git兼容性所限制。我们不想在一个从一开始就很脆弱的范例上构建GitHub CLI。
——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