Github 与 Git,新手初次接触的尴尬历程
安装软件、搭建环境的时候,遇到各种各样的问题又找不到教程作者的时候是非常烦的,如果看我的教程而安装不成功,可以随时私信我 本文建立在已有GitHub账号的基础上
安装Git
这里不会给你官网地址,太慢了。
前往淘宝镜像下载,滑到最下面选最新版,
注意看网址。
下载好后安装默认下一步即可,安装完后菜单会有三个程序:
Git Bash:Unix与Linux风格的命令行,使用最多(推荐)
Git CMD:Windows风格的命令行
Git GUI:图形界面的Git
在桌面空白处右键鼠标,若出现“Git GUI Here”、“Git Bash Here”则安装成功:(此处先记一下)
GitHub上创建工作区
先点那只猫,从首页进入这个界面,然后创建一个项目,设置为公有。
Git绑定GitHub
这张图的操作是注册本地账号,注册邮箱
这张图是配置ssh,第一次会让你输入秘钥存放位置,默认就回车。 第二次是让你设置密码,最好设一个。
打开.ssh下的id_rsa.pub文件,复制里面的内容,直接把.pub文件改成doc文件,问题不大。
进入github,头像->settings->SSH and GPG keys->new SSH key。(头像在右上角)
输入命令行ssh -T git@github.com测试,如图就成功连上github。
关联远程仓库
当我们需要让Git去管理某个新项目/已存在项目的时候,就需要创建仓库了。注意,创建仓库时使用的目录不一定要求是空目录,选择一个非空目录也是可以的,但是不建议在现有项目上来学习Git,否则造成的一切后果概不负责! 注意:为了避免在学习或使用过程中出现各种奇葩问题,请不要使用包含中文的目录名(父目录亦是如此)。
新手不懂的话,先这样,动起来之后再自己摸索,和SVN差不多
- 创建远程仓库 在首页左上角点击New 新建远程仓库
填写仓库名,描述等,选择语言和证书。
- clone到本地
上面的第一个失败,是因为项目被设置了私有。 私有项目改公有
这张图里有两个操作讲一下:
Git仓库初始化(让Git知道,它需要来管理这个目录) 指令:git init 表现:执行之后会在项目目录下创建“.git”的隐藏目录,这个目录是Git所创建的,不能删除,也不能随意更改其中的内容
查看当前状态:git status 【非必要】
上边第一个报错,是因为确实没有文件夹,第二个报错,是有空格,当然,这个空格你看不到,反正回删键多点几下。
这张图上的问题是由于,项目建立在了非空文件夹上。。。。
通过命令关联
git remote #查看已关联的远程仓库
git remote rm 仓库名 #删除
git remote add 仓库名 你的仓库ssh #添加/关联
我刚开始操作的时候把项目建立在了非空文件夹上,现在学聪明了。。。
此时文件状态显示暂存区有新文件readme.txt,还说可以输入git restore撤销来unstage取消暂存。我们接下来提交,输入git commit -m ”注释可随意填“。
此时文件已经提交到本地仓库了,显示nothing to commit。我们接下来同步到远程仓库,输入git push -u origin master。
到github远程仓库中查看,test.txt文件已经同步上去了。
找不到文件的话调一下分支。
后续持续更新GitHub操作,先放一些别人的吧
时光穿梭机——版本回退
版本回退分为两步骤进行操作: 步骤: ①查看版本,确定需要回到的时刻点 指令: git log git log --pretty=oneline ②回退操作 指令: git reset --hard 提交编号
案例:想坐时光机回到创建好第一个文件readme.txt的时候。
注意:回到过去之后,要想再回到之前最新的版本的时候,则需要使用指令去查看历史操作,以得到最新的commit id。 指令:git reflog
小结: a. 要想回到过去,必须先得到commit id,然后通过git reset –hard 进行回退; b. 要想回到未来,需要使用git reflog进行历史操作查看,得到最新的commit id; c. 在写回退指令的时候commit id可以不用写全,git自动识别,但是也不能写太少,至少需要写前4位字符;
分支管理
什么是分支?
在版本回退的章节里,每次提交后都会有记录,Git把它们串成时间线,形成类似于时间轴的东西,这个时间轴就是一个分支,我们称之为master分支。 在开发的时候往往是团队协作,多人进行开发,因此光有一个分支是无法满足多人同时开发的需求的,并且在分支上工作并不影响其他分支的正常使用,会更加安全,Git鼓励开发者使用分支去完成一些开发任务。
其他的这两天陆续更新吧,先把安装教程拿出来给我的朋友们。
- 机器学习模型的变量评估和选择基于技术指标『深度解析』
- Picasso and Android-Universal-Image-Loader缓存框架
- 解决ListView嵌套ListView遇到的问题
- 《OEA - 实体扩展属性系统 - 设计方案说明书》
- webview与js的相互交互
- Java与js的交互
- Rafy 框架 - 流水号插件
- 产品前端重构(TypeScript、MVC框架设计)
- 寻找最优持仓期的开盘缺口盈利交易策略基于Matlab
- Android SlidingMenu 侧拉菜单的使用(详细配置)
- Rafy 框架 - 幽灵插件(假删除)
- 用粒子群优化算法求解旅行商问题
- 使用CNN(LSTM架构)进行序列预测基于TensorFlow
- 【独家】周志华教授gcForest(多粒度级联森林)算法预测股指期货涨跌
- 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 数组属性和方法
- Linux系统下部署项目的设置办法
- PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
- ubantu 16.4下Hadoop完全分布式搭建实战教程
- Laravel5.1 框架模型查询作用域定义与用法实例分析
- 整理Linux中字符串的相关操作技巧
- Laravel5.1 框架Middleware中间件基本用法实例分析
- Linux基础命令之mktemp详解
- TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
- Laravel5.1 框架模型一对一关系实现与使用方法实例分析
- Linux中怎么查看已挂载的文件系统类型详解
- PHP实现笛卡尔积算法的实例讲解
- TP5框架简单登录功能实现方法示例
- 使用 Apache Web 服务器配置两个或多个站点的办法
- 详解laravel passport OAuth2.0的4种模式
- Apache Web 服务器的安装配置办法