Git 和 GitHub的区别
Git
(读音为/gɪt/。),是目前世界上最先进的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
git的作用:更好的管理你的程序,通过git这个工具,可以把原来提交的内容重现出来,有利于修改后面才意识到的错误修改。
Git管理的是修改,而不是文件
GitHub
gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。
就像是程序员交流的网站,很多技术大牛和公司在github上公布开源的代码。
Git的学习
经身边朋友推荐,参考了廖雪峰老师的git教程。
那接下来就记录一些过程和遇见的小错误吧
安装
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
疑问:这个分布式是对我电脑这个机器来说的吗?因为我试了几个名字都可以,邮箱不存在的也可以?只是标签吗?
安装好后,在开始->git->git bash里打开。
创建版本库
git的管理模式:
所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等
建议使用NodePad++代替windows自带的记事本。
在某目录下创建一个空目录:
mkdir 目录名
进入该目录,使用:
git init
将其变成一个可以管理的仓库
然后将你想存入的文件放到git仓库:
git add 文件1 文件2...#把工作区的文件放入版本库中的暂存区
git commit -m “本次提交的说明”#把版本库暂存区的文件提交到版本库的分支
可以一次add多个文件,然后commit1次。
时光机git的回退
你不断对文件进行修改,然后不断提交修改到版本库里,就好比玩RPG游戏时,每通过一关就会自动把游戏状态存盘,如果某一关没过去,你还可以选择读取前一关的状态。
命令:
git log
可以查看你的保存记录
这时会打印出作者(名字和email)、提交时间、以及提交时git commit -m “ ”时输入的提交说明,所以记录一段要写好哦。
(-m参数后双引号描述)
如果想输出简洁点(并且输出的前7位是每次“存档”的版本号),那就输:
git log --pretty=oneline
HEAD->master所在行表示当前版本。HEAD是一个指针,事实上回退就是改变此指针的指向。
回退到当前版本的前一个版本:
git reset --hard HEAD^
或者使用版本号进行回退/前进
git reset --hard 版本号(0x7位)
如果回退之后后悔了,想回来,就只能使用版本号(前进),但git log只能显示在当前HEAD指针之前的版本,使用命令:
git reflog
可以看到曾经操作过的修改HEAD行为(版本号),就可以获取版本号了。啊~后悔药咯
查看工作区和版本库内某文件的区别:
git diff HEAD -- 某文件
64位的git:
撤销工作区的修改/删除(回到暂存区||上一个commit的原版本):
git restore 文件#这里和教程不一样
撤销暂存区的修改(直接消失)
git restore --stage 文件#这里和教程不一样
对文件的删除
rm 文件#在工作区删除
git rm 文件 #工作区删除并更新到暂存区,但是还没有-m到分支
以上应该就是git的基本操作啦
要开始学习远程库了,我要进入github世界咯,耶~
【关于github ssh的配置:https://blog.youkuaiyun.com/u013778905/article/details/83501204]
我的github账号:Amber-gzl(现在还是空的啊19/10/17)
你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的
1、所以需要先创建SSH Key,在git bash里键入:
ssh-keygen -t rsa -C "youremail@example.com"
"youremail@example.com"是自己的邮箱。
2、登录github添加ssh key
在setting里:
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
然后在Github上创建一个空仓库
your repository->new->填名字(设置其他值…)->create repository
我就有一个远程仓库啦,撒花~
把本地仓库和远程github仓库连起来:
git remote add 远程库名(Git默认origin) git@github.com:github 账户名/本地仓库(目录)名.git
将本地仓库的内容push到远程仓库上:
git push -u 远程库名(origin) 分支名(master)
-u参数:不但会把本地的分支master分支内容推送到远程新的master分支,还会把本地master分支和远程的master分支关联起来。所以第一次推送某新分支时,记得加-u参数,此后再推送此分支内容时就不需要加-u了。
本机Git第一次使用SSH连接时会有一个警告,让你确认是否将gihub和本币git连接起来,放入信任列表,键入yes就可以啦。
将远程仓库的内容克隆到本地仓库
git clone git@github.com:github用户名/仓库名.git#使用ssh,速度快
git clone 网址(https://......)#速度慢,需要口令