Git极简学习笔记

git的学习笔记

1. 安装git

2. 简单开始

建立版本库,即在须要编写的代码的工做区创建,能够在git bash或者cmd中键入git

git initgithub

就会生成一个 .git 文件夹bash

假设仓库中有了一些代码文件,文本等好比 readme.txt服务器

那么接下来仅须要两步就能够将一个文件提交到仓库,为何须要两步呢,而不是直接直接提交,且记住一个重要概念:暂存区ssh

第一步: 将文件添加到Git仓库 git add readme.txt学习

第二步: 将文件提交到仓库,分号里就是描述此次提交作了什么事情 git commit -m "wrote a file about readme"加密

而为何Git提交文件到仓库须要add、commit两步呢? 由于commit一次能够提交不少文件,因此能够屡次add不一样的文件code

能够经过git status 查看目前文件提交的状态,包括更改,是否提交等开发

那么若是添加了修改,可是不记得那些具体内容了,能够经过git diff readme.text 查看修改的详细内容rem


那么这里就有一些应用了,好比咱们已经编写代码并不断修改提交屡次到仓库中了,可是咱们若是误操做好比删除、改错了,想要回退呢? 好比回退到昨天修改的文件内容,那么能够经过git log 查看咱们的提交记录

目前看来这个功能意义不大,彷佛是回退的一次提交的全部内容,即一天的工做都会回退了,再说这种回退极少应用到,须要再说吧


接下里解释 工做区 和 暂存区, 工做区即存档代码的显式区域,而暂存区是git的,凡人看不着的,是存放在.git中的,而第一步git add实际就是将文件放入暂存区中,第二步git commmit -m "..."提交更改,即将暂存区的内容提交到当前分支中

当咱们在建立git仓库版本库时,git自动为咱们建立了一个惟一一个master分支

一句重要的话: Git 管理的是修改,即git始终提交的都是暂存区的内容,而暂存区的内容取决于添加到暂存区时刻的修改,git追踪的是修改,而修改的状态添加或提交都取决于用户

上面提到回退确实挺麻烦的,可是撤销修改确有必定的实用意义,是针对单个文件的撤销修改,其目的是

命令git checkout -- readme.txt意思就是,把readme.txt文件在工做区的修改所有撤销,这里有两种状况:

一种是readme.txt自修改后尚未被放到暂存区,如今,撤销修改就回到和版本库如出一辙的状态;

一种是readme.txt已经添加到暂存区后,又做了修改,如今,撤销修改就回到添加到暂存区后的状态。

可是也就还存在一种状况将错误的文件添加到了暂存区,固然是没有提交的状态,那么能够经过git reset HEAD readme.txt把暂存区的修改撤销掉,从新放回工做区 ,而后咱们能够再git checkout -- readm.text丢弃在工做区修改的内容


删除操做,好比咱们想要删除已经在版本库中的某个文件

git rm readme.txt

git commit -m "rm readme.txt"

便可完成真正真正删除操做,那么我删错了怎么办呢? 能够:git checkout -- test.txt

3. 远程仓库-github

接下来是比较有趣的内容,即远程仓库, 这也是Git的杀手级功能,利用github.com获取免费强大的远程仓库再好不过了! 因为本地Git仓库和GitHub仓库之间的传输是经过SSH加密的,因此,须要一点设置:

$ ssh-keygen -t rsa -C "youremail@example.com"

而后一路回车便可 第2步:登录GitHub,打开“Account settings”,“SSH Keys”页面 而后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容

为何GitHub须要SSH Key呢?由于GitHub须要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,因此,GitHub只要知道了你的公钥,就能够确认只有你本身才能推送。

固然,GitHub容许你添加多个Key。假定你有若干电脑,你一下子在公司提交,一下子在家里提交,只要把每台电脑的Key都添加到GitHub,就能够在每台电脑上往GitHub推送了。

最后友情提示,在GitHub上免费托管的Git仓库,任何人均可以看到喔(但只有你本身才能改)。因此,不要把敏感信息放进去。

若是你不想让别人看到Git库,有两个办法,一个是如今Github也已经免费了私密仓库!!! 另外一个办法是本身动手,搭一个Git服务器,由于是你本身的Git服务器,因此别人也是看不见的。这个方法咱们后面会讲到的,至关简单,公司内部开发必备。

确保你拥有一个GitHub帐号后,咱们就即将开始远程仓库的学习。

接下来在github上建立一个仓库,而后按照github上的提示能够把一个已有的本地仓库与之关联,而后将本地仓库的内容推送到Github仓库中

git remote add origin git@github.com:example-github-id/example-git-name.git

添加后,远程库的名字就是origin,这是Git默认的叫法,也能够改为别的,可是origin这个名字一看就知道是远程库。

下一步,就能够把本地库的全部内容推送到远程库上:

git push -u origin master

把本地库的内容推送到远程,用git push命令,其实是把当前分支master推送到远程。

因为远程库是空的,咱们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在之后的推送或者拉取时就能够简化命令

从如今起,只要本地做了提交,就能够经过命令:

git push origin master

讲了先有本地库,后有远程库的时候,如何关联远程库。

如今,假设咱们从零开发,那么最好的方式是先建立远程库,而后,从远程库克隆。那么咱们如何从远程库中克隆到本地呢? 很简单:

git clone git@github.com:example-github-id/example-git-name.git

相关文章
相关标签/搜索