git原理浅析及命令介绍

状态描写叙述

请记住,工作文件夹以下的全部文件都不外乎这两种状态:已跟踪或未跟踪。已跟踪的文件是指本来就被纳入版本号控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新。已改动或者已放入暂存区。而全部其它文件都属于未跟踪文件。

它们既没有上次更新时的快照,也不在当前的暂存区域。

初次克隆某个仓库时。工作文件夹中的全部文件都属于已跟踪文件。且状态为未改动。


在编辑过某些文件之后。Git 将这些文件标为已改动。

我们逐步把这些改动过的文件放到暂存区域,直到最后一次性提交全部这些暂存起来的文件。如此反复。



假设此时新加入一个文件,那么它并不在git监管之下,属于未追踪的。使用add能够将文件纳入到暂存之下。这时候使用git commit会将暂存之下的改动提交,这个时候即使有改动,可是没有git add过。那么commit之后。git也不会存在它的快照。所以。要想将文件改动加入到本地仓库中,须要先add,然后再commit。当然。这样有点繁琐,能够直接使用git commit -a命令将工作文件夹中的改动保存到本地仓库中。

一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出如今未跟踪文件列表。通常都是些自己主动生成的文件,比方日志文件,或者编译过程中创建的暂时文件等。

我们能够创建一个名为 .gitignore 的文件,列出要忽略的文件模式。


要查看尚未暂存的文件更新了哪些部分,不加參数直接输入 git diff。此命令比較的是工作文件夹中当前文件和暂存区域快照之间的差异,也就是改动之后还没有暂存起来的变化内容。若要看已经暂存起来的文件和上次提交时的快照之间的差异,能够用 git diff --cached 命令。

(Git 1.6.1 及更高版本号还同意使用 git diff --staged。效果是同样的,但更好记些。)

请注意。单单 git diff 只是是显示还没有暂存起来的修改。而不是这次工作和上次提交之间的差异。所以有时候你一下子暂存了全部更新过的文件后。执行 git diff 后却什么也没有。就是这个原因。

文件提交

git commit -m "Story 182: Fix benchmarks for speed"
能够提交暂存的改动。

git commit -a -m 'added new benchmarks'
上面的命令加了a參数,能够将工作文件夹中的改动直接提交,等同于跳过了add过程。

移除文件

要从 Git 中移除某个文件,就必需要从已跟踪文件清单中移除(确切地说。是从暂存区域移除)。然后提交。能够用 git rm 命令完毕此项工作,并连带从工作文件夹中删除指定的文件。这样以后就不会出如今未跟踪文件清单中了。

假设仅仅是简单地从工作文件夹中手工删除文件,执行 git status 时就会在 “Changes not staged for commit” 部分(也就是未暂存清单)看到。

然后再执行 git rm 记录此次移除文件的操作 git rm filename

假设删除之前改动过而且已经放到暂存区域的话。则必需要用强制删除选项 -f(译注:即 force 的首字母)。以防误删除文件后丢失改动的内容。

第二种情况是。我们想把文件从 Git 仓库中删除(亦即从暂存区域移除)。但仍然希望保留在当前工作文件夹中。换句话说。仅是从跟踪清单中删除。比方一些大型日志文件或者一堆 .a 编译文件,不小心纳入仓库后,要移除跟踪但不删除文件,以便稍后在 .gitignore 文件里补上。用 --cached 选项就可以

git rm --cached readme.txt
移动文件

要在 Git 中对文件改名。能够这么做:

git mv file_from file_to
事实上,执行 git mv 就相当于执行了以下三条命令:

mv README.txt README
git rm README.txt
git add README

查看提交历史

git log
git log 有很多选项能够帮助你搜寻感兴趣的提交,接下来我们介绍些最经常使用的。

git log -p -2
我们经常使用 -p 选项展开显示每次提交的内容差异。用 -2 则仅显示近期的两次更新.

某些时候,单词层面的对照,比行层面的对照,更加easy观察。Git 提供了 --word-diff 选项。我们能够将其加入到 git log -p 命令的后面,从而获取单词层面上的对照。在程序代码中进行单词层面的对照经常是没什么用的。只是当你须要在书籍、论文这样的非常大的文本文件上进行对照的时候。这个功能就显出用武之地了。

新添加的单词被 {+ +} 括起来。被删除的单词被 [- -] 括起来。在进行单词层面的对照的时候,你可能希望上下文( context )行数从默认的 3 行。减为 1 行。那么能够使用 -U1 选项。

还有个经常使用的 --pretty 选项,能够指定使用全然不同于默认格式的方式展示提交历史。

比方用 oneline 将每一个提交放在一行显示,这在提交数非常大时非常实用。


以上仅仅是简介了一些 git log 命令支持的选项。表 2-2 还列出了一些其它经常使用的选项及其释义。

转载于:https://www.cnblogs.com/jzdwajue/p/7363170.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python怎么跳转到某一行代码_Python中免验证跳转到内容页的实例代码

在本篇文章里小编给大家整理的是一篇关于Python中免验证跳转到内容页的实例代码,有兴趣的朋友们可以学习分享下。相信很多人在浏览网页时,经常会碰到需要输入验证码才可以继续浏览的情况吧,遇到这种问题,大多数人只能进行繁琐的注…

正则表达

文章目录正则表达数据验证字面值\d查数字^\w特殊符号匹配规则.除|n所有字符\d查数字\D非数字![在这里插入图片描述](https://img-blog.csdnimg.cn/20200203213049246.png)\s空白字符![在这里插入图片描述](https://img-blog.csdnimg.cn/20200203213145246.png)\S非空白字符![在…

《从三月开始……》

很多时候,我们对不同现状有所不满——对无法冲破的工作瓶颈不满对久不增长的收入不满对久不下降的体重不满对无法提高的学分不满对没有进展的关系不满……似乎总有某个方面的不顺给我们带来烦恼为此,我们也做了“努力”——我们通过各种渠道和平台去查阅…

Thread.join()

1.join() join()的作用是:“等待该线程终止”,这里需要理解的就是该线程是指的主线程等待子线程的终止。也就是在子线程调用了join()方法后面的代码,只有等到子线程结束了才能执行。 主线程生成并起动了子线程,而子线程里要进行大…

管理系统制作的python代码_python学生管理系统代码实现

本文实例为大家分享了python学生管理系统的具体代码,供大家参考,具体内容如下类class Student:stuID ""name ""sex "M"classID "NULL"#set IDdef setStuID(self,stuID):self.stuID stuIDdef setName(self,…

从未知到2019年的文章汇总

2018年下半年我正式把这个遗弃了很久的微信号运营起来,2019年应该是比较正式的一年,也是成长最快的一年。从开始捣鼓微信公众号到现在,我写了很多东西。这篇文章把之前写过的,不管是好的,还是不好的,都整理…

python modbus控制plc_python Modbus基础

modbus 协议 数据格式00 00 00 00 00 06 01 03 00 00 00 02 ascii码第一位:事务处理标识符 由服务器复制,通常为0第二位:事务处理标识符 由服务器复制,通常为0第三位:协议标识符0第四位:协议标识符0第五…

Binder远程转本地

前言在[031]Binder线程栈复用中,我们说到Binder驱动通过“线程栈复用”减少线程数,我们来讲一讲另外一个机制“远程转本地”,将远程Binder调用转化成本地方法调用。一、写个Demointerface IServiceB {void sendMsg(String msg); }1.1 Client…

linux这样去掉文件里高亮字体

终端输入:noh转载于:https://www.cnblogs.com/S--S/p/7365407.html

pythonb超分辨成像_Papers | 超分辨 + 深度学习(未完待续)

1. SRCNN1.1. Contributionend-to-end深度学习应用在超分辨领域的开山之作(非 end-to-end 见 Story.3 )。指出了超分辨方向上传统方法( sparse-coding-based SR methods )与深度学习方法的关系,insightful 。SRCNN网络非常简单,PSNR、SSIM 等却有小幅提升…

5类主题词汇(2)

社会热点 信息科技 cyber 网络 telecommunication电讯 network网络 website 网站 blog 博客 access接近 进入 profile概况 简介 database数据库 digital数字的 数码的 keyboard键盘 hardware硬件 software软件 application程序 surf冲浪 surf on the internet 网上冲浪 chat …

存储对手机性能的影响

前言几年以前,我被派去厦门上门去分析一个用户的手机卡顿问题,该用户的手机经常莫名无响应,刷机,恢复出厂都没有用,经过一通分析,原来该用户从熟人店里买到了一张盗版的SD卡(这年头坑的就是朋友…

python周末吃什么_中午不知道吃什么?用Python爬取美团外卖评论帮你选餐!

分析url的网页源代码,在源代码里有我们想要的评论数据,我们可以用正则(在这里正则还是比较好用的)把我们想要的信息弄下来开启循环,批量抓取保存数据至文本和数据库defparse_one_page(html):pattern2 re.compile( "m_type":"…

5类主题词汇(3)

道德价值 business ethics商业道德 professional ethics个人道德 virtue美德 moral value道德价值 improve public morals改进社会风气 safeguard public morals维护社会风气 injure public morality损害公共道德 fight against piracy抵制盗版 observe/obey the laws守法 be …

进阶攻略|前端最全的框架总结

前端的技术日渐更新,最近得空,花了一上午的时间,将前端常见的UI框架总结了一下,在开发的过程之中,有了这些,不断能够提高自己的工作效率,还可以在工作之余了解更多。希望大家喜欢。1.Layui官方网…

你知道char *s和char s[]的区别吗?

在一个夜深人静的晚上,有一个读者给我发了一个C语言题目。他问我,发哥,帮我看看这个代码有什么问题。我看了代码之后,心里一阵恐慌。我自认为我不是C语言高手。但我确实是一个喜欢解决问题的男人。就是在这样的背景驱使下&#xf…

5类主题词汇(4)

求职就业类 unemployment失业 job-hunting找工作 position职位 job resume就业简历 job interview工作面试 job prospects职业背景application letter求职信 the want ads招聘工作 fill in/out application form填写申请表 accept/take the post接受职位 take over the post接…

python连连看小游戏_利用Python制作一个连连看小游戏,边学边玩!

导语今天我们将制作一个连连看小游戏,让我们愉快地开始吧~开发工具Python版本:3.6.4相关模块:pygame模块;以及一些Python自带的模块环境搭建安装Python并添加到环境变量,pip安装需要的相关模块即可。先睹为快在cmd窗口…

上Google Adsense个人的一点体验

最近我想开通一个Google Adsense帐号,因为以前注册过一个Google帐号,所以我以为两个是可以共通的,因为很久没上Google帐号,我记不太清密码了,所以我先是登录了Google,登上去了,密码没记错。然后…

通俗易懂,嵌入式Linux驱动基础

前言上一篇分享的:《从单片机工程师的角度看嵌入式Linux》中有简单提到Linux的三大类驱动:我们学习编程的时候都会从hello程序开始。同样的,学习Linux驱动我们也从最简单的hello驱动学起。驱动层和应用层 还记得实习那会儿我第一次接触嵌入式…