git学习总结

我对git的认识

Git是一个版本控制系统,最基本的功能就是实现文件迭代时防止历史修改记录的丢失。在此基础上形成了分布式文件管理体系,即多人共同远程操作等等这些功能。(Git是目前世界上最先进的分布式版本控制系统(没有之一)-摘自廖雪峰的git教程)
知道了git是做什么的,那么就可以开始为了达到预期的效果进行操作啦!

  • 名词解释:
    工作区:你能看到的,编辑<file>的地方,你随便改,只是在工作区改而已,没有add和commit的都不做数
    暂存区:add以后commit之前文件版本存放的位置
    版本库:commit以后,文件的位置
  1. 首先要在本地安装git:
    安装之前,可以在cmd输入git回车,查看有没有安装git。
    官网下载(https://git-scm.com/downloads)
    国内镜像(https://pan.baidu.com/s/1kU5OCOB#list/path=%2Fpub%2Fgit)
    两者没什么区别,就是官网的对网速有要求。
    安装过程没什么可说的,一路回车。

  2. 安装完成以后,在开始菜单里面找到git bash,然后弹出类似命令行窗口的东西,对git进行设置,进行自报家门。如下:
    $ git –global user.name “Zhangziyi”
    $ git –global user.email “15227974559@163.com
    (–global 参数的意思就是说,这台机器上所有的git仓库都会用这个name和email,不用再次设置了)

  3. 自报家门以后就可以开始造作了!
    首先建一个仓库,其实就是先找一个路径:

    $ cd f:               //切换到需要的路径下
    $ mkdir github        //创建一个文件夹
    $ cd github            //切换到新创建的文件夹下
    $ pwd                //显示当前路径,确认路径跟自己预期的效果是一样的
    $ git init            //初始化git仓库,到这里,这个文件夹就可以被称为是本地的一个git仓库了
    之后返回一句话: Initialized empty Git repository in /Users/michael/learngit/.git/
    翻译过来就是,你在这个路径下初始化了一个空的git仓库,并且多了一个隐藏文件.git

    建仓以后就是一系列的操作:

    $ git add #.xxx                        //把文件添加到仓库
    $ git commit -m "提交的相关说明"    //提交

    到这里,本地一系列正常路子的操作就够用了,但是很显然,这是不够的,因为之前已经说明了,版本控制系统,版本呢?控制呢?下面就开始做这些事了!

    版本回退:
    		$ git status 	//查看当前仓库的状态,比如说我修改了其中一个文件,但是没有提交,然后在下面就会告诉你的						//如果没有修改的话 nothing to commit, working tree clean		$ git diff		//查看当前文件你修改了什么东西, 即different		$ git log		//查看所有更改历史,清晰明了						//当然我看完廖雪峰的教程最后一章,把他修改了一下 $ git lg 就看到效果了						//修改方法 $ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"		$ git log --pretty=oneline //后面加上参数以后,显示的内容不会像不带参数那么全,但是够用了						//里面会出现commi id 就是一个32位的字符串,这个很重要的!		$ git reset --hard HEAD^		//往前翻一个版本		$ git reset --hard <commit id> 	//回退到指定版本			$ git reflog	//记录你的每一次命令,让你知道昨晚喝多了以后到底做了什么不可告人的事情!到这里的话,版本回退,版本提交,记录以前所有的事情,都已经差不多搞定了。但是,我改了一些东西,后来想了想,还是不改了,但是里面修改了好多地方,我哪里记得清楚啊!		$ git checkout --<file> //你的修改全部去掉,就好像是返回上一个版本的感觉,但是没commit,这个就不是一个版本,所以不能用git reset --hard命令了!		$ cat <file> 	//查看这个文件里面的内容,仔细看看,嗯,确实改回来了!				但是我已经add到暂存区了,怎么办?		$ git reset HEAD <file>		//把暂存区的修改撤销掉然后再用 $ git checkout --<file>,齐活儿!在git里面删除文件,如果你直接把文件右键删除,git 里面肯定会报错。		$ git rm <file> //删除文件,然后需要commit一下,保证版本库的一致性!
    当然,误删了可以用checkout返回一下,就可以了。

    执行到这里的话呢,本地git就可以支持绝大部分的操作了。但是现在互联网时代,我在家里电脑上利用空闲时间也想继续完成我的项目,所以就得需要类似云端一样的功能来支持这个工作了,因为我毕竟不能直接拿个u盘随身带着,每次下班都得copy一下吧!所以git最厉害的一块就是远程仓库的使用。而且远程仓库最大的好处就是不用担心你的电脑被外星人劫持了,影响到你的文件。
    下面就开始远程连接GitHub吧!

    首先呢要先满足两个要求:
        a、你有一个github账号,并且建了一个git仓库
        b、本地已经建了一个git仓库,并且正常运行
    然后东西齐全就可以开搞了!
        1、$ ssh-keygen rsa -C "15227974559@163.com" //生成你的ssh key,在根目录(和仓库名同级目录)下会找到.ssh文件,里面有两个文件id_rsa是私钥,不能泄露,id_ssa.pub是公钥,可以随便给任何人
        2、登录GitHub->设置->ssh Key,填写一个你喜欢的title,然后把公钥里面的东西,全部粘贴到key里面->点击类似确定的按钮,你就可以看到已经成功添加了
    
        $ add remote origin git@github.com:pirplechildren/learngit
        //增加一个远程库origin,他的链接指向是...
        //当然git@...后面可以用GitHub上提示你的链接,直接copy过来就好了
        //通过这个命令,你完全可以做到一个本地仓库同时对应多个远程仓库,但是你得记住哪个是哪个,别弄错了
        $ git push -u origin master
        //同步线上和本地的内容就ok了
    
    [红色字]对了,我在连接远程的时候,出现了一个 HttpRequestException encountered... 的错误,这是因为Github 禁用了TLS v1.0 and v1.1,必须更新Windows的git凭证管理器通过此网址https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/
    下载一个,然后安装就完美解决了。
    
    当然一般你接触一个新的项目或者进到新的公司,人家肯定已经把远程仓库给建好了,你需要做的只是把远程的克隆一份回来就可以操作了。为了实现这一个假设,现在GitHub上新建一个仓库并且勾选Initialize this repository with a README,他帮你初始化这个仓库的时候,会为你建一个README.md的文件。
    然后 $ git clone git@github.com/purplechildren/newgitres.git(当然你可以复制过来地址)
    就克隆好了,然后在重复原来的把自己ssh key放到github中,就可以提交并且修改啦!
    
    创建与合并分支
    这个功能主要是为了满足版本库里面的内容有一部分正在使用,但是修改的话会对使用造成影响。所以这个功能就横空出世了,你完全可以在一个分支里面进行修改提交等相关操作,对版本库里面的内容不会有影响。等全部改完了,然后直接合并到主线上,再把分支删除,就OK了。master就是主线,分支你可以自己命名。
    $ git checkout -b dev    //dev就是你要创建的新的分支并且进入该分支
                            //他等于
                            //$ git branch dev        创建
                            //$ git checkout dev    切入
                            //两步的合集
    $ git branch    //查看现在所有的分支,进行管理
    $ git merge dev    //进行把dev分支上的内容合并到当前分支上,所以你提交的时候要记得切回主线上
    
    $ git -d branch dev    //删除分支dev

    补充:
    1、删除文件或文件夹,以及重命名文件夹:$ git rm -rf 文件夹名

    然后提交,再同步到远程仓库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值