• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

Git基本操作之Terminal命令行新建仓库并推送到远程仓库

其他 coffee_tea_or_me 2226次浏览 0个评论

通常情况下,在本地新建一个仓库之后,需要在远端网页端也新建一个空的同名仓库,然后将两者进行关联才能推送。

那有没有办法直接在命令行就完成从新建到推送的过程而不需要中间在网页端也操作一番呢?办法当然是有的。

下面以一个示例来说明一下。

1. 准备测试文件

首先做一些文件的准备,作为此次实验新建的本地仓库 gittest 以及新建本地文件 README.md 并向此文件写入 # git test 的内容,当前文件夹目录结构为 tree 指令结果所示。

$ mkdir gittest

$ cd gittest

$ touch README.md

$ echo "# git test" >> README.md

$ tree .

.
└── README.md

2. 初始化本地仓库

对本地仓库进行初始化

$ git init

$ git add README.md

$ git commit -m "update README"

提交时如果出现下面的提示,表示我们需要首先认证自己的身份,以向项目表明是谁在提交。

*** Please tell me who you are.

Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

根据提示操作即可,如下示例。

$ git config --global user.email "phillee2016@163.com"

$ git config --global user.name "philleer"

$ git commit -m "update README"

至此本地仓库已经建立完成,并且修改保存到 stage 当中。

3. 本地新建远程仓库

正常的流程是登陆 GitHub,在右上角点击 New,新建一个远程仓库,然后再本地通过 git remote add origin https://github.com/philleer/gittest.git 将已有的本地仓库与之关联,然后将本地仓库内容推送到GitHub上。

现在我们通过命令行来实现这一操作。

$ curl -u 'philleer' https://api.github.com/user/repos -d '{"name":"gittest"}'

只需要把上面命令行中的 philleer 改成自己的用户名,gittest 改成自己的新建仓库名。

此时会让你输入登陆密码,按指示输入即可。

Enter host password for user 'philleer':

输入之后回车确认,出现下面的结果表示已经新建成功。

Git基本操作之Terminal命令行新建仓库并推送到远程仓库
Git基本操作之Terminal命令行新建仓库并推送到远程仓库

{
  "id": 183884632,
  "node_id": "MDEwOlJlcG9zaXRvcnkxODM4ODQ2MzI=",
  "name": "gittest",
  "full_name": "philleer/gittest",
  "private": false,
  "owner": {
    "login": "philleer",
    "id": 22950478,
    "node_id": "MDQ6VXNlcjIyOTUwNDc4",
    "avatar_url": "https://avatars1.githubusercontent.com/u/22950478?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/philleer",
    "html_url": "https://github.com/philleer",
    "followers_url": "https://api.github.com/users/philleer/followers",
    "following_url": "https://api.github.com/users/philleer/following{/other_user}",
    "gists_url": "https://api.github.com/users/philleer/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/philleer/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/philleer/subscriptions",
    "organizations_url": "https://api.github.com/users/philleer/orgs",
    "repos_url": "https://api.github.com/users/philleer/repos",
    "events_url": "https://api.github.com/users/philleer/events{/privacy}",
    "received_events_url": "https://api.github.com/users/philleer/received_events",
    "type": "User",
    "site_admin": false
  },
  "html_url": "https://github.com/philleer/gittest",
  "description": null,
  "fork": false,
  "url": "https://api.github.com/repos/philleer/gittest",
  "forks_url": "https://api.github.com/repos/philleer/gittest/forks",
  "keys_url": "https://api.github.com/repos/philleer/gittest/keys{/key_id}",
  "collaborators_url": "https://api.github.com/repos/philleer/gittest/collaborators{/collaborator}",
  "teams_url": "https://api.github.com/repos/philleer/gittest/teams",
  "hooks_url": "https://api.github.com/repos/philleer/gittest/hooks",
  "issue_events_url": "https://api.github.com/repos/philleer/gittest/issues/events{/number}",
  "events_url": "https://api.github.com/repos/philleer/gittest/events",
  "assignees_url": "https://api.github.com/repos/philleer/gittest/assignees{/user}",
  "branches_url": "https://api.github.com/repos/philleer/gittest/branches{/branch}",
  "tags_url": "https://api.github.com/repos/philleer/gittest/tags",
  "blobs_url": "https://api.github.com/repos/philleer/gittest/git/blobs{/sha}",
  "git_tags_url": "https://api.github.com/repos/philleer/gittest/git/tags{/sha}",
  "git_refs_url": "https://api.github.com/repos/philleer/gittest/git/refs{/sha}",
  "trees_url": "https://api.github.com/repos/philleer/gittest/git/trees{/sha}",
  "statuses_url": "https://api.github.com/repos/philleer/gittest/statuses/{sha}",
  "languages_url": "https://api.github.com/repos/philleer/gittest/languages",
  "stargazers_url": "https://api.github.com/repos/philleer/gittest/stargazers",
  "contributors_url": "https://api.github.com/repos/philleer/gittest/contributors",
  "subscribers_url": "https://api.github.com/repos/philleer/gittest/subscribers",
  "subscription_url": "https://api.github.com/repos/philleer/gittest/subscription",
  "commits_url": "https://api.github.com/repos/philleer/gittest/commits{/sha}",
  "git_commits_url": "https://api.github.com/repos/philleer/gittest/git/commits{/sha}",
  "comments_url": "https://api.github.com/repos/philleer/gittest/comments{/number}",
  "issue_comment_url": "https://api.github.com/repos/philleer/gittest/issues/comments{/number}",
  "contents_url": "https://api.github.com/repos/philleer/gittest/contents/{+path}",
  "compare_url": "https://api.github.com/repos/philleer/gittest/compare/{base}...{head}",
  "merges_url": "https://api.github.com/repos/philleer/gittest/merges",
  "archive_url": "https://api.github.com/repos/philleer/gittest/{archive_format}{/ref}",
  "downloads_url": "https://api.github.com/repos/philleer/gittest/downloads",
  "issues_url": "https://api.github.com/repos/philleer/gittest/issues{/number}",
  "pulls_url": "https://api.github.com/repos/philleer/gittest/pulls{/number}",
  "milestones_url": "https://api.github.com/repos/philleer/gittest/milestones{/number}",
  "notifications_url": "https://api.github.com/repos/philleer/gittest/notifications{?since,all,participating}",
  "labels_url": "https://api.github.com/repos/philleer/gittest/labels{/name}",
  "releases_url": "https://api.github.com/repos/philleer/gittest/releases{/id}",
  "deployments_url": "https://api.github.com/repos/philleer/gittest/deployments",
  "created_at": "2019-04-28T09:10:16Z",
  "updated_at": "2019-04-28T09:10:16Z",
  "pushed_at": "2019-04-28T09:10:17Z",
  "git_url": "git://github.com/philleer/gittest.git",
  "ssh_url": "git@github.com:philleer/gittest.git",
  "clone_url": "https://github.com/philleer/gittest.git",
  "svn_url": "https://github.com/philleer/gittest",
  "homepage": null,
  "size": 0,
  "stargazers_count": 0,
  "watchers_count": 0,
  "language": null,
  "has_issues": true,
  "has_projects": true,
  "has_downloads": true,
  "has_wiki": true,
  "has_pages": false,
  "forks_count": 0,
  "mirror_url": null,
  "archived": false,
  "disabled": false,
  "open_issues_count": 0,
  "license": null,
  "forks": 0,
  "open_issues": 0,
  "watchers": 0,
  "default_branch": "master",
  "permissions": {
    "admin": true,
    "push": true,
    "pull": true
  },
  "allow_squash_merge": true,
  "allow_merge_commit": true,
  "allow_rebase_merge": true,
  "network_count": 0,
  "subscribers_count": 0
}

示例结果

多提一句,这里还有一些其他的参数可以设置,比如对你新建的仓库的简短描述、是否设置为私人仓库(默认是public)、是否使能issue(默认true)等等,感兴趣的伙伴可以到官网查看Parameters。

Git基本操作之Terminal命令行新建仓库并推送到远程仓库

文档里面还附有设置参数时的代码示例

Git基本操作之Terminal命令行新建仓库并推送到远程仓库
Git基本操作之Terminal命令行新建仓库并推送到远程仓库

curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/user/repos \
  -d '{"name":"name"}'

create-a-repo

 

4. 关联本地仓库与远程仓库

然后将本地仓库与之关联,并推送本地仓库内容。按指示输入账户密码即可。

$ git remote add origin https://github.com/philleer/gittest.git

$ git push -u origin master

Username for 'https://github.com': philleer

Password for 'https://philleer@github.com':
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 264 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/philleer/gittest.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

这样就完成了!不用每次都打开网页新建仓库,让后再回到本地进行关联了。

本地一条龙,全程无切换。

参考资料

[1] 命令行方式下在Github上新建远程仓库并PUSH https://blog.csdn.net/csm201314/article/details/78254777

[2] Create a repository for the authenticated user https://docs.github.com/en/rest/reference/repos#create-a-repository-for-the-authenticated-user


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明Git基本操作之Terminal命令行新建仓库并推送到远程仓库
喜欢 (0)

您必须 登录 才能发表评论!

加载中……