Git 什么';“的意思是什么;已经是最新的”;

Git 什么';“的意思是什么;已经是最新的”;,git,merge,Git,Merge,当我在git中创建远程存储库时,“将上游/主分支的更改合并到本地主分支中。这将使您的分支的主分支与上游存储库同步,而不会丢失本地更改。” “已经更新”的含义是什么 让我们看看两种常见的情况,在这两种情况下,您会得到上述信息 第一个出现在提交图中,该图如下所示: ... - o - o - o - * <-- HEAD=master, upstream/master ... - o - o - Y - * <-- HEAD=master \ /

当我在git中创建远程存储库时,“将上游/主分支的更改合并到本地主分支中。这将使您的分支的主分支与上游存储库同步,而不会丢失本地更改。”


“已经更新”的含义是什么

让我们看看两种常见的情况,在这两种情况下,您会得到上述信息

第一个出现在提交图中,该图如下所示:

... - o - o - o - *   <-- HEAD=master, upstream/master
... - o - o - Y - *   <-- HEAD=master
            \   /
              o       <-- upstream/master
这里,您最近的提交再次被标记为
*
:它是合并的结果。他们的最新提交是下线节点
o
。标记为
Y
的提交只属于“您的”(因此是Y)

为了获得第二个图表,您(或下面的人)必须已经完成了早期的
git merge
,它创建了合并提交
*
。但是,如果此时您执行第二次
git合并
,它将显示
已经是最新的

在这种特殊情况下,您的最新提交(
git-rev-parse-HEAD
将向您显示原始SHA-1)将不同于其最新提交(
git-rev-parse-upstream/master
将向您显示其原始SHA-1),即使您是“最新的”。如果您记得以前进行过合并,您可能会想到这一点,但是如果您忘记了(或者如果其他人可以直接访问您的存储库,并且他们没有告诉您就进行了合并),这可能会让您感到惊讶

当上游的某个人删除了一个合并提交,“重写历史”时,也有可能出现这样的情况(这种情况很少见,而且有点烦人,真的)。你是否会看到这一点取决于谁控制了上游以及他们是如何做的


要查看实际的提交图,请使用
git log--all--graph
gitk--all
或其他一些图形查看器。

这意味着您的文件与repository中的最新版本完全相同谢谢您的详细解释。谢谢您的回答