Windows系统从零学习git到熟练掌握(二)
PS:本篇文章是本人在看了廖雪峰老师的git教程之后自己总结的经验,适合初次接触git的人观看。
一、工作区和暂存区
1.工作区本人理解就是就.git
目录的父级文件夹
2..git
这个不是工作区,是git的版本库
3.Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
我们用git add
把文件添加进去,实际上就是把文件修改添加到暂存区;
当我们使用git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit
就是往master分支上提交更改。
可以理解为,需要提交的文件修改通通放到暂存区,然后,一次性把暂存区所有修改的文件提交的分支里面。
二、撤销
命令git checkout -- 你要撤销的文件名称
就是把你的文件在工作区的修改全部撤销,
这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
如果说你已经把文件git add
到了暂存区,但是你还要没有git commit
。
那就可以使用$ git reset HEAD 你要撤销的文件名称
,这条指令可以把暂存区的修改撤销掉(unstage),重新放回工作区。
当你把暂存的撤销掉以后,就可以使用git checkout -- 你要撤销的文件名称
这条指令,这样工作区也就撤销掉了。
三、远程仓库
GitHub从名字就可以看出,这个网站就是提供Git仓库托管服务的,只要注册一个GitHub账号,就可以免费获得Git远程仓库。注册好以后就可以接着往下看了
由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以需要以下的设置。
1.首先打开 我的电脑=>C盘=>Users=>Administrator看看有没有.ssh这个目录。如果有,再看看这个目录下有没有id_rsa
和id_rsa.pub
这两个文件.如果有了,可以跳过下一步(如果想把秘钥的邮箱换成自己的,可以把.ssh
目录删除,再按照步骤进行操作)
2.创建SSH Key。
打开Git Bash
输入指令ssh-****** -t rsa -C "你的邮箱地址"
(输入指令后一路回车,使用默认值即可)
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
3.登录github
登录成功之后点击右上角头像旁边的下拉箭头,显示出下拉列表。点击列表选项Settings
点击左侧导航选项SSH and GPG keys
,然后点击按钮New SSH key
填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容
最后点击按钮 Add SSH key 添加就OK了
友情提示:在GitHub上免费托管的Git仓库,任何人都可以看到(但只有你自己才能改)。所以,不要把敏感信息放进去。如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。
登录github以后,点击右上角加号,点开之后,点击 New repository
.进入到了创建新仓库的页面
或者在登录之后的首页面,点击左侧New按钮。
在Repository name里面填写你的仓库名称,记住这个名称。仓库描述可以填也不可以不填,把这个选项Initialize this repository with a README
选中,方便以后把代码克隆到本地使用,其他选项默认就行。
然后点击create repository
按钮
这样就创建好一个远程仓库,但是目前这个远程仓库还是空的,点开这个新创建的仓库,会告诉我们,
你可以使用命令行新建一个本地仓库与之关联,
或者用已有的本地仓库与之关联。
或者你从另外一个库里面把代码导入进来
首先我们用git remote add origin [email protected]:maoshuaihui/test_a.git
让本地仓库与远处仓库关联起来。maoshuaihui/test_a.git
改成自己的仓库名称。
关联后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
下一步就是把本地仓库的代码推送到远程仓库里面去了。
git push -u origin master
master
远程仓库分支名称,就是远程仓库默认的分支名称。git push
就是把当前分支推动到远程仓库
由于是第一次推送,所以我们加上-u
参数。这样Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
下一步,就可以把本地库的所有内容推送到远程库上:
$ git push -u origin master
推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样,这样以后本地做了修改就可以通过$ git push origin master
提交了
4.克隆代码到本地仓库
之前我们勾选Initialize this repository with a README
,这样GitHub会自动为我们创建一个README.md
文件。创建完毕后,可以看到README.md文件
远程仓库已经准备好了,接下来就是克隆了$ git clone [email protected]:maoshuaihui/test_a.git
记得把仓库地址换成你自己的maoshuaihui/test_a.git
这个是我的仓库地址。
其实GitHub给出的地址不止一个,还可以用https://github.com/maoshuaihui/test_a.git这样的地址。
实例:git clone https://github.com/maoshuaihui/test_a.git
。
持续更新,请喜欢的童鞋多多关注