Github命令详解
Git bash:
***创建本地版本库:
$ cd d:
$ mkdir git
$ cd git
$ mkdir test
$ git init //初始化本地库
***创建文件并添加到版本库
1. 用除了记事本以外的文本编辑工具新建readme.txt, 保存成UTF8 without BOM
2. git add readme.txt //文件添加到仓库
3. git commit -m "add readme.txt file" //-m就相当于加label, 将文件提交到仓库
可以add几个文件后, 统一commit到版本库
***查看提交状态(未add)
1. vi readme.txt //修改内容
2. git status //查看状态
3. git diff readme.txt //查看修改细节
***版本回退
1. 修改文件并且已经add,commit的情况
* 还未关机:
$ git log --pretty=oneline //查看所有的commit id,注意版本号前7位
3628164fb26d48395383f8f31179f24e0882e1e0 append GPL
ea34578d5496d7dd233c827ed32a8cd576c5ee85 add distributed
cb926e7ea50ad11b8f9e909c05226233bf755030 wrote a readme file
$ git reset --hard HEAD^ //回到上一个版本 HEAD^可以替换成上面commit id的前7位
后悔了, 还想回到最新版本
$ git reset --hard 3628164
*已关机无法查看commit id时:
$ git reflog
***工作区和暂存区stage

$ git add readme.txt
$ git add LICENCE.txt
git add实际把提交的修改放到暂存区stage

git commit后

commit是把暂存区的内容放入版本库, 也就是说, 如果不执行add, 那么将不会被提交到版本库
***撤销修改:
不管在哪里修改, 包括工作区,stage, 如果想放弃当前修改都用
$ git checkout -- readme.txt // 不管当前状态做过多少次修改,都回到最原始
也就是说恢复到最近一次add或commit的状态
所以分几种情况:
1. 在工作区的修改, 想撤销就直接
$ git checkout -- readme.txt
2. 工作区修改后, 已经add到stage的情况,需要把暂存区的修改恢复回工作区,再checkout
$ git reset HEAD readme.txt //相当于从版本库里拽最新版本回stage
$ git checkout -- readme.txt
3. 工作区修改add到stage后commit到版本库master的情况, 需要先恢复版本库版本到上一个版本, 再从stage拽过来版本库里的版本,再在工作区进行checkout
$ git reset --hard HEAD^ // 版本库恢复 上一个版本
$ git reset HEAD readme.txt //stage恢复到和版本库一个版本
$ git checkout -- readme.txt //工作区恢复修改前状态
***删除文件
如果在资源管理器里已经删除了某个文件, 或者用bash命令删除了个文件
$ rm test.txt
$ git status //查看状态
1. 彻底删除文件
$ git rm test.txt
$ git commit -m "remove test.txt"
2. 如果想反悔:
$ git checkout -- test.txt //用版本库里的版本代替工作区的版本, 无论工作区是修改还是删除, 都可以一键还原
***创建远程仓库
1. 创建SSH Key, 会在users目录里创建.ssh文件夹,里面有id_rsa私钥文件和id_rsa.pub公钥文件:
$ ssh-keygen -t rsa -C "email@163.com"
2. 登录远程github网站--settings->SSH里添加公钥内容
3. 创建远程仓库 New->repository
4. 关联本地仓库和远程仓库
$ git remote add origin git@github.com:swportal/swportal.git //第一个swportal是github账户名, 第二个是repository名
5. 查看远程仓库
$ git remote -v
6. 将本地仓库所有内容push到远程仓库
$ git push -u origin master
第一次推送时加-u, 以后再推送就直接
$ git push origin master
***克隆远程库
1. 先在github创建一个新的仓库,同时勾选创建个README文件
2. 开始克隆出一个本地库
$ cd d:\git
$ git clone git@github.com:swportal/clonegit.git //本地就有个仓库, 添加一个文件a.txt
$ git add a.txt
为了避免commit时 有出错信息显示please tell me who you are
$ git config user.email "c.wuliying@samsung.com"
$ git commit -m "create a.txt"
创建远程库连接并push代码
$ git remote -v 查看远程origin库存在与否
$ git push -u origin master
Github命令详解的更多相关文章
- Git初探--笔记整理和Git命令详解
几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...
- Git 常用命令详解
Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...
- Android Studio系列教程五--Gradle命令详解与导入第三方包
Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...
- Git 常用命令详解(二)
Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...
- Git命令详解
一个中文git手册:http://progit.org/book/zh/ 原文:http://blog.csdn.net/sunboy_2050/article/details/7529841 前面两 ...
- 【转】 Git 常用命令详解(二)----不错
原文网址:http://blog.csdn.net/ithomer/article/details/7529022 Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如: ...
- 【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(一) RTMP 命令详解
源码地址:https://github.com/Tinywan/PHP_Experience 说明: rtmp的延迟主要取决于播放器设置,但流式传输软件,流的比特率和网络速度(以及响应时间“ping” ...
- (转)Memcached用法--参数和命令详解
Memcached用法--参数和命令详解 1. memcached 参数说明: # memcached -h 1.1 memcached 的参数 常用参数 -p <num> 监听的TCP端 ...
- Protobuf 文件生成工具 Prototool 命令详解
Protobuf 文件生成工具 Prototool 命令详解 简介 Prototool 是 Protobuf 文件的生成工具, 目前支持go, php, java, c#, object c 五种语言 ...
随机推荐
- 依赖注入(IOC)二
依赖注入(IOC)二 上一章我们讲了构造注入与设值注入,这一篇我们主要讲接口注入与特性注入. 接口注入 接口注入是将抽象类型的入口以方法定义在一个接口中,如果客户类型需要获得这个方法,就需要以实现这个 ...
- 做了一个quartz用到的cron在线生成器
做了一个quartz用到的cron在线生成器 做了一个quartz用到的cron在线生成器 做这个的目的是前期在做Quartz时老是不知道如何去写,我想也有很多人和我一样吧. 有一次使用了一个老外 ...
- enode框架step by step之saga的思想与实现
enode框架step by step之saga的思想与实现 enode框架系列step by step文章系列索引: 分享一个基于DDD以及事件驱动架构(EDA)的应用开发框架enode enode ...
- 10169 - Urn-ball Probabilities !
描述:有两个罐子,一个罐子里有一个红球,另一个罐子里有一个红球和一个白球,每次从两个罐子里各取一个球,然后在向每个罐子里各加一个白球,一次取到两个红球时就结束取球,求n次取球中至少一次为取球为红球的概 ...
- Redis监控数据分布工具Redis-audit 使用总结
Redis-audit 是一个用ruby实现的脚本,通过它,我们可以知道每一类 key 对内存的使用量.它可以提供的数据有:某一类 key 值的访问频率如何,有多少值设置了过期时间,某一类 key 值 ...
- (转)Tomcat 配置成https协议
Tomcat 配置成https协议 TomcatXMLServlet 在命令提示符窗口,进入Tomcat目录,执行以下命令: keytool -genkey -alias tomcat -keyal ...
- 异常:failed for object com.sdu.crm.pojo.Customer@136a986 [java.lang.NullPointerException]
异常: failed for object com.sdu.crm.pojo.Customer@136a986 [java.lang.NullPointerException] 大家好,如果大家看到了 ...
- [置顶] ROS探索总结(十一)——机器视觉
机器视觉在计算机时代已经越来越流行,摄像头价格越来越低廉,部分集成深度传感器的混合型传感器也逐渐在研究领域普及,例如微软推出的Kinect,而且与之配套的软件功能十分强大,为开发带来了极大的便利.RO ...
- java基础知识拾遗(四)
1.Runnable对象 启动线程:(new Thread(new MyRunnable()).start() 2.jsp中<%@ page language="java" ...
- Java 设计模式(二)-六大原则
Java 设计模式(二)-六大原则 单一职责原则(Single Responsibility Principle) 定义: 不要存在多余一个原因导致类变更,既一个类只负责一项职责. 问题由来: 当类A ...