Git 的基本操作的学习

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分支关联起来,在以后的推送或者拉取时就可以简化命令。

推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:

从现在起,只要本地作了提交,就可以通过命令:

$ git push origin master


11.文件过大问题

文件过大问题存在两个方面

1.上传文件的总量过大,唱过默认的缓存值

$ git config http.postBuffer 524288000
#增加缓存控件到500M
#或者编辑.git目录下的config 
#[http]
#    postbuffer=524288000

2.上传的单个文件超过50M。(未完待续)

原文地址:https://www.cnblogs.com/bookdrip/p/9931500.html