主要命令:

$ git checkout -- readme.txt    #使用暂存区或版本库中最新的版本替换工作区版本

$ git reset HEAD readme.txt    # 撤消指定文件的add操作,用版本库中的版本替换暂存区的版本

$ git rm test.txt        #提交删除操作

----------------------------------------------------------------------------------
$ git remote add origin git@github.com:michaelliao/learngit.git #为远程库添加origin版本,并将其与本地版本库绑定 $ git push -u origin master #将本地版本库master的内容推送到绑定的origin版本,第一次推送使用-u. $ git clone git@github.com:michaelliao/gitskills.git #在当前目录下新建版本库并拉取远端版本

7. 撤销修改

7.1. 对于还没有git add的修改,可以使用git checkout丢弃工作区的修改

$ git checkout -- readme.txt

readme.txt如果没有被git add,那么回到master库中的状态(即上一次git commit时的状态)

readme.txt如果已经git add了,又进行了修改,那么回到git add时的状态.

总的来说是回到最近一次git commit或git add时的状态.

7.2. 对于还没有git commit但已经git add的修改,可以用git reset HEAD file撤销修改

$ git reset HEAD readme.txt
Unstaged changes after reset:
M readme.txt

此时的操作只针对这个git add的文件,与之前都是针对版本(git commit)有不同.这时相当于回到git add之前的状态.

7.3. 对于已经git commit的修改,可以使用git reset -- hard HEAD^回到上一个版本

8. 删除文件

8.1. 删除文件之后,要同步到版本库则使用git rm

该命令与git add相似,都是将工作区的修改放入暂存区(不过一个是添加操作,一个是删除操作)

$ git rm test.txt
rm 'test.txt'

8.2. 删除文件之后发现删掉了,要回退则使用git checkout -- test.txt

git checkout 的功能是用(master)版本库里的版本替换工作区的版本

$ git checkout -- test.txt

9. 远程仓库

git不仅可以在本地提供代码仓库的服务,它更可以提供一种分布式的代码仓库服务.将代码托管到分布式代码仓库服务提供商Github.这个你就可以在任何一台机器上重建已存在Github上的代码仓库了.另外,因为Github上免费的代码仓库服务是公开代码的.因此,你可以在上面找到很多别人的代码clone到本地.

使用Github的服务需要在Github注册帐号并将本地的SSH Hey提交给Github to make pair of  local repo and Github account

步骤如下:

第1步:创建SSH Key
$ ssh-keygen -t rsa -C "youremail@example.com"
上面的email地址要与你在github上的一致.
完成之后在.ssh目录下可以找到id_rsa与id_rsa.pub两个文件,pub文件是公钥,可以发给别人检测你用私钥(id_rsa)加密的内容 第2步: 登陆GitHub,打开“Account settings”,“SSH Keys”页面:
点击'add ssh key',并把id_rsa.pub中的内容填入

10. 添加远程库

10.1 场景

你在本地建立了一个git库,需要在github上也建立同样的git库,然后将本地的内容同步到远端去.这样就可以在任何一台机器上对这个库进行修改了.

第1步: 登录github,Create a new repo
第2步: 输入repo name,点击create repository
第3步: 在本地repo目录下运行以下命令将远程repo与本地关联
$ git remote add origin git@github.com:michaelliao/learngit.git
第4步: 将本地库内容推送到远程,即将master推送到远端
git push -u origin master
这里的-u参数是将本地master与远程master关联

10.2 push master

在把本地master和远端origin关联之后只要使用以下命令就可以把本地的版本库推送到远端了

$ git push origin master

11. 从远程库克隆

11.1. 场景

已经有远程库了,需要从远程库克隆代码到本地.这里的远程库可以是别人的免费库,也可以是你自己的

11.2. 拉取

$ git clone git@github.com:michaelliao/gitskills.git

这条命令会在当前目录下创建gitskills文件夹作为工作目录.所以clone之前先请选好文件夹

Git教程学习(三)的更多相关文章

  1. Git教程学习(二)

    教程来自: Git教程(廖雪峰的官方网站) 主要命令: $ git log #查看已提交内容 $ git log --pretty=oneline #查看已提交内容(紧凑版) $ git reset ...

  2. Git教程学习(一)

    教程来自: Git教程(廖雪峰的官方网站) 学习Git的基本内容,对教程内容进行理解并脱水 1. Git简介 2. 安装Git 1. ubuntu上安装Git $ sudo apt-get insta ...

  3. Git-第三篇廖雪峰Git教程学习笔记(2)回退修改,恢复文件

    1.工作区 C:\fyliu\lfyTemp\gitLocalRepository\yangjie 2.版本库 我们使用git init命令创建的.git就是我们的版本库.Git的版本库里存了很多东西 ...

  4. 廖雪峰 Git教程学习笔记 原文 http://www.liaoxuefeng.com/

    一 .集中式与分布式        先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推 ...

  5. Git 教程(三):仓库与分支

    远程仓库 到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了. 可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了, ...

  6. Git教程学习(五)

    14. 解决冲突 14.1. 场景 当分支A和分支B在同一个文件上都有修改时会出现冲突.常见的情况是从master分支的基础上生成了新分支dev,然后在dev上进行了修改并add&commit ...

  7. Git教程学习(四)

    12. 分支管理场景 多人协同工作时,你在优化代码X,需要较长时间才能完成,未完成之前会影响整体代码的使用.于是写完的代码不能提交到版本库,提交就会影响别人使用整体的代码.不提交你就失去了git的版本 ...

  8. 廖雪峰git教程学习笔记3

    commit是一串不便记忆的数字,为了方便记忆,引入tag,tag就跟HEAD一样,就像一个指针,指向commit,且指向是不能变得,一个commit就有一个tag 给当前分支下的当前commit打上 ...

  9. 廖雪峰git教程学习笔记2

    本地git仓库和github仓库之间的传输是通过SSH加密的,所以: 注册GitHub账号 创建SSH key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id ...

随机推荐

  1. 【noip模拟赛5】细菌

    描述 近期,农场出现了D(1<=D<=15)种细菌.John要从他的 N(1<=N<=1,000)头奶牛中尽可能多地选些产奶.但是如果选中的奶牛携带了超过 K (1<=K ...

  2. python开发环境PyCharm安转注册

    0x1 ,安装 0x2 , 调整时间到2038年. 0x3 ,申请30天试用 0x4, 退出pycharm 0x5, 时间调整回来. ##注册方法2### 注册方法:在注册时选择 License se ...

  3. android studio 汉化

    the modules below are not imported from Gradle anymore. Check those to be removed from the ide proje ...

  4. 1013 ACM 杭电 root

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1013 题意:求两个数的根 如: 12->3,99->9,80->8 注意题目没有限制数的 ...

  5. Mars的简单使用

  6. nginx 负载均衡集群解决方案 healthcheck_nginx_upstreams模块测试 (二)

    在这里详细讲解healthcheck_nginx_upstreams模块中存在的bug,对于healthcheck_nginx_upstreams模块的安装和使用请阅读上一篇blog进行学习. 测试环 ...

  7. 彻底放弃没落的MFC,对新人的忠告! by FreeWick

    完全没想到10多年后还有人纠结要不要学MFC,我花点时间给新人们一个总结. 第1种观点 学习完MFC,你会更理解编程的思想,再学别的语言就更快了. 话说小白要去美国学技术,大黑劝他说:“你为什么不先到 ...

  8. AngularJS中写一个包裹HTML元素的directive

    有这样的一个场景,这里有一个表单: <form role="form">    ...</form> 我们希望在form的外层动态包裹上一层. 有可能是这样 ...

  9. iptables设置端口转发

    转自:https://blog.csdn.net/sigangjun/article/details/17412821 一 从一台机到另一台机端口转发 启用网卡转发功能 #echo 1 > /p ...

  10. C# Dictionary, SortedDictionary, SortedList

    就我个人觉得Dictionary, SortedDictionary, SortedList 这几个类的使用是比较简单的,只要稍微花点时间在网上查找一点资料,然后在阅读以下源码就理解的很清楚了.为什么 ...