我只在分支上: master
。
我曾经有另一个分支,但我将其合并到master
然后将其删除。
此类合并和删除的分支从fe6263e
分叉。
0c81926
是c79dc19
没有标记或任何其他指向c79dc19
的提交。我理解,如果某个对象指向一个修改后的提交,这样的提交将继续显示在历史中。但事实并非如此。
为什么历史记录线没有被夷为平地?
为什么仍然显示c79dc19
?
它是如何发生的?
正如我所提到的,没有任何内容指向它,我做了git -gc
来清理任何挂起的提交。
答案 0 :(得分:2)
没有标记或任何其他[commit]指向
c79dc19
这不是历史所显示的。
尝试运行git show HEAD
- 它会显示合并的两个父母是什么。它从您的图表中看起来像是c79dc19
,这就是它出现在您的历史中的原因。
最有可能的是,分支真正开始于c79dc19
(因此已经在主服务器上),或者分支在{{1}时被合并为主服务器作为快进是它的头。
工作插图:
初始状态
c79dc19
新提交
fe62 <=master <=HEAD
结帐新分行
fe62 <- c79d <=master <=HEAD
修改(在分支上)提供一个新的提交fe62 <- c79d <=master <=branch <=HEAD
,替换该分支上的 0c81
,但不更改{ {1}}
c79d
答案 1 :(得分:2)
你在c79
创建了一个新的分支,所以主人继续指向那里。然后从新的分支机构你提交修改,因此主人和新分支有不同的历史。
有一点需要注意的是,修正案实际上并未修改提交。提交是不可改变的。修正案基于另一个修改创建新的提交。
如果要展平它,请将master指向上一次提交并合并到tip。
git checkout -b temp
git branch -f master fe6263e
git checkout master
git merge f6429eb
答案 2 :(得分:1)
很难100%确定,但这种情况经常发生,因此可能正确答案。
您提到您只有一个名为master
的分支。我相信你!但是你不只有一个存储库 - 或者更确切地说,你有你的克隆,然后还有一些其他克隆,可能在你在某个中心调用origin
的遥控器上服务器,如GitHub或企业服务器。您将提交发送到服务器,并从服务器获取提交。
您还提到使用git commit --amend
。有关详细信息,请参阅How does git commit --amend work, exactly?(如Jubobs' comment中所述),但简而言之,这并不是更改提交,只是将其推到一边赞成新的替换提交。但是,据推测,您已经推送了原始提交 - 所以它现在位于其他存储库中的master
分支中。
所以你现在0c81926
作为master
的提示,而他们(来源)有c79dc19
。然后,您创建了新的提交f6429eb
,以便您的master
指向该提交。
然后,我敢打赌你已经git pull
了(很可能你没有配置或指示你的git pull
做git rebase
)。这次运行git fetch
后跟git merge
。 git fetch
已使用您的远程origin
进行了检查,发现 master
指向了提交c79dc19
。 git merge
git pull
与您的分支合并 分支的706b1ef
生成合并提交c79dc19
。
最后,这意味着你做了有两个不同的分支:master和master。只是其中一个是你的主人,其中一个是其他人主人。
请注意,您可以摆脱提交git rebase -i fe6263e
和合并,例如,使用git rebase
(混乱开始之前的那一点):删除不需要的额外提交,让origin
展平剩余的历史记录并省略合并。 (或者,使用Jeff Puckett II's answer中的方法。)但是,执行此操作后,您的历史记录将与c79dc19
上的历史记录不同:他们有一个提交(同样的) master
你正在试图摆脱)你没有。因此,您无法在不强制推送的情况下进行推送(可选地,&#34;强制使用租约&#34;,期望他们的c79dc19
为 id name pluralName
1 4bf58dd8d48988d1c1941735 Mexican Restaurant Mexican Restaurants
shortName icon.prefix
1 Mexican https://ss3.4sqi.net/img/categories_v2/food/mexican_
icon.suffix primary
1 .png TRUE
[[14]]
**data frame with 0 columns and 0 rows**
[[15]]
id name pluralName shortName
1 4bf58dd8d48988d11b951735 Flower Shop Flower Shops Flower Shop
icon.prefix icon.suffix
1 https://ss3.4sqi.net/img/categories_v2/shops/flowershop_ .png
primary
1 TRUE
,以确保他们没有自上次检查以来,我得到了更多的提交。