git的安装
linux 上安装 yum install git,安装结束,可以git --version 查看版本号
windons上使用git,可以从官网直接下载安装程序,安装完成之后,可以再开始菜单中找到git---->Git Bash,出来类似命令行窗口的东西,就说明Git安装成功。
git 初体验
mkdir learngit // 创建一个目录
cd learngit // 进入目录中
git init // 把learngit这个目录变成git可以管理的仓库
vim readme.txt // 创建一个文件,里面写入内容
git add readme.txt // 告诉git,把文件添加到仓库
git commit -m "提交信息" // 把文件提交到仓库。然后会提示你,多少个文件被改动,插入了多上行内容。
提交之后,我们修改一下readme.txt内容
git status // 可以查看当前修改的文件,现在版本库中的内容的状态。
git diff // 查看修改了什么内容
git add readme.txt
git commit -m "" // 修改过之后添加、提交到仓库。
git 版本回退
假如我们一直修改文件一直,add\commit到git仓库中。如果我们想版本回退怎么办,其实,只要我们commit一次,
就会处处一个快照。所以才能版本回退。
git log // 可以查看最近三次commit的内容和区别,如果信息输出的太多,看的眼花缭乱的,可以试试加上--pretty=oneline参数;
可以看到前面有很长一串的字符串,这个其实是版本号,git不像svn,版本递增的记录,git是随机的一串字母。
回退到上一个版本,可以git reset,
git reset --hard HEAD^ // 这就是回到上一个版本,
万一你从21世纪回到19世纪,又想回到21世纪,怎么办,
git也有办法,可以查看上面的记录,找出提交21世纪的时候的版本id。
git 中 工作区和暂存区的概念
工作区: 就是在电脑中能看到的目录,比如我的learngit文件夹就是一个工作区。
版本库: 工作区隐藏了一个.git目录,这个不算工作区,而是git的版本库。git的版本库中存储了很多东西,
最重要的就是称为stage(或者叫index)的暂存区,还有git为我们自动穿件的第一个分支master,以及只想master的一个指针HEAD。
到这里其实可以解释add和commit两者的关系,add就是把文件添加进去,实际上是放在暂存区。gitcommit提交更改,实际上就是把暂存区的所有内容提交
到当前分支。
github远程仓库的使用
1、首先登录github,然后,在右上角找到create a new repo 按钮,创建一个新的仓库:
在Repostity name 写入仓库的名字,其他默认设置,点击create reposity按钮,就成功的创建了新的git仓库。
现在这个git仓库还是空的,github告诉我们,我们可以干两件事。
一是可以从这个仓库克隆出新的仓库
二是把一个已有的本地仓库与之关联,把本地仓库推送到github仓库。
2、在本地仓库推送到github仓库的时候,需要把自己本机的SSH key公钥添加到github的ssh密钥,才能将本地的推送上去,
如何查看本地的github的ssh,windows 和 linux下都有查看办法,可以从网上查看,如果连id_rsa和id_rsa.pub文件也没有,
从网上查看,如何创建。
linux创建方式 ssh-keygen -t rsa -C "你的邮件",
然后在/root/.ssh/下面就有这两个文件,
cat id_rsa.pub // 粘贴打印出来的全部内容。到github下添加github的ssh密钥,title随便写,
另外,你还可以使用git remote -v 命令,查看链接的远端仓库的信息。
也可以使用 git config --list,查看相关的信息,可以看看自己(用户)
的user.name 和 user.email,知道自己的user.email,才能创建正确的id_rsa和id_rsa.pub文件。
3、以上问题解决了,就可以将本地仓库推送到github仓库中,命令如下:
remote add origin git@github.com:hengheng1994/learngit.git // 给git添加一个远端仓库
git remote -v // 远端仓库的信息
git push origin master // 本地仓库的最新版本推送到github仓库。
4、上面说的是先有本地库,后有远程库,如何关联远程库。最好的方式是现有
远程库,然后从远程库克隆。
首先登录github上,创建一个新的仓库,名字叫做learngit1吧。创建的时候我们勾选,让github为我们创建一个readme文件,
其实也就是为了,测试的时候我们可以看到效果。
接下来,开始克隆