美文网首页互联网科技
Git极简学习笔记

Git极简学习笔记

作者: 若数 | 来源:发表于2019-04-04 15:16 被阅读1次

    git的学习笔记

    1. 安装git

    2. 简单开始

    创建版本库,即在需要编写的代码的工作区建立,可以在git bash或者cmd中键入

    git init

    就会生成一个 .git 文件夹

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

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

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

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

    而为什么Git提交文件到仓库需要add、commit两步呢? 因为commit一次可以提交很多文件,所以可以多次add不同的文件

    可以通过git status 查看目前文件提交的状态,包括更改,是否提交等

    那么如果添加了修改,但是不记得那些具体内容了,可以通过git diff readme.text 查看修改的详细内容


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

    目前看来这个功能意义不大,似乎是回退的一次提交的所有内容,即一天的工作都会回退了,再说这种回退极少应用到,需要再说吧


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

    当我们在创建git仓库版本库时,git自动为我们创建了一个唯一一个master分支

    一句重要的话: Git 管理的是<b>修改</b>,即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

    接下来是比较有趣的内容,即<b>远程仓库</b>, 这也是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

    相关文章

      网友评论

        本文标题:Git极简学习笔记

        本文链接:https://www.haomeiwen.com/subject/yogggftx.html