Git学习
首先,教程在这里,只是自己手动做一遍:http://www.liaoxuefeng.com/
1.安装,Windows版本选择:
安装结束后:
选择:GitBash,设定用户名和密码:
完成安装。
2.创建版本库
mkdir 创建版本库 cd 使用这个路径 pwd显示这个路径
git init:初始化版本库,这样就建立好了空的git仓库。
3.在learngit下,创建一个/多个文件,写一些内容,我创建了两个文本文件,然后添加进入仓库,需要2步
a.add进仓库。
b.commit进仓库,并添加注释。
现在,content1内容为:Today is sunday.修改一下其中的内容。运行
git status
可以看到,content1.txt被修改过了。但是还没有commit,查看两次content的区别,使用命令
git diff
红色代表以亲的内容,绿色代表之后的内容。
现在我们知道了他的变化,就可以1.add 2.comit+注释(变化)
4.查看版本历史,历史回退等功能
查看版本历史:git log
现在能看见修改日期与修改注释(可以看出注释很重要)。提交编号为避免重复,生成了长串sha1内容。另外,版本显示是由近及远的。
现在,进行版本回退
当前版本用:HEAD表示,上一个版本为HEAD^,两个版本为HEAD^^,前100个版本为HEAD~100。
版本回退 git reset
回归到了上一个版本,I wanna have a cup of coffee已经消失。
查看文件: cat,和linux一样。
后悔了怎么办?先查看git log日志
现在第二个日志记录已经消失了。
我们需要找到commit id(即sha1号码),使用
git reflog
可以看到当时的commit id前几位,使用这个id来做恢复。使用
git reset --hard id来恢复
这样,数据就恢复了。
我们在提交更新时又2个步骤
add->commit,add实际上是将改动提交至一个暂存区,commit才会存储至改动中。
现在修改content1,我添加了一句:another cup of coffee,提示content1 modified,暂时不提交
再,打开文本文档,添加一句again,不add而直接commit
这样,等于说第一次add进入了暂存区,第二次修改没有add进暂存区,第二次commit后只有第一次的修改进入了工作区。
使用git diff head -- content1.txt 查看版本库和实际内容的区别
第二次修改的Again没有在版本库中。
5.撤销修改
我们在编辑了文档后,尚未提交,这样可以使用撤销修改。
现在添加了一句:my stupid boss still prefer SVN.
尚未,提交add、commit后,我们可以看到
use git checkout -- <file> to discard changes in the working directory
命令:git checkout -- content1.txt
这样可以撤销修改,回归到文本文件中
cat content1.txt看看,my stupid boss已经没了。当然,如果已经add/commit了,就需要使用版本回退。
删除文件
使用文件管理器或者直接remove后,使用git status查看工作区和实际文件之间的差别
如果要彻底清空这个文件
使用git rm filename->git commit -m "注释"完成删除
如果要恢复这个文件
使用git checkout -m filename
6.使用Git与GitHub通信
首先。。github在天朝是不稳定的,10分钟前无法显示,10分钟后可能就好了。。
其次,Github是免费的,也可以收费
再次,免费版的Github是开放的
注册账号,-〉Setting->SSH Keys,添加一个SSH Key
这个key在系统、当前用户下.ssh文件中,有一个id_rsa.pub的文件,使用记事本打开考进去就行了,title随便填写。
如果.ssh不存在,那就生成一个。使用ssh-keygen -t rsa -C "emailaddress"
7.添加远程库
右上角-〉加号-〉new repository
成功后,它提供了一个链接,使用这个链接连接至本地库,同步上去
使用命令:
git push origin master更新本地库,后
注意:第一次链接的时候会有一个警告信息,输入yes添加至信任列表即可。
占位