git 工作原理 shell应用

本文详细介绍了Git的工作原理,包括它的起源、工作架构、分支管理和数据存储方式。此外,还深入讲解了Git Shell的应用,包括安装、配置、基本命令、版本回退和远程仓库操作等,帮助读者更好地理解和掌握Git的使用。
摘要由CSDN通过智能技术生成
1.git工作原理

.git是什么

开源的分布式版本控制系统,去中心化。
大小项目均可以灵活管理,参与开发人员比较灵活。

Linux的代码管理工具BitKeeper不适合开源社区,故Torvalds推出了GIT。

.工作架构

.工作流程图


.分支管理
    git的分支只要不提交合并,对别人没任何影响。
    svn的分支是完整的目录,你改了svn的分支,所有人的分支都随你而变。
    分支命名:git的分支在本地和远程是自由匹配,而svn是全局统一的。
.内部数据存储方式
        git为元数据统一存储管理,老vcs是以文件为按文件来存储。

.Git与GitHub关系
        git是一个分布式的版本控制系统,最初应用在Linux源码协同开发中。
        GitHub是一个基于git的项目托管平台,提供web界面,你可以在上面创建资源仓库来存放你的项目。
        现已发展成为全球最大的开源社区平台。

 2.git shell  应用

         .git 安装
一般的linux发行套件都是自带git工具的,如果不带,则使用yum安装即可

yum install git

..git配置
    用户名和邮箱配置,方便与仓库间做交互时候标记来源,即自报家门
    以下为全局配置,所有用户均使用该配置
git config --global user.name "YourName"     //zhuzhu
git config --global user.email "YourEmail"    //123456@qq.com

.git命令
       创建本地版本库
       选择自己的linux主机
cd ~   //进入到家目录
mkdir local_repo     //创建文件夹,作为版本仓库的目标目录
git init            //创建本地git仓库

目录变化如图:

创建待git管理的文件
cd ~/local_repo
touch input.txt

echo "i am a new file,i will be added to git vcs" > input.txt

将文件添加到代码库
git add input.txt               //提交文件到缓存区

git commit -m "first commit"    //提交文件到本地库

查看版本仓库状态

git status

假如提交完成后,没有任何修改,则结果如图:

假如我修改了之前的input.txt

查看具体的差异点
比较-工作区和缓存区差异

git diff working_file_path

比较缓存区和本地仓库差异

比较工作区和本地仓库差异

提交之前的变化文档input.txt  
git add input.txt

git commit -m "second commit" input.txt

再次使用git diff检查文件的三个不同状态之间的差异

*注意:在没有提交前,所有的改动都只是在工作目录中进行,只有再次提交后,工作目录、缓冲区、本地仓库才能同步

git日志查看

git log


查看两个版本之间文件的差异


查看所有分支的所有操作记录


版本回退

回退到当前版本的上一个版本

git reset --hard HEAD^    //回到当前版本的上一个版本
git reset --hard HEAD@{1}   //回退到指定版本


撤销修改
应用场景1:工作空间文件已修改,但没有add到缓存区。
手动修改还原已修改的文件。

用版本库中的复原工作区的文件

git checkout -- filepath     //将版本库中的指定文件覆盖掉工作区中的指定文件

应用场景2:工作空间已修改,已添加到缓存区,但没有添加到版本库
git reset HEAD filepath    //将该filepath对应的缓存区的内容删除掉,对工作区没有任何改动。相当于回到了应用场景1。
再按场景1的方式修改,即手动修改或者是git checkout -- filepath

 
应用场景3:工作空间已修改,已添加到缓存区,且已添加到版本库,但没有推到远程库。
直接按版本回退来处理即可,
git reset --hard HEAD^    //回到当前版本的上一个版本
git reset --hard HEAD@{1}   //回退到指定版本

应用场景4:rm -rf误删除某文件的还原
rm -rf filepath    //在工作目录中误删除某个文件
git checkout -- filepath    //将版本库中的文件还原到误删除的文件中。


应用场景5:git rm误删除git文件的还原,并没有commit提交
git reset HEAD filepath   //将该文件在缓存区的删除操作移除掉

git checkout -- filepath    //从缓存区移除对该文件操作后,即可按应用场景4的操作还原。

远程仓库操作
        关联远程仓库
            在gitlab web界面中,创建自己的项目。

执行本地到远程的关联
模板: git remote add 远程仓库名 [url]
例子:git remote add origin http://xxx

查看远程仓库信息
git remote      //显示远程仓库的关联分支

git remote -v   //查看远程仓库的详细信息,显示对远程的操作权限, fetch和push权限

从远程库同步数据到本地库(协作开发)
git clone [url]

本例:git clone http://xxx

今天先更到这,有时间继续补更










评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值