git的深度理解

此篇文章是根据自己理解的程度写出来的,难免会有错误,还望见谅!

 

    git可以看成有三个空间,分别是working directory、stage area(Index,Cache)、history

    工作目录下的文件放在working directory中

1,文件提交与撤销

    在这三个空间中的提交过程与撤销过程相关命令如下图所示

git add 用于提交文件从working directory到stage area

git commit用于提交文件从stage area到history

git commit -a用于提交文件直接从working directory到history

git reset用于撤销文件与git commit过程相反

git checkout用于撤销文件与git add过程相反

git checkout HEAD用于撤销文件与git commit -a提交过程相反

 

 

2,文件差异

git diff用于区别某一文件在working directory与stage area的区别

git diff --staged用于区别某一文件在stage area与history的区别

git diff HEAD用于区别某一文件在working directory与history的区别

 

3,其他命令

     git status:可以列出当前目录所有还没有被git管理的文件和被git管理且被修改但还未提交(git commit)的文件

     git status -s:前两个标志位,第一个表示stage area到history的文件状态,第二个表示working directory到stage area的文件状态。例如working directory中的文件做了修改,但是并没有git add到stage area空间中,第一个状态会是M,再例如,如果working directory中文件改了名称,第一个状态会是R。


     git rm file  //删除文件

     git rm --cached file  //删除stage area中的file,但保留working directory中的文件

     git mv README.txt README.md  //把文件README.txt更名为README.md

 

     git stash  //相当于把此时git中的所有东西放在一个抽屉中

     git stash pop   //把文件从抽屉中拿出来

     这个命令一般用于需要紧急修复的时候,一般不会用

 

4,图解commit对象

   git中有很多对象,commit是其中一种,前面所说的history也可以说是commit history。

   commit对象是git commit之后放在history空间里的对象,commit对象会有多次修改,每次修改的时候都会有一个新的commit对象指向之前的commit对象,如下图

每个commit对象都会一个tree对象,还有parent对象等等,tree可以指向一个文件,也可以指向另外一个tree对象(下图中的三角形代表tree对象)

每个commit对象都会有一个编号(哈希码),40字节

此刻执行git cat-file -p HEAD命令:

tree       d626gdyg2663....(40字节)

parent    234r48hfhcub....(40字节)

author    ...

commiter ...

 

HEAD指向的commit对象的前一个可以用HEAD~表示(或者master~),

在往前一个可以用HEAD~~表示(或者master~~),或者HEAD~2(master~2),

例如git rev-parse HEAD~2命令:

       cc65dhehkdjfc....

 

 

5,branch分支


git branch //列出所有分支

git branch tryidea //创建tryidea分支

git checkout tryidea  //切换当前分支

git branch -d tryidea  //删除分支

git checkout -b tryidea  //创建分支并立即切换

git merge tryidea //合并分支

合并分支有两种方法,Fast-Forward和3-way Merge

此处的两种方式就不细讲了。

 

 

此处贴上一个我觉得特别好的git教程,希望可以帮助到大家!

http://www.bootcss.com/p/git-guide/

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ChatGPT是一种基于GitHub平台的自然语言处理模型,它采用了深度学习技术。GPT是“生成式预训练模型”的缩写,它能够生成人类般的文本回复。通过使用大量的文本数据对ChatGPT进行预训练,使其具备了理解和生成自然语言的能力。 而Git是一种版本控制系统,它可以跟踪和管理软件代码的变化。Git通常用于多人协作开发项目,可以确保在不同的代码版本之间进行无缝的合并和切换。使用Git,多个人可以同时对同一个代码库进行修改和提交。Git还提供了分支管理功能,可以在不影响主线代码的情况下创建、修改和合并分支。 将ChatGPT和Git结合起来,可以实现一些有趣和有用的应用。例如,可以使用ChatGPT来自动生成项目的文档或代码注释,减轻开发者的工作负担。ChatGPT还可以用于编写自动化测试脚本或生成代码模板。Git可以确保ChatGPT生成的文本能够进行版本控制,方便团队协作和追踪修改。 此外,Git还可以用于管理ChatGPT的模型训练和更新。通过将ChatGPT的训练数据和模型作为Git仓库的一部分,团队成员可以方便地合作、测试和部署模型。Git的分支管理功能还可以用于实验不同的ChatGPT模型架构或训练数据,以便找到最佳模型。 综上所述,ChatGPT和Git的结合能够为自然语言处理任务提供便捷、高效的开发和团队协作环境,并且有效管理和控制文本生成模型的训练和更新过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值