3分钟带你学会git向github推送!
如果你是一个程序员,你还不知道git和github的话,就说明你low了;那也没关系,赶紧戳链接去下载就行~~
git:分布式的版本管理工具,具体的我就不在这里百科了,大家可以问问度娘,要善于利用度娘,在我们现阶段学习的过程中所遇到的95%的问题大概都是可以通过度娘解决的。既然都要开始使用git了,自己肯定要对git是什么,可以干什么要有一定的了解的。
GitHub:gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。
学习并使用了一段时间git之后,想着自己当初摸黑入门的坎坷,就想着把git向github推送的入门使用写下来,希望可以帮助大家,当然,不得不推荐廖神(廖雪峰大神的git教程,通俗易懂,大家去看看)
注意:我所讲述的是基于windows平台的
第一步:下载git
下载地址:https://git-for-windows.github.io(有时候打不开可能是网速太差所导致的,所以换个网或者耐心等一下哇)
第二步:
在开始菜单中找到Git,并打开其中的gitbash
打开就会出现一个和linux终端很像的页面:
这个时候我们先输入一个git试试:会出现很多提示信息,可以看看(当然在能看懂英语的前提下)
当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中,下面就是配置用户名和email。
第三步:设置我们的信息
分别输入命令
$ git config –global user.name “Your Name”
注意:是输入你自己的名字和邮箱,名字可以随意
第四步:创建版本库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:
在当前的目录下创建了一个文件夹test,进入这个文件夹
$ mkdir test
进入这个文件夹,输入pwd 命令还可以查看当前文件夹位于什么地方。
$ cd test
(如果是你在电脑上自己随便找的位置创建的文件夹,记得要输入绝对路!!!如果是windows的电脑也不要使用带有中文的路径,要不然找不着别赖我~)
通过命令把这个目录变成Git可以管理的仓库,初始化版本库
$ git init
例如自己在桌面创建一个test的文件夹,gitbash里需要输入的命令为:
注意:我的当前目录就是在桌面!!!提示我们已经创建成功!
瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
如果你没有看到目录,那是因为这个目录默认是隐藏的,用命令就可以看见。
这下这个test文件夹就真的是git的本地版本库了。
第五步:提交文件到版本库
这里我们可以先添加一个文件试试!(同样手动添加和命令添加是一样的)
$ vim readme.txt
可以什么都要不编辑退出来(如果不会命令请手动添加)
然后:
$ git add readme.txt
什么提示都没有,说明是好的,那谁好像说过,没有提示就一切都好!
这句命令的操作是将readme.txt从工作区添加到版本库中,细说点就是版本库中的暂存区;
其实版本库里面又分为暂存区(stage)和master分支,在这里我就简单的说明一下,想要详细了解的同学可以去廖雪峰大神的官网上看;
接着执行:
$ git commit -m “附加说明”
这个命令是将readme.txt 文件加入到master分支上面并且添加你想的附加说明;
这两句命令执行完之后,readme.txt文件就正式加入到了版本库中;
第六步:进去github官网注册一个账号
这个步骤我就省略了 (这个教程已经很详细了,这里就不再赘述了)
注册教程:http://jingyan.baidu.com/article/455a9950abe0ada167277864.html
第七步:连接git 和 github
因为git和github是通过SSH密钥连接的,以保证上传代码的是你本人,是一种保护措施;所以,先在你的git的主目录下找到 .ssh的目录,其中有两个文本:
id_rsa 和 id_rsa.pub
其中id_rsa是你的私有密钥,而我们要用到的是id_rsa.pub这个文件中的内容,打开这个文本,其中是你的公有密钥SSH,复制里面的内容;
进入你的github,头像那块有个下拉菜单,点击其中的settings
在这个页面中的左边有一列选项,找到其中的SSH and …. 点击, 会出现一个页面,让你添加一个新的 SSH,其中的title可以随意命名, 将刚才复制的SSH粘贴到底下的文本框中,再点击add ssh key;
我们成功的连接到了本地;
第八步:从本地向远程推送
好了,重头戏来了,怎么连接github的远程仓库和本地仓库,当然,现在你还没有远程仓库;
创建远程仓库:在github的页面上右上方有一个加号“+”的标志,鼠标放过去点击,会有一个下拉菜单,选择 new repository,新的仓库,点击:
对新仓库的一些基本设置
新仓库设置好之后会进入下面的页面,复制仓库的ssh
接下里有两种可选操作,一种是在本地克隆一个远程的仓库,一种是本地建好了一个仓库,直接和这个远程仓库连接,我么选择第二种:
刚开始,我们不是在本地建了一个test的本地库嘛,现在继续在这个库里操作:进入到test之后,输入命令:$ git remote add origin (刚才复制的远程库的SSH)
注意:这里要输入你自己的远程库的ssh !!!
现在本地库和远程库已经连接上了;
我们可以在编辑一个文件 learngit.txt 添加到本地库中,提交到分支master上,然后开始向远程库推送;
依次输入命令:
vim learngit.txt(不会vim的可以手动添加,前面过)
git add learngit.txt
gitcommit−m“firstcommit”(第一次提交)
git push -u origin master(推送到远程仓库)
-u这个参数在第一次推送的时候使用,下一次使用的时候可以忽略
当你第一次使用Git的或者命令连接GitHub时,会得到一个警告:
这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入回车即可。
Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:
这个警告只会出现一次,后面的操作就不会有任何警告了。
有的同学有时候会遇到一个错误: error;。。。。什么的
可能是设置远程库的时候默认生成了一个README.md的文件,不要慌,
你在这里输入一个命令:
$git pull –rebase origin master
不要问我这个命令是什么意思,想要深入学习的话,自己去查;
接下来我们可以刷新一下,github上面的test库看看
可以看到,learngit.txt已经存在了,这样就大功告成了!
最后,如果你觉得以后添加文件用命令复杂的话,其实在github上面也可以直接添加,在你的test库点击之后,在右下方有一个绿色按钮(ADD a README)可以点击,直接编辑文件添加!
每次提交之后,github你的主页会有 一个表格来展示你的提交,不同深度的绿色代表你提交文件的多少,效果如下:
git 向 github的推送小白教程就到这里了,有错误还请大家指出~
- RESTful API 设计最佳实践
- python爬虫beautifulsoup4系列4-子节点
- 元胞自动机实现多数分类算法
- 51Nod 1289 大鱼吃小鱼(模拟,经典好题)
- 用Metaclass实现一个精简的ORM框架
- HDU 2504 又见GCD(最大公约数与最小公倍数变形题)
- Selenium2+python自动化63-二次封装(click/send_kesy)
- Selenium2+python自动化65-js定位几种方法总结
- HDU 2502 月之数(二进制,规律)
- Tensorflow实战系列:手把手教你使用CNN进行图像分类(附完整代码)
- HDU 2503 a/b + c/d(最大公约数与最小公倍数,板子题)
- python接口自动化6-重定向(Location)
- 2017广东工业大学程序设计竞赛初赛 题解&源码(A,水 B,数学 C,二分 D,枚举 E,dp F,思维题 G,字符串处理 H,枚举)
- python接口自动化7-参数关联
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 浅析白盒审计中的字符编码及SQL注入
- JS做类型检测到底有几种方法?看完本文就知道了!
- HDwiki时间延迟盲注及利用代码
- JS作用域和变量提升看这一篇就够了
- 不知道怎么提高代码复用性?看看这几种设计模式吧!
- 框架源码中用来提高扩展性的设计模式
- 不知道怎么提高代码质量?来看看这几种设计模式吧!
- 手写React的Fiber架构,深入理解其原理
- emlog后台作者权限SQL注入
- 手写一个Redux,深入理解其原理
- 手写一个React-Redux,玩转React的Context API
- 使用React-Router实现前端路由鉴权
- 手写React-Router源码,深入理解其原理
- 深入Node.js的模块加载机制,手写require函数
- Redux异步解决方案之Redux-Thunk原理及源码解析