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 '你的邮箱地址' ...
随机推荐
- python 连接数据库操作
import mysql #打开数据库连接(用户名,密码,数据库名) db = mysql.connect("localhost","testuser",&qu ...
- 移动端 rem和flexible
一.rem布局 rem是相对于根元素的字体大小单位. 假设html的字体大小为16px,那么1rem = 16px; 一旦根元素html定义的font-size变化,整个页面中运用到的rem都会随之变 ...
- day019python之面向对象基础1
面向对象基础 目录 面向对象基础 1 面向对象基础 1.1 面向对象的由来 1.2 面向对象编程介绍 1.2.1 回顾面向过程设计 1.2.2 面向对象设计 2 类与对象 2.1 基本使用 2.2 示 ...
- 学习JUC源码(3)——Condition等待队列(源码分析结合图文理解)
前言 在Java多线程中的wait/notify通信模式结尾就已经介绍过,Java线程之间有两种种等待/通知模式,在那篇博文中是利用Object监视器的方法(wait(),notify().notif ...
- MySQL在Windows下压缩包方式安装与卸载
一.MySQL的卸载: 1.停止MySQL服务 2.移除MySQL 二.安装: 1.官网下载压缩版 https://downloads.mysql.com/archives/community/ 2. ...
- DotNet .Net Framework与Net Core与Net Standard 以及.NET5
Net Framework 是什么 1.Net Framework 是Net的一种实现,在此类库上我们可以使用C#,VB,F#进行程序编写,主要用于构建Windows 下的应用程序 2.有两部分组成部 ...
- 根据数据库反向生成PD
原博文 http://www.360doc.com/content/14/0820/20/12385684_403420399.shtml 步骤 File___Reverse Engineer___D ...
- Autofac的基本使用---1、前言
Autofac的基本使用---目录 代码地址 https://github.com/catbiscuit/AutofacStudy 参考网上的大神,原博文地址 https://www.cnblogs. ...
- python序列(三)列表元素访问与计数
1.使用下标直接访问列表元素,如果指定下标不存在,则抛出异常. >>> alist[3] 1 >>> alist[3]=5.5 >>> alist ...
- 7.mysql8.0版本MGR搭建
搭建MGR 1.配置文件 loose-group_replication_ip_whitelist = 192.168.124.0/24 loose-group_replication_start_o ...