使用git,有没有一种方法可以重新应用更改而不提交更改?

使用git,有没有一种方法可以重新应用更改而不提交更改?,git,Git,如果我切换到一个新的分支并提交文件(并将其作为备份推送到GitHub),我发现一旦切换回旧的分支,所有文件都不会被修改——就好像自上次提交以来从未被修改过一样 在这种情况下,我可以像以前一样修改文件吗 我能 git rebase tmp-branch 并获取这些更改,但此操作也将提交应用于我的当前分支。有没有一种方法不让提交发生,而让文件被修改并保持未提交状态?我认为您正在寻找git命令的隐藏系列 它允许您在不提交更改的情况下存储更改,切换到其他分支,并在返回时“弹出”隐藏 下面是它的一些基

如果我切换到一个新的分支并提交文件(并将其作为备份推送到GitHub),我发现一旦切换回旧的分支,所有文件都不会被修改——就好像自上次提交以来从未被修改过一样

在这种情况下,我可以像以前一样修改文件吗

我能

git rebase tmp-branch

并获取这些更改,但此操作也将提交应用于我的当前分支。有没有一种方法不让提交发生,而让文件被修改并保持未提交状态?

我认为您正在寻找git命令的
隐藏
系列

它允许您在不提交更改的情况下存储更改,切换到其他分支,并在返回时“弹出”隐藏

下面是它的一些基本用法示例

从那一页

使用将更改添加到索引中

或者将单个文件添加到索引中,由您选择。将更改隐藏在以下位置:

轰!你回到了原来的工作状态。那只虫子修好了吗?将您的工作带回:

您还可以进行多层隐藏,因此请确保使用

查看所有当前的。如果您需要从堆栈的更深处应用隐藏,这也很容易。下面是如何应用您拥有的第二个隐藏:

您还可以使用以下方法轻松地在堆栈上应用顶部隐藏:

如果使用此命令创建注释,它将永久删除该隐藏,而不会应用。您可以通过以下方式手动删除存储:


我认为您正在寻找git命令的
隐藏
系列

它允许您在不提交更改的情况下存储更改,切换到其他分支,并在返回时“弹出”隐藏

下面是它的一些基本用法示例

从那一页

使用将更改添加到索引中

或者将单个文件添加到索引中,由您选择。将更改隐藏在以下位置:

轰!你回到了原来的工作状态。那只虫子修好了吗?将您的工作带回:

您还可以进行多层隐藏,因此请确保使用

查看所有当前的。如果您需要从堆栈的更深处应用隐藏,这也很容易。下面是如何应用您拥有的第二个隐藏:

您还可以使用以下方法轻松地在堆栈上应用顶部隐藏:

如果使用此命令创建注释,它将永久删除该隐藏,而不会应用。您可以通过以下方式手动删除存储:


编辑:显然Git人已经想到了这一点。
您可以将
-n
标志传递到
cherry pick
以应用另一个提交的更改,并在创建新提交之前停止

git checkout old-branch       # Go back to the old branch, files are unmodified

git cherry-pick -n tmp-branch # Apply the changes from tmp-branch's tip

编辑:显然Git人已经想到了这一点。
您可以将
-n
标志传递到
cherry pick
以应用另一个提交的更改,并在创建新提交之前停止

git checkout old-branch       # Go back to the old branch, files are unmodified

git cherry-pick -n tmp-branch # Apply the changes from tmp-branch's tip

Git:隐藏未保存的更改

这将隐藏您未添加的所有修改:

git stash -k
请注意,新创建(和未添加)的文件将保留在您的工作目录中,除非您也使用-u开关

git stash -k -u

另外,在以后git stash pop时,您的工作目录必须是干净的(即需要添加所有更改)。

git:隐藏未老化的更改

这将隐藏您未添加的所有修改:

git stash -k
请注意,新创建(和未添加)的文件将保留在您的工作目录中,除非您也使用-u开关

git stash -k -u


另外,当您稍后git stash pop时,您的工作目录必须是干净的(即,需要添加所有更改)。

是否
隐藏了您要查找的内容?藏起来能解决吗?首先是通过隐藏、切换到新分支、应用隐藏、提交,然后切换回旧分支,然后再次应用隐藏吗?但是,如果我没有藏起来,而且我已经在另一个分支中承诺了呢?我相当肯定,是的。
stash
ing是你要找的吗?藏起来能解决吗?首先是通过隐藏、切换到新分支、应用隐藏、提交,然后切换回旧分支,然后再次应用隐藏吗?但是,如果我没有藏起来,而且我已经在另一个分支机构工作了,那该怎么办?我相当肯定,是的。你能列出针对这种特殊情况的步骤吗?如果我没有做隐藏,那么就不可能实现我在原始问题中想要的吗?我会尝试,我主要使用支持这个的GUI。如果您没有进行隐藏,那么我认为您的更改被覆盖了。在我的GUI中,它阻止您这样做,所以我不确定@太極者無極而生 没关系,看来你可以恢复未灰化的更改。上面的链接不是关于后来未隐藏的更改吗@太極者無極而生 你是对的,我错了。我不完全确定在更改分支后是否可以恢复未刷新的更改,但我对此表示怀疑。您能否列出针对这种特殊情况的步骤?如果我没有做隐藏,那么就不可能实现我在原始问题中想要的吗?我会尝试,我主要使用支持这个的GUI。如果您没有进行隐藏,那么我认为您的更改被覆盖了。在我的GUI中,它阻止您这样做,所以我不确定@太極者無極而生 没关系,看来你可以恢复未灰化的更改。上面的链接不是关于后来未隐藏的更改吗@太極者無極而生 你是对的,我错了。我不完全确定在更改分支后是否可以恢复未刷新的更改,但我对此表示怀疑。哦,天哪。。。git有点像在低水平上调整你的汽车。。。也许这就是为什么像伊藤男孩这样的人。。。git有点像在低水平上调整你的汽车。。。也许这就是为什么男人喜欢它
git stash drop <id>
git stash clear
git checkout old-branch       # Go back to the old branch, files are unmodified

git cherry-pick -n tmp-branch # Apply the changes from tmp-branch's tip
git stash -k
git stash -k -u