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