繁体   English   中英

Git 存储列表合并推送

[英]Git stash list merge push

我对这个简单的事情感到头晕目眩。

sudo git stash list
stash@{0}: WIP on main: 03d5e72 14
stash@{1}: WIP on main: 03d5e72 14
stash@{2}: WIP on main: 03d5e72 14
stash@{3}: WIP on main: 03d5e72 14
stash@{4}: WIP on main: 03d5e72 14

sudo git commit -m "main"
On branch main
Your branch is up to date with 'origin/main'.
nothing to commit, working tree clean

sudo git merge
Already up to date.

sudo git push
Everything up-to-date

我可以知道如何推送所有 git 更改吗? 当我在 github 网站上查看时,没有任何更改,也没有新的提交

您的main上没有任何提交,您可以将其发送到origin以成为main上的新提交,因为您在main上的所有提交都已经在其main上。

这五个隐藏提交1不在任何分支上 您不能推送 stash, 2也不应该推送,因为它们不是日常提交(参见脚注 1)。 要推送存储,您通常应该将其转换为分支,例如,使用git stash branch 然后,您可以将正常的日常提交作为分支推送,或者您可以根据需要将这些提交合并或挑选到现有分支中。

一般来说,我建议那些刚接触 Git 的人避免git stash 它所做的只是进行一些根本不在任何分支上的稍微古怪的提交。 这使得藏匿处难以使用。 如果您在分支上进行正常提交,它们是正常的并且很容易找到和使用。 只需创建一个新分支(如有必要/适当),然后提交。 了解如何将git rebase -i与未发布的(尚未推送或推送到仅供私人使用的分支)提交一起使用,以重新打乱它们并将它们重新组合到您之前所做的提交中在做你的工作之前就知道了,你现在在工作之后就知道了什么。


1从技术上讲,每个 stash 至少包含两个,有时是三个提交。 两个或三个提交中的一个具有合并提交的形式,但其他提交不是您通常在进行合并提交之前进行的那种提交。 因此,处理合并提交的 Git 工具会误解隐藏中的合并提交。

特别是,这意味着您不应使用git show stash而是使用git stash show来查看当前的存储堆栈顶部存储。 很容易错误地将这两个词颠倒过来,而且当你这样做的时候,stash 往往看起来是的。 不是——只是 Git 被这个“看起来像藏匿处,闻起来像藏匿处,尝起来像藏匿处,幸好我们没有将其用作藏匿处”笑话3提交弄糊涂了。

2从技术上讲,你可以推动它们。 但是,你必须在服务器端编一个 refname——一个分支名称——之后,另一端的 Git 会混乱。 一般来说,不要这样做。 请注意,如果您这样做, git stash代码可以处理这些; 只是不方便。

3 stash这个词似乎只是邀请老 Cheech 和 Chong 材料。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM