不提交使用 git-svn 对 svn 所做的所有更改

Not dcommitting every change made to svn using git-svn

我有一个 SVN 存储库,我已将其复制到我的 PC 中,并且我一直在进行一些更改和提交。我为我解决的每个代码问题(我被要求解决)做出承诺。如果我正在解决一个问题,我只是保存代码并将其留在我的计算机上(直到我解决它,我提交它)。我正在使用 git svn.

今天我已经解决了三个问题(因此做出了三个提交)并且我在解决另一个问题的过程中留下了代码。我想推送 (dcommit) 我在本地所做的所有提交。

问题是:我还有未提交的文件,当我尝试 dcommit 时,每个文件都得到 "needs update"。

我如何才能 git svn dcommitgit add 我在本地存储库中所做的事情?我想做 git push 所做的事,并让我所有未版本化的 files/diffs 保持不变。

我知道这可能是玩忽职守之类的,但我的工作流程是这样的。

首先,我认为您需要 运行 git svn fetch 才能看到其他开发人员在您尝试推送的 svn 分支上做了什么。然后,为了能够进行实际工作来推动您的更改和内容,您将不得不停止您正在做的事情并清理工作树。为了做到这一点 运行 git stash save。然后你应该可以放心地四处走动了。现在,您应该在 svn 分支的更新提示之上进行 rebase,现在您应该能够 运行 git svn dcommit 推送到 svn。然后你可能会考虑把你藏起来的东西拿出来,这样你就可以继续工作了git stash pop.

编辑:

Since git 2.16 git stash save is deprecated in favour of git stash push. It differs from "stash push" in that it cannot take pathspecs, and any non-option arguments form the message.