Ubuntu Terminal命令行新建仓库并推送到远程仓库
通常情况下,在本地新建一个仓库之后,需要在远端网页端也新建一个空的同名仓库,然后将两者进行关联才能推送。
那有没有办法直接在命令行就完成从新建到推送的过程而不需要中间在网页端也操作一番呢?办法当然是有的。
下面以一个示例来说明一下。
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':
输入之后回车确认,出现下面的结果表示已经新建成功。


{
"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
}
示例结果
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
Ubuntu Terminal命令行新建仓库并推送到远程仓库的更多相关文章
- Git 创建远程仓库并克隆到本地,创建本地仓库并推送到远程仓库
配置用户信息 配置的是你个人的用户名称和电子邮件地址.这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,会随更新内容一起被永久纳入历史记录 git config --glo ...
- Git创建本地仓库并推送至远程仓库
作为一名测试同学,日常工作经常需要checkout研发代码进行code review.自己极少有机会创建仓库,一度以为这是一个非常复杂过程.操作一遍后,发现也不过六个步骤,so,让我们一起揭开这神秘面 ...
- Git操作_本地仓库第一次推送到远程仓库
实现目的: 本地已经安装好Git,pycham已经有一个项目,打算放到Git远程仓库 前提条件:本地配置好了公钥,且GIT 上关联好公钥,步骤如下: git本地仓库连接github操作步骤:windo ...
- 使用git命令将本地项目推送到远程仓库
将本地项目推送到远程仓库 这里先放一张图, 有助于理解git命令 1. 在GitHub上新建一个仓库 注意不要勾选自动生成README.md文件, 否则会产生某些问题, README.md文件到时可以 ...
- git将本地仓库推送到远程仓库
如何将本地仓库推送到公司远程仓库? 1:前提是你本地安装好git.先把远程git仓库克隆到本地 git clone 远程仓库的地址(SSH) 2: git branch //查看本地分支 3: g ...
- 如何把已有的本地git仓库,推送到远程新的仓库(github private)并进行远程开发;
最近因为疫情,在家干活,连接不上之前的gitlab 服务器:所以不得把现有的代码迁移到github 的私有仓库来进行开发:下面简要记录迁移的过程: 首先,确保你已经配置好本地访问远程私有仓库的所有权限 ...
- git 本地项目推送至远程仓库
1 在本地文件夹下创建一个 Git 仓库(如test目录下) git init 2 此时test文件夹即是你的maste主分支,你可以在改文件夹下写自己的项目 3 将test文件夹下的内容提交至暂存区 ...
- Git如何把本地代码推送到远程仓库
Git如何把本地代码推送到远程仓库 1. 初始化版本库 $ git init 2. 添加文件到版本库(只是添加到缓存区),.代表添加文件夹下所有文件 $ git add . 3. 把添加的文件提交到版 ...
- Git本地初始化并推送到远程仓库
git常用命令 1.全局配置git用户名邮箱 git config --global user.name '你的名字' git config --global user.email '你的邮箱地址' ...
随机推荐
- 查询id为键的数组
public static function getKeyValuePairs() { $sql = 'SELECT id, name FROM ' . self::tableName() . ' O ...
- Telegraf+Influxdb+Grafana自动化运维监控
概述:Telegraf收集信息,influxdb时序数据库存储数据,grafana平台展示数据,并进行监控告警,组成一个自动化运维监控平台. 一.influxdb InfluxDB是一个由Infl ...
- [WPF] 让第一个数据验证出错(Validation.HasError)的控件自动获得焦点
1. 需求 在上一篇文章 <在 ViewModel 中让数据验证出错(Validation.HasError)的控件获得焦点>中介绍了如何让 Validation.HasError 的控件 ...
- 腾讯云联合多家生态伙伴,重磅开源 SuperEdge 边缘容器项目
在2020年12月19-20日腾讯 Techo Park 开发者大会上,腾讯云联合英特尔.VMware 威睿.虎牙.寒武纪.美团.首都在线,共同发布 SuperEdge 边缘容器开源项目. Super ...
- C语言测一个浮点数的位数长度
测浮点数的位数牵扯到一个精度的问题,用普通的测整形数值的方法不能实现,于是我自己写了一个测浮点数的函数. #include <stdio.h> //for printf int lengt ...
- 使用JWT+RSA完成SSO单点登录
无状态登录原理 1.1.什么是有状态? 有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session. 例如登录:用户登 ...
- 详细介绍如何自研一款"博客搬家"功能
前言 现在的技术博客(社区)越来越多,比如:imooc.spring4All.csdn.cnblogs或者iteye等,有很多朋友可能在这些网站上都发表过博文,当有一天我们想自己搞一个博客网站时就会发 ...
- Interface注意事项
Interface 成员声明 声明属性,默认static & final 声明方法,默认public interface Instrument { int VALUE = 5; // stat ...
- 解决github下载速度慢问题
众所周知,GitHub是一个巨大的开源宝库,以及程序员和编程爱好者的聚集地,包括我之前推荐的诸多优秀的开源项目全部都是位于GitHub上.但是每当我们看到优秀的开源项目,准备去 下(bai)载(pia ...
- docker nginx 自定义配置容器
准备 拉取nginx官方镜像 docker pull nginx etc/nginx/ 下新建目录 cert 和 conf cert 存放证书 conf 存放配置文件 mkdir /etc/nginx ...