当前位置: 首页 > 文档资料 > Git 中文文档 >

快照基础

优质
小牛编辑
131浏览
2023-12-01

对于基本的暂存内容及提交到你的历史记录中的工作流,只有少数基本的命令。

git add

git add 命令将内容从工作目录添加到暂存区(或称为索引(index)区),以备下次提交。 当 git commit 命令执行时,默认情况下它只会检查暂存区域,因此 git add 是用来确定下一次提交时快照的样子的。

这个命令对于 Git 来说特别的重要,所以在本书中被无数次的提及和使用。 我们将快速的过一遍一些可以看到的独特的用法。

我们在 跟踪新文件 一节中介绍并详细解释了 git add 命令。

然后,我们在 遇到冲突时的分支合并 一节中提到了如何使用它来解决合并冲突。

接下来,我们在 交互式暂存 一章中使用它来交互式的暂存一个已修改文件的特定部分。

最后,在 树对象 一节中我们在一个低层次中模拟了它的用法,以便你可以了解在这背后发生了什么。

git status

git status 命令将为你展示工作区及暂存区域中不同状态的文件。 这其中包含了已修改但未暂存,或已经暂存但没有提交的文件。 一般在它显示形式中,会给你展示一些关于如何在这些暂存区域之间移动文件的提示。

首先,我们在 检查当前文件状态 一节中介绍了 status 的基本及简单的形式。 虽然我们在全书中都有用到它,但是绝大部分的你能用 git status 做的事情都在这一章讲到了。

git diff

当需要查看任意两棵树的差异时你可以使用 git diff 命令。 此命令可以查看你工作环境与你的暂存区的差异(git diff 默认的做法),你暂存区域与你最后提交之间的差异(git diff --staged),或者比较两个提交记录的差异(git diff master branchB)。

首先,我们在 查看已暂存和未暂存的修改 一章中研究了 git diff 的基本用法,在此节中我们展示了如何查看哪些变化已经暂存了,哪些没有。

提交准则 一节中,我们在提交前使用 --check 选项来检查可能存在的空白字符问题。

确定引入了哪些东西 一节中,了解了使用 git diff A...B 语法来更有效地比较不同分支之间的差异。

高级合并 一节中我们使用 -b 选项来过滤掉空白字符的差异,及通过 --theirs--ours--base 选项来比较不同暂存区冲突文件的差异。

最后,在 开始使用子模块 一节中,我们使用此命令合 --submodule 选项来有效地比较子模块的变化。

git diff {#3}tool

当你不想使用内置的 git diff 命令时。git difftool 可以用来简单地启动一个外部工具来为你展示两棵树之间的差异。

我们只在 查看已暂存和未暂存的修改 一节中简单的提到了此命令。

git commit

git commit 命令将所有通过 git add 暂存的文件内容在数据库中创建一个持久的快照,然后将当前分支上的分支指针移到其之上。

首先,我们在 提交更新 一节中涉及了此命令的基本用法。 我们演示了如何在日常的工作流程中通过使用 -a 标志来跳过 git add 这一步,及如何使用 -m 标志通过命令行而不启动一个编辑器来传递提交信息。

撤消操作 一节中我们介绍了使用 --amend 选项来重做最后的提交。

分支简介,我们探讨了 git commit 的更多细节,及工作原理。

签署提交 一节中我们探讨了如何使用 -S 标志来为提交签名加密。

最后,在 提交对象 一节中,我们了解了 git commit 在背后做了什么,及它是如何实现的。

git reset

git reset 命令主要用来根据你传递给动作的参数来执行撤销操作。 它可以移动 HEAD 指针并且可选的改变 index 或者暂存区,如果你使用 --hard 参数的话你甚至可以改变工作区。 如果错误地为这个命令附加后面的参数,你可能会丢失你的工作,所以在使用前你要确定你已经完全理解了它。

首先,我们在 取消暂存的文件 一节中介绍了 git reset 简单高效的用法,用来对执行过 git add 命令的文件取消暂存。

重置揭密 一节中我们详细介绍了此命令,几乎整节都在解释此命令。

中断一次合并 一节中,我们使用 git reset --hard 来取消一个合并,同时我们也使用了 git merge --abort 命令,它是 git reset 的一个简单的封装。

git rm

git rm 是 Git 用来从工作区,或者暂存区移除文件的命令。 在为下一次提交暂存一个移除操作上,它与 git add 有一点类似。

我们在 移除文件 一节中提到了 git rm 的一些细节,包括递归地移除文件,和使用 --cached 选项来只移除暂存区域的文件但是保留工作区的文件。

在本书的 移除对象 一节中,介绍了 git rm 仅有的几种不同用法,如在执行 git filter-branch 中使用和解释了 --ignore-unmatch 选项。 这对脚本来说很有用。

git mv

git mv 命令是一个便利命令,用于移到一个文件并且在新文件上执行`git add`命令及在老文件上执行`git rm`命令。

我们只是在 移动文件 一节中简单地提到了此命令。

git clean

git clean 是一个用来从工作区中移除不想要的文件的命令。 可以是编译的临时文件或者合并冲突的文件。

清理工作目录 一节中我们介绍了你可能会使用 clean 命令的大量选项及场景。

最后更新:

类似资料

  • 主要内容:1.创建Repository(仓库),2.获取 Git 仓库,3. 更新提交到仓库,3.7 查看已暂存和未暂存的修改,4 查看提交历史,5 撤消操作,6 程仓库的使用,6.4 查看远程仓库,以下是纠正/补充内容:假如只能阅读一章来学习 Git,那么本教程绝对是一个不二的选择。本章内容涵盖你在使用 Git 完成各种工作中将要使用的各种基本命令。 在学习完本章之后,你应该能够配置并初始化一个仓库()、开始或停止跟踪()文件、暂存()或提交()更改。 本章也将演示如何配置 Git 来忽略指定

  • 对于基本的暂存内容及提交到你的历史记录中的工作流,只有少数基本的命令。 git add git add 命令将内容从工作目录添加到暂存区(或称为索引(index)区),以备下次提交。 当 git commit 命令执行时,默认情况下它只会检查暂存区域,因此 git add 是用来确定下一次提交时快照的样子的。 这个命令对于 Git 来说特别的重要,所以在本书中被无数次的提及和使用。 我们将快速的过

  • 问题内容: 当我们进行发布时,将按预期创建发布工件和标签。但是,该项目未正确更新到下一个(快照) 版本。 控制台日志的相关部分: 以及该项目在Git中的状态,与预期的一样: 因此,看起来下一个快照的更新是在本地提交的,但没有被推送。这是错误(我[找不到相关 票证](https://issues.jenkins-ci.org/secure/IssueNavigator.jspa?mode=hide&

  • 创建一个新文件 ~/.gitignore ,并将以下内容添加进去,这样全部 git 仓库将会忽略以下内容所提及的文件。 # Folder view configuration files .DS_Store Desktop.ini # Thumbnail cache files ._* Thumbs.db # Files that might appear on external disks .S

  • 功能分支(feature branches)、发布分支(release branches)、主干(master)、开发分支(develop)、紧急修复分支(hotfixes)和标签(tag)。 Git Flow 太复杂 Git Flow 违背了分支的“短命”原则:在使用 Git 时,在同一个分支上开发代码的人越多,出现合并冲突的几率就越高。在使用 Git Flow 后,冲突几率会变得更高,因为还有

  • 规范建设 commit message格式 <type>(<scope>): <subject> type(必须) 用于说明git commit的类别,只允许使用下面的标识。 feat:新功能(feature)。 fix/to:修复bug,可以是QA发现的BUG,也可以是研发自己发现的BUG。 fix:产生diff并自动修复此问题。适合于一次提交直接修复问题 to:只产生diff不自动修复此问题