欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

GIT

程序员文章站 2022-07-13 16:42:19
...

1.window安装

http://git-scm.com/download/win下载Git客户端软件,和普通软件安装方式一样。

2.Linux安装

CentOS发行版:sudo yum install git
Ubuntu发行版:sudo apt-get install git

3.Mac安装

打开Terminal直接输入git命令,会自动提示,按提示引导安装即可。

4.TortoiseGit安装

直接搜索TortoiseGit下载安装即可

5.TortoiseGit函数

汉化包地址: https://tortoisegit.org/download/

找到对应版本 对应位数的汉化包下载安装即可

汉化之后可以是使用中文界面


Git工作原理

四个状态---三个工作区

下面来说一说四个状态以及三个工作区

四个状态

1.未追踪(untracked)

2.已提交(committed)

该文件已经被git管理起来,接下来对该文件进行相关操作就可以实现版本控制的效果

3.已修改(modified)

某个文件已经被提交到暂存区过了,如果对该文件进行修改,该文件的状态就是已修改

4.已暂存(staged)

某个文件已经被提交暂存区了

三个工作区

三个工作区域的概念

1、工作目录

工作目录是对项目的某个版本独立提取出来的内容,这些从Git仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改

2、暂存区域

暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在Git仓库目录中,有时候也会被称为“索引(index)”,不过一般说法还是叫暂存区域

3、Git仓库

Git仓库目录是Git用来保存项目的元数据和对象数据库的地方,这是Git中最重要的部分,从其他计算机克隆仓库时,拷贝的就是这里的数据

Git工作图示:

GIT


基本的Git工作流程

1、在工作目录中修改文件    2、暂存文件,将文件的快照放入暂存区域    3、提交文件,找到暂存区域的文件,将快照永久性存储到Git仓库目录。

Git本地仓库

Git本地仓库指的是开发者计算机中的仓库


一、关于启动Git以及相关命令

1、命令行方式:任意目录(建议开发根目录)右键=>Git Bash Here

2、配置用户

命令行:git config --global 其他

配置用户的意义在于记录开发者信息,以便在版本控制记录开发者的操作行为

git config --global user.name "自己的名字"

git config --global user.email "自己邮箱地址"

--global 配置当前用户所有仓库

注:配置用户只需要执行1次,可以重复使用

3、初始化仓库

git init

如果我们想要利用git进行版本控制,需要将现有项目初始化为一个仓库,或者将一个已有的使用git进行版本控制的仓库克隆到本地

git init会在当前项目目录中创建一个名为.git的隐藏目录,这个目录包含了暂存区和仓库两个区域,有了这个隐藏目录就可以使用git来管理项目了,通过ls-al可以查看

4、查看文件状态

git status

初始化仓库便可以进行开发了,进入到刚刚创建好并初始化为仓库的目录,添加我们开发需要的文件,注:git会忽略空的目录

5、添加文件到暂存区

git add

可以将一个未追踪的/没有使用git进行管理,已创建/修改的文件放入暂存区

添加单个文件到暂存区 git add file_name

添加所有文件到暂存区 git add *

6、将暂存区的内容放入本地主仓库

git commit -m 备注信息

如果不输入备注信息会提示一个vi编辑器,在vi编辑器中提示输入备注信息

每一次提交到本地仓库都必须输入备注信息

vi编辑器是linux系统的文本编辑器,使用的方式可以参考以上教程

7、查看历史提交

git log 

显示结果有:某一次提交的唯一标记,提交本人的信息,提交的日期

commit b0092e2787971f7d0cb656da165b9edc3c25cb01 (HEAD -> master)
Author: gaohui1994 <aaa@qq.com>
Date:   Fri May 25 00:25:19 2018 +0800

    第二次提交:

commit 59100dca39449d9a9e4008aad8f2283ced828134
Author: gaohui1994 <aaa@qq.com>
Date:   Fri May 25 00:22:21 2018 +0800
    第一次提交

如果你觉得上述展示的结果内容繁琐的话,可以使用以下命令简化输入结果

git log --pretty=oneline

b0092e2787971f7d0cb656da165b9edc3c25cb01 (HEAD -> master) 第二次提交:
59100dca39449d9a9e4008aad8f2283ced828134 第一次提交

上述一长串数字是通过sha1加密算法生成的版本的id号

版本id号在进行代码检出的时候会用到

8、暂存区检出

git checkout -- 文件名

如果一个文件已经存放到暂存区,希望从暂存区恢复到修改前的状态

将文件从暂存区取出,替换当前本地的文件

可以将文件恢复到修改之前的状态

git checkout 文件名/分支切换---后期会有相关介绍


git reset HEND 文件名

将已经添加到暂存区的,并且该文件没有被修改过文件,可以从暂存区取出

只是将文件从暂存区取出,但是并不使用(也就是将暂存区的修改退回到工作区)

9、本地仓库检出

git reset --hard 提交的版本号

将文件从本地仓库中恢复,取出仓库中的文件替换工作目录中的文件,相关的版本号通过git log查看

回退之后,该版本号之后的提交版本就失效了,这种操作是不可逆的 慎重操作

补救措施:世上没有后悔药,在git中,总有后悔药吃,可以使用git reflog获取相关的提交/回退记录,然后找到对应的id,回到对应的版本即可

    git工作流图示

GIT


分支

在初始化操作的时候,会自动创建一个master分支,并且有HEND指针指向其末端,master分支指向已经提交到仓库的文件的id

指针HEND用来指示当前处于哪个分支的哪个版本

git branch 查看当前的仓库中的所有的分支,*表示处于当前的哪一个分支

新建的分支会继承父分支的所有的提交历史

1.git branch branchName-------创建一个新的分支

创建新分支后,在当前新分支下进行的操作不会影响到其他分支的内容(不包括继承的父分支的内容)

2.git checkout branchName------切换到指定的分支

切换分之后,HEND会指向切换后的分支的末端,HEND会伴随着每次文件提交到仓库二移动

3.git merge branchName---------合并指定的分支到当前的繁殖

在每个子功能功能开发完成之后,可以进行分支的合并

4.git branch -d branchName-----删除指定的分支

在分支合并之后,可以删除没用的分支

5.git log -g--git branch branchName id-----恢复已经删除的分支

git log:获取提交的记录,截止到回滚的位置,获取不到自回滚位置之后的提交记录

git log --online:获取简洁版的日志信息(获取的内容和git log一样)

git reflog:获取所有的更改记录(操作日志)

git log -g:获取所有的提交记录,不会受到回滚的影响,会进入vim/vi


创建远程共享仓库

创建共享仓库的存储目录

是一个以.git结尾的目录,进入目录并初始化

a)mkdir spare.git--------创建一个以.git结尾的目录

b)cd spare.git------------进入这个目录

c)git init --bare----------初始化一个裸仓(--bare)

这是创建的仓库是一个空的仓库,并且不允许进行任何操作

向共享仓库同步共享内容

a)git push url master-----------在共享内容的目录下进行,将当前目录下的内容共享到spare.git中

从共享仓库中取出内容存放到当前目

a)git clone url(目录名称)-------------url指的是共享仓库的目录

b)git clone url(目录名称/分支名称)---------url指的是共享仓库的目录

c)git pull url master----------------

远程地址名替换

a)git remote add origin  [email protected]:Botue/repo.git

这样origin就代表 [email protected]:Botue/repo.git

强制解决冲突:在github中存在md文件,本地中不存在

a)$ git pull --rebase https://github.com/gaohui1994/git002.git master

b)$ git push https://github.com/gaohui1994/git002.git master


github账号注册

1、注册账号并完善资料

2、创建共享仓--New repository

3、填写仓库资料

4、共享仓库

5、生成**:在github上设置**(公钥),可以省去每次上传共享库文件时的重复登录验证的文件,还可以提高安全性

a)ssh-****** -t rsa 一路回车,得到.ssh文件夹

b)复制id-rsa.pub里面的内容,设置到github中的相应的页面上


GIT补充

配置用户信息

a) Git config -l ----------------------------------------查看配置信息

b) Git config --global .....---------------------------配置本地信息,应用于所有的目录

c) Git config ......................--------------------------配置本目录信息

文件的删除

a) Rm file---------------------------删除文件,不可恢复

b) Git rm file-----------------------删除文件,可以恢复,前提是文件已经提交到仓中,删除的是暂存区的文件

c) Rm -r file---------------------递归删除

d) Rm -f file---------------------规避错误信息,不显示错误的信息

e) Rm -rf file ------------------执行的是-r和-f的结合体

删除本地仓库和远程仓库中的文件

a) 先删除缓存区的文件,再提交到仓库

b) 先删除工作目录中的文件,再逐步提交到仓库

Git diff文件的差异对比

a) 将工作目录中的文件与暂存区的文件进行比较

rm -r file

a)递归删除



SSH提交

在push 到 [email protected]:eoooxy/git_test.git 这种远程仓库地址的时候, 会报一个错误

也就是使用以下命令

 git push  aaa@qq.com:eoooxy/git_test.git  master


在这种提交的时候  使用的是  ssh ( Secure Shell) 在提交的时候需要配置  ssh
-----> 配置过程如下:

查看本地的ssk

cd ~/.ssh

$ cd ~/.ssh

$ ls
id_rsa  id_rsa.pub  known_hosts

清楚本地旧的ssh

rm -rf ......

生成新的ssh-key

ssh-****** -t rsa -C "aaa@qq.com"(请填你设置的邮箱地址)

复制pub-ssh-key

也就是复制公钥, 存放在 id_rsa.pub文件

查看  id_rsa.pub文件
cat id_rsa.pub


复制内容  ctrl+c

 在github上设置

github官网 ----> 右上角展开 ----> setting ----> SSH and GpG keys -----> new ssh key

将上一步复制的  公钥   粘贴到这里