git
文章平均质量分 78
畏天
心之所向,身之所往
展开
-
git stash指定文件
示例:stash单个文件temp.cgit stash push temp.cgit stash -- temp.cgit stash push -m "test" temp.c注意:部分git版本无法stash,我在Windows上面用的git版本是git version 2.10.0.windows.1。这个版本是无法执行上述命令的,在这个版本上,stash的用法如下:usage: git stash list [<options>] or: git stash show原创 2021-07-06 16:22:26 · 18901 阅读 · 0 评论 -
《精通git》笔记之九(重置揭密)
三棵树理解 reset 和 checkout 的最简方法,就是以 Git 的思维框架(将其作为内容管理器)来管理三棵不同的树。“树” 在我们这里的实际意思是 “文件的集合”,而不是指特定的数据结构。(在某些情况下索引看起来并不像一棵树,不过我们现在的目的是用简单的方式思考它。)Git 作为一个系统,是以它的一般操作来管理并操纵这三棵树的:树用途HEAD上一次提交的快照,下一次提交的父结点Index预期的下一次提交的快照Working Directory沙盒HE原创 2021-01-19 15:50:28 · 206 阅读 · 0 评论 -
《精通git》笔记之九(重写历史)
先确认默认编辑器不是nano,nano编辑器可能用不习惯,需要改一下默认的编辑器git默认的编辑器为nano,不常用,需要修改为vim,方法如下:打开.git/config文件,在core中添加 editor=vim即可。或者运行命令 git config –global core.editor vim 修改更加方便。重写历史你可以在将暂存区内容提交前决定哪些文件进入提交,可以通过 stash 命令来决定不与某些内容工作,也可以重写已经发生的提交就像它们以另一种方式发生的一样。这可能涉及改变提交原创 2021-01-18 16:13:01 · 228 阅读 · 0 评论 -
《精通git》笔记之九(储藏与清理、签署工作、搜索)
储藏与清理储藏会处理工作目录的脏的状态 - 即修改的跟踪文件与暂存改动 - 然后将未完成的修改保存到一个栈上,可以在任何时候重新应用这些改动。储藏工作示例$ git statusChanges to be committed: (use "git reset HEAD <file>..." to unstage)modified: index.htmlChanges not staged for commit: (use "git add <file>..."原创 2021-01-15 15:16:24 · 330 阅读 · 0 评论 -
《精通git》笔记之八(选择修订版本、交互式暂存)
选择修订版本简短的 SHA-1Git 十分智能,只需要提供 SHA-1 的前几个字符就可以获得对应的那次提交,当然,提供的 SHA-1 字符数量不得少于 4 个,并且没有歧义——也就是说,当前仓库中只有一个对象以这段 SHA-1 开头。例如查看一次指定的提交,假设执行 git log 命令来查看之前新增一个功能的那次提交:$ git logcommit 734713bc047d87bf7eac9674765ae793478c50d3Author: Scott Chacon <schacon原创 2021-01-14 15:25:22 · 166 阅读 · 0 评论 -
《精通git》笔记之七(服务器上面的git)
此外,希望合作者们即使在你的电脑未联机时亦能存取仓库 — 拥有一个更可靠的公用仓库十分有用。因此,与他人合作的最佳方法即是建立一个你与合作者们都有权利访问,且可从那里推送和拉取资料的共用仓库。一个远程仓库通常只是一个裸仓库(bare repository)— 即一个没有当前工作目录的仓库。因为该仓库仅仅作为合作媒介,不需要从磁碟检查快照;存放的只有 Git 的资料。简单的说,裸仓库就是专案目录内的 .git 子目录内容,不包含其他资料。协议Git 可以使用四种主要的协议来传输资料:本地协议(Local原创 2021-01-11 14:45:38 · 179 阅读 · 0 评论 -
《精通git》笔记之五(分支新建与合并、分支管理、与分支有关的工作流、远程分支)
分支新建与合并分支的新建想要新建一个分支并同时切换到那个分支上,你可以运行一个带有 -b 参数的 git checkout 命令:$ git checkout -b iss53Switched to a new branch "iss53"它是下面两条命令的简写:$ git branch iss53$ git checkout iss53执行命令:$ vim index.html$ git commit -a -m 'added a new footer [issue 53]'原创 2021-01-05 16:14:40 · 250 阅读 · 0 评论 -
《精通git》笔记之四(分支简介)
分支简介Git 保存的不是文件的变化或者差异,而是一系列不同时刻的文件快照。在进行提交操作时,Git 会保存一个提交对象(commit object)。该提交对象会包含一个指向暂存内容快照的指针。但不仅仅是这样,该提交对象还包含了作者的姓名和邮箱、提交时输入的信息以及指向它的父对象的指针。首次提交产生的提交对象没有父对象,普通提交操作产生的提交对象有一个父对象,而由多个分支合并产生的提交对象有多个父对象。示例$ git add README test.rb LICENSE$ git commit原创 2020-12-17 16:49:32 · 204 阅读 · 0 评论 -
《精通git》笔记之四(git基础)
撤销提交有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。此时,可以运行带有 --amend 选项的提交命令尝试重新提交:$ git commit --amend例如,你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:$ git commit -m 'initial commit'$ git add forgotten_file$ git commit --amend最终你只会有一个提交 - 第二次提交将代替第一次提交的结果。取消暂存命令:git reset原创 2020-12-16 15:29:33 · 145 阅读 · 0 评论 -
《精通git》笔记之三(git基础 git log)
想回顾下提交历史.执行 git log 命令。$ git loggit log常用选项选项意义-p按补丁格式显示每个更新之间的差异。–stat显示每次更新的文件修改统计信息。–shortstat只显示 --stat 中最后的行数修改添加移除统计。–name-only仅在提交信息后显示已修改的文件清单。–name-status显示新增、修改、删除的文件清单。–abbrev-commit仅显示 SHA-1 的前几个字符,而非所有的 40 个字原创 2020-12-16 14:56:06 · 182 阅读 · 0 评论 -
《精通git》笔记之二(git基础)
如果你打算使用 Git 来对现有的项目进行管理,你只需要进入该项目目录并输入:$ git init该命令将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是Git 仓库的骨干。克隆仓库的命令格式是 git clone [url] 。比如,要克隆 Git 的可链接库 libgit2,可以用下面的命令:$ git clone https://github.com/libgit2/libgit2这会在当前目录下创建一个名为 “libgit2” 的目录原创 2020-12-14 14:47:05 · 128 阅读 · 0 评论 -
《精通git》笔记(一)
分布式版本控制系统(Distributed Version Control System,简称 DVCS)中,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。每一次的克隆操作,实际上都是一次对代码仓库的完整备份。如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。Git 对待数据更像是一个 快照流。Git 中所有数据在存储前都计算校验和,然后以校验和来引用。Git 有三种状态:已提交(committed)、已修改(modified)和已暂存(stag原创 2020-12-11 14:38:55 · 263 阅读 · 0 评论