Git 基本操作参考链接:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
Git的理解:
git 是一个版本迭代管理器,用于记录文件的操作过程以及将文件回退到操作之前。从教程中看出git是一个只会对文本文件的修改做出相应的详细提示,而对于二进制文件的修改则只会有大小更改的内容。对于我来说git的主要功能是用来作为项目更替存放回退的一个工具。
git的创建只需要在项目的根目录下将其初始化为仓库即可。成功后会在当前目录下产生一个.git的目录。这个目录就是管理配置仓库所有数据存放的地方。任何项目只需要在其根目录项初始化git。之后将目录下所有的文件都提交给git,那么一个全新的库也就成功的建立了。
Git的基本步骤
1.下载安装
一般的linux的镜像库里都会有git软件,而在windows也可以在网上找到相应的内容。
2.用户配置
1 $ git config --golbal user.name "Your Name" 2 $ git config --gobal user.email "email@example.com"
3.创建
(1)初始化
在自己项目的根目录下执行如下命令
$ git init
成功后就会在当前目录下生成一个.git的目录
4.提交
#用于将代码放入到暂存区 $ git add file1 $ git add file2 ... #将暂存区的代码提交,并加入更改的注释内容 $ git commit -m "express"
5.状态查看
$ git status #通过status 第一来查看工作区是否有文本被更改(包括文件的新建和删除); #第二来查看暂存区中是否有加入的文件还未提交 $ git diff file # 用于查看仓库中的文件和工作去的文件的修改之处
$ git log #通过这个命令可以看到从当前版本往前的所有的提交记录,每次提交都会有自己的一个特有的密钥序列,用于区分 $ git reset --hard HEAD^ #表示将版本回退到最新版本的上一个版本 #HEAD指代的仓库中的最新版本,他像极了一个数组中的指针,初始状态是指#向了最上方(最新的版本)^指代了上一个,可以^^^进行叠加,相当于对 #指针进行了移动操作,如果要回到更早的版本则可以使用HEAD~100,执行了 #这个操作后最新版本就是当前的内容 $ git reset --hard 1094a #表示回退到指定的一个版本,最后的数字字母是简写的密钥的一段序列 $ git reflog #这个是用于查找显示head移动的历史,通过这个方法可以找到消失的版本的密钥
7.Git的总体理解
git主要框架有三个区,分别为工作区,暂存区,和仓库,
工作区:所有的项目文件
暂存区:在.git目录中,是使用 git add后但未提交的文件存放的地方
仓库:在.git目录中,文件提交后存储的地方.
版本追踪:其实就是一个数组,每个版本都是一个元素,而每个元素的下标是每个版本特有的密钥序列,通过Head指针可以选中数组中任何的一个元素,来作为当前最新的版本(刷新了工作区的文件)
8.撤销修改
a.工作去的撤销
$ git checkout -- readme.txt #这段命令的含义是把工作区readme.txt再工作去的修改全部撤销。这里存在两种情况 #1.readme.txt还没有放到暂存区,此时就是修改到和版本库一摸一样的状态 #2.readme.txt在暂存区中,没有提交,且在工作去作了修改,此时就是回到和暂存区一样的状态
b.暂存区的修改
$ git reset HEAD <file> #把暂存区的修改撤销掉 HEAD表示最新的版本
9.删除文件
当一个文件在工作区里删去了之后,有两个方法来进行同步。
1. 从版本库中删除该文件
$ git rm test.txt $ git commit -m "remove test.txt"
2.文件错误的删除,从版本库中回复
git checkout -- test.txt
从这里可以看出,当工作区的进行了一些操作后,需要在版本库中同时在提交一次操作,知识文件的修改可以通过文件的提交来直接更新你的操作。
同时git checkout的功能是首先从暂存区更新你的工作去,如果暂存区没有文件,则通过最新版本库进行更新
10.GitHub的使用
第一步 创建SSH Key
在用户主目录下是否有.ssh目录,没有就在主目录下执行
$ ssh-keygen -t rsa -C "youremail@example.com"
.ssh下有id_rsa 和id_rsa.pub两个文件,将id_rsa.pub中的内容,复制到github的 账户ssh Key中,每一条电脑都可以产生一个ssh key,添加之后就可以在不同的电脑上进行提交了。
github目前的作用是你自己有一个本地的版本库,github仅仅作为自己的仓库备份以及供他人下载参考使用
第二部 github创建空版本库
创建了空的版本库后根据github的提示进行操作
$ git remote add origin https://github.com/wolfgold/AIConvolution.git
#这个在使用的时候需要在github上进行个人权的设置,否则没有权限进行上传修改如下图
#还可以使用
$ git remote add origin git@github.comn:wolfgold/AIConvolution.git
$ git push -u origin master
把本地库的内容推送到远程,用git push
命令,实际上是把当前分支master
推送到远程。
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
把本地库的内容推送到远程,用git push
命令,实际上是把当前分支master
推送到远程。
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
从现在起,只要本地作了提交,就可以通过命令:
$ git push origin master
11.文件过大问题
文件过大问题存在两个方面
1.上传文件的总量过大,唱过默认的缓存值
$ git config http.postBuffer 524288000 #增加缓存控件到500M #或者编辑.git目录下的config #[http] # postbuffer=524288000
2.上传的单个文件超过50M。(未完待续)