845 次查看
commit 命令会隐式地移动分支的 HEAD。下图显示,最初 HEAD 指向提交 c1。每次提交操作后,HEAD 指针都会向前移动到新的提交。我们可以使用 HEAD 指针或提交哈希执行重置。git reset 命令将显式或强制地将分支的 HEAD 移动到特定的提交。当重置 HEAD 指针时,我们有 3 个选项:软、混合、硬。硬重置时,git 会将提交快照复制到工作区和暂存区。因此,所做的任何更改... 阅读更多
2K+ 次查看
在进行合并时,您可能会遇到一个或多个冲突。现在,如果我们还没有准备好处理此冲突怎么办?也许您有多个冲突,并且没有足够的时间来花费在解决这些冲突上。在这种情况下,我们可以轻松地返回到开始合并之前的状态。要中止合并,我们可以使用以下命令:$ git merge --abort请注意,如果我们在解决某些冲突并暂存更改后执行此命令,则这些更改将不会保存。一旦命令被触发,我们就回到了... 阅读更多
816 次查看
在现实世界中,当我们合并分支时,我们会经常遇到冲突。冲突发生的原因如下:当同一行代码在两个分支中以不同的方式更改时。一个给定的文件在一个分支中被更改,但在另一个分支中被删除。在两个不同的分支中添加了相同的文件,但文件的内容不同。在这些情况下,git 将停止合并过程,因为它无法确定如何合并更改。在这种情况下,我们需要手动干预并指示如何继续合并过程。给定的图表... 阅读更多
7K+ 次查看
当我们在 git 存储库中有多个分支时,我们需要将所有分支的更改带到主要工作线,即 master 分支。因此,如果我们当前在 master 分支中并且需要查看哪些分支需要合并,我们可以使用以下命令。$git branch --no-merged我们还需要验证哪些分支已经合并,以便我们可以删除未使用的分支$git branch --merged示例让我们创建一个示例来了解如何查看已合并和未合并的分支。下图显示有... 阅读更多
快进合并可以禁用:在合并时对于整个存储库对于所有存储库。禁用快进合并既有优点也有缺点。当我们禁用快进合并时,git 将执行合并提交以合并来自两个分支的更改。合并提交的缺点是它变得难以阅读和理解提交历史,尤其是在我们有多个分支时。如果您的团队更喜欢保留分支的线性历史记录,那么应该使用快进合并。禁用快进合并将创建合并提交,这会污染提交历史。... 阅读更多
5K+ 次查看
让我们来看一个三路合并的例子。在此示例中,Feature 分支比 Master 分支提前两个提交。图 1在我们将其与 Master 合并之前,假设我们在 Master 中添加了另一个提交,如下面的图表所示。图 2由于在 Master 分支上执行的提交,我们的 Master 和 Feature 分支现在都已分叉。这意味着 Master 分支中有一些更改在 Feature 分支中不存在。如果在这种情况下执行合并,Git 无法将 master 指针移向 Feature... 阅读更多
25K+ 次查看
当从源分支到目标分支存在直接线性路径时,可以执行快进合并。在快进合并中,git 只需将源分支指针移动到目标分支指针,而无需创建额外的合并提交。让我们来看一个实现快进合并的示例。我们有一个带有 3 个提交的 master 分支。接下来,我们创建一个名为 feature 分支的分支。在 git 中,分支只不过是指向提交的指针。此时,feature 和 master 都指向同一个提交。现在让我们切换到 feature 分支并执行几个... 阅读更多
git 中的分支是一系列相互关联的提交。如果两个分支遵循非线性路径,则它们会彼此分叉。该图显示了两个分叉的分支 master 和 feature。考虑上图。假设这两个分支在初始提交之前都遵循线性路径。在初始提交之后,master 分支有一个独立的提交 c1,feature 分支有自己的提交 c2。由于分支现在遵循非线性路径,因此我们可以说这两个分支都已分叉。让我们通过一个示例来了解这一点步骤 1 - 创建一个空的... 阅读更多
Git 使用一系列 BLOB 和树来存储项目工作目录的内容。每当我们执行提交操作时,Git 在内部都会创建一系列树和 BLOB,它们是项目文件夹结构在提交时的二进制表示。什么是 BLOB?BLOB 代表二进制大对象。Git 中文件的每个版本都表示为一个 BLOB。BLOB 保存文件的数据,但不包含有关文件或其名称的任何元数据。要了解 BLOB,让我们看一个例子。创建 3 个文件“file1.txt”、“file2.txt”和... 阅读更多
git status 命令返回以下内容的当前状态:工作区暂存区此命令返回已跟踪和未跟踪的文件以及对存储库所做的更改。但是,此命令不会显示任何提交记录或信息。此命令通常返回一个状态消息,表示以下状态之一:没有提交历史记录未跟踪的文件待提交的更改干净的工作树已修改的文件已删除的文件使用 git status 命令的语法如下:$ git status上面命令输出的屏幕截图如下。输出表明文件已被修改。dell@DESKTOP-N961NR5 MINGW64 /e/tut_repo (master) $ git status 在分支 master 上... 阅读更多