![](https://img-blog.csdnimg.cn/20190101181744603.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Git旁通
文章平均质量分 68
Git的基本用法和原理分析
songyuequan
这个作者很懒,什么都没留下…
展开
-
Git仓库.git文件夹目录介绍
说明以下皆为.git/ 目录下的文件1 ORIG_HEAD远程仓库 当前引用在git本地仓库根目录 运行:cat .git/ORIG_HEAD显示88e6fb86f5317bdfd2e8a78899334e9f0ba169872 HEAD本地仓库 当前引用文件内容:refs/heads/cat .git/HEAD显示ref: refs/heads...原创 2018-10-03 20:37:19 · 39941 阅读 · 1 评论 -
Git 找回删除的分支
我本地有两个分支,然后我删除了 save 分支参见 上一篇博客 git reflog 解析查看所有的引用变动的日志git reflog如下图,这里我们看到,并没有删除分支的记录,我们切回到被删除分支最后操作的一个reflog id 也就是 6c4a469切回到删除分支之前的那个IDgit checkout 6c4a469git checkout -b save这样就...原创 2019-09-30 17:44:20 · 6674 阅读 · 1 评论 -
Git 设置自动rebase
1. 设置所有分支自动rebasegit config branch.autosetuprebase always或者git config --global branch.autosetuprebase always此时宿主目录下的.gitconfig文件会多出下面的内容[branch] autosetuprebase = always所有新切的分支都会自动rebase,...原创 2019-10-31 12:01:58 · 2498 阅读 · 0 评论 -
Git 清除本地 remotes/origin/*
由于项目中使用Feature Branches 工作流,所以会有很多分支长时间运行后,会有很多分支但是这些分支,在服务端已经删除运行git remote prune origin清除分支,清除完毕后如下图所示,干净整洁...原创 2019-04-22 15:54:30 · 5466 阅读 · 0 评论 -
Git: 对象原理实践
本篇文章是对 Git 官方文档 Git Internals - Git Objects 的一个实操中文版 Git 内部原理 - Git 对象个人翻译版本 https://blog.csdn.net/songyuequan/article/details/858624151. 创建一个GIt仓库初始化仓库git init查看.git/objects 目录cd .git/obj...原创 2019-02-12 16:01:50 · 277 阅读 · 0 评论 -
Git: 对象原理
原文: Git Internals - Git ObjectsGit是一个内容可寻址的文件系统。那是什么意思?这意味着Git的核心是一个简单的键值对数据存储仓库。这意味着您可以将任何类型的内容插入Git仓库,对于你插入的内容,Git将返回一个唯一的密钥,你可以使用该密钥来检索你插入的内容。现在我们用git hash-object命令做演示,它获取一些数据,将其存储在.git/objects目录...翻译 2019-02-11 16:28:20 · 2110 阅读 · 0 评论 -
Git:rebase 是什么
接上文 Git: commit 中的 hash 是什么在上文中,我们讨论了commit hash是什么。我们了解到的关于commit的一个重要方面是它们不能被改变。hash本身是由存储在commit中的信息生成的,因此要修改commit或commit hash,必须创建一个全新的commit。我们还讨论了每个commit都存储上一个commit的hash。我们没有讨论的是这对我们的Git历史有...翻译 2019-01-01 19:37:08 · 5531 阅读 · 2 评论 -
Git: commit 中的 hash 是什么
Table of Contents:Part 1 - What is a commit hash?Part 2 - What is a merge?Part 3 - What is a rebase?Part 1 - What is a commit hash?在学习如何使用Git时,我曾经遇到过的最大困难之一就是merge和rebase之间的区别。大多数人很快就理解了merge的概...翻译 2019-01-01 15:00:52 · 15874 阅读 · 0 评论 -
Git 交互式add
1. 新建项目我们的项目已经建好了,并做了初始化的提交,项目中只有一个文件 README.md内容是2. 编辑文件3. 交互式add上面的图片我们可以看出,我们为 README.md 文件加了3个方法。现在为了体现自己写代码的思路以及 Code Review方便,我们将这三个方法分两次提交。首先 提交 method1() 和 method2() ,再提交 method3()运行...原创 2018-12-16 17:36:44 · 886 阅读 · 0 评论 -
SVN 迁移到 Git
编写 authors.txtzhangsan = zhangsan <zhangsan@yeah.net>clone 项目 git svn clone <svn url> --authors-file=authors.txt -T trunk -b branches -t tags设置Git 服务地址 git原创 2018-11-30 13:01:28 · 439 阅读 · 2 评论 -
git reflog 解析
Git仓库.git文件夹目录介绍在这篇文章中我们介绍了HEAD和refs的一些引用关系。git reflog 顾名思义,就是查看ref的日志。也就是包含了所有ref变化的记录。根据Git仓库.git文件夹目录介绍我们可以得知,引起ref变化的操作有git checkout branchName ( 切换分支 ) :moving from branch1 to branch2git...原创 2018-11-04 12:05:46 · 2304 阅读 · 0 评论 -
Git 高级
1 核心一切皆引用2 HEAD的本质当前commit的引用3 branch的本质1 commit 的串儿的引用2 branch包含从初始commit 到当前commit的所有路径。所以branch也是commit的引用。3 切换分支也就是切换引用。4 删除分支也就是删除commits4 checkout的本质checkout 的本质是签出指定的 commit,...原创 2018-10-03 19:25:26 · 493 阅读 · 0 评论 -
Git来由
Linus是为何要写Git的呢?话说Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有...转载 2018-10-05 11:44:45 · 222 阅读 · 0 评论 -
Git 基础
1.追踪文件方式1git add . //追踪当前目录下所有不被.gitignore文件方式2git add <fileName> // 追踪指定文件2.形成一个提交方式1git commit //然后在vim中输入提交信息方式2git commit -m &原创 2018-10-03 19:18:08 · 475 阅读 · 0 评论