Git Stash Apply on Master 而不是本地分支

Git Stash Apply on Master insted of Local branch

我在我的本地分支上进行了当前文件更改,不得不拉动 Master。 所以我做了-

git stash git checkout master git pull origin master

这一步我通常做git checkout myCurrentBranch,然后git stash apply stash@{0}, 但是由于疏忽,我在 Master 分支本身上进行了应用存储。

如何撤消此步骤?并取回我对 myCurrentBranch 的文件更改?

您应该能够做到以下几点:

git stash
git checkout myCurrentBranch
git stash apply stash@{0}

这将 return 您对存储和 return master 分支的更改在切换回本地分支并在那里重新应用存储之前变为干净状态。

由于您使用的是 git stash apply 而不是 git stash pop,因此您 仍然拥有保存的藏品 。这意味着您可以通过以下方式清除当前更改:

git reset --hard

后跟 git checkout(或 git switch)到您想要的 b运行ch 和另一个 git stash apply.

相关,但与git stash

无关

以后避免git pull可以省很多力气。此时您不需要更新 master,事实上,您可以 delete 您的 master b运行ch完全。而不是:

git stash
git checkout master
git pull
git checkout original-branch
git stash apply
# inspect and make sure all is well, and last:
git stash drop

您可以使用:

git fetch origin
# or just git fetch - "origin" is the usual default

fetch 完成后,您的 origin/master 就会更新。您现在可以使用自己的 origin/master,而不是使用您自己的 master。请注意 origin/master 不是 b运行ch 名称:而是 远程跟踪名称 。它会记住你的 Git 在 origin 的 Git 上看到的,在 他们的 master 上,你上次 运行 git fetch origingit fetch。 运行 git fetch origin 会自动更新您的 origin/master,因为这是您的 Git 对他们 b运行ch 的记忆:如果他们更新了他们的 b运行ch,你的系统会更新并记住它。如果他们没有更新他们的 b运行ch,你的系统不需要更新任何东西,也不需要。

因为您永远不需要离开当前的 b运行ch,所以您也永远不必使用 git stash

(如果你想检查进来的是什么,即看看他们的master——你的origin/master——长什么样,有多种方法也可以在不破坏现有 b运行ch 的情况下做到这一点,但让我们就此打住,因为这不是你的问题。)