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命令详解的更多相关文章

  1. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  2. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  3. Android Studio系列教程五--Gradle命令详解与导入第三方包

    Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...

  4. Git 常用命令详解(二)

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  5. Git命令详解

    一个中文git手册:http://progit.org/book/zh/ 原文:http://blog.csdn.net/sunboy_2050/article/details/7529841 前面两 ...

  6. 【转】 Git 常用命令详解(二)----不错

    原文网址:http://blog.csdn.net/ithomer/article/details/7529022 Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如: ...

  7. 【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(一) RTMP 命令详解

    源码地址:https://github.com/Tinywan/PHP_Experience 说明: rtmp的延迟主要取决于播放器设置,但流式传输软件,流的比特率和网络速度(以及响应时间“ping” ...

  8. (转)Memcached用法--参数和命令详解

    Memcached用法--参数和命令详解 1. memcached 参数说明: # memcached -h 1.1 memcached 的参数 常用参数 -p <num> 监听的TCP端 ...

  9. Protobuf 文件生成工具 Prototool 命令详解

    Protobuf 文件生成工具 Prototool 命令详解 简介 Prototool 是 Protobuf 文件的生成工具, 目前支持go, php, java, c#, object c 五种语言 ...

随机推荐

  1. Entity Framework实体模型 入门视频教程

    Entity Framework实体模型 入门视频教程 恢复内容开始--- 第一步 创建一个 控制台应用程序 第二步 创建一个ADO.NET 数据实体模型 DbModel.edmx 需要跟数据库进行连 ...

  2. ckeditor:复制内容到ckeditor时,只保留文本,忽略其样式解决方法

    打开ckeditor 包下的config.js,在 CKEDITOR.editorConfig= function(config){...}添加一句配置: config.forcePasteAsPla ...

  3. #2006 - MySQL server has gone away 问题解决方法 (全) (转)

    #2006 - MySQL server has gone away 问题解决方法 原文地址:http://www.cnblogs.com/bisonjob/archive/2009/08/18/15 ...

  4. php memcached缓存集群

    一.需求描述 一linode xen vps 1G RAM,40+sites,IO频繁,openfiles ulimit已65535 US时间访问量大增,nginx不定时502 二.解决办法 page ...

  5. 从零开始学C++之构造函数与析构函数(一):构造函数、析构函数、赋值与初始化、explicit关键字

    一.构造函数.默认构造函数 (1).构造函数 构造函数是特殊的成员函数 创建类类型的新对象,系统自动会调用构造函数 构造函数是为了保证对象的每个数据成员都被正确初始化 函数名和类名完全相同 不能定义构 ...

  6. C语言之while和do-while

    一 while和do-while的简介 1). while语句 语法: while(表达式){ 循环体; } 循环过程: 1.先判断表达式,是否为真,如果为真跳转到2,否则跳转到3 2.执行循环体,执 ...

  7. app外包开发注意事项大全『最新』

    随着移动互联网的高速发展,很多互联网创业公司或传统向互联网转型的公司都急需发开一款app软件,多数公司会选择让外包公司来开发.问题来了,App外包市场鱼龙混杂,我们要如何在这里面选择一个靠谱的公司,这 ...

  8. 自定义底部导航栏(tabBar)

    前言如果大家用过微信提供的tabBar就会发现,他的tabBar有很大的局限性.暂且不说样式局限性了,他提供的app.json配置文件中没有function.这也就意味着使用它提供的这个组件,你只能用 ...

  9. Hadoop集群搭建步骤

    实验性操作是在虚拟机里进行的,除了搭建hadoop本身的操作之外,遇到的其它问题总结如下: 1. 虚拟机挂载windows磁盘: 添加硬件,要保证该硬件此时没有被读写访问等,因为挂载后,该磁盘在宿主机 ...

  10. sql 时间格式化

    sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-0 ...