git的学习

256 阅读4分钟

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文件,
其实也就是为了,测试的时候我们可以看到效果。
接下来,开始克隆