似乎无论是Mercurial还是Git,在我没有先提交的情况下,我就无法推送?
所以如果我没有提交(尚未准备好),我就不能将代码推送到远程服务器上备份吗?这段代码在笔记本电脑中,需要随身携带,有点易碎。
您总是随时准备着提交。
经常进行提交,可以将其提交到正在进行的分支并尽可能广泛地分发。
当您达到当前所谓的“准备提交”的状态时,请检查您的分支与上游的差异,并执行rebase -i
以清理它并使其看起来符合您的要求。
这比试图在提交之前非常努力地使一切都完美要更容易、更安全,并且通常会给您带来更好的结果。请记住:提交不一定代表宇宙中所需的永久状态,它只是您所在的某个位置。如何发布它取决于您。
Git使得发布一个名为do-not-look-at-me
的正在进行工作的分支非常容易,您可以在任何时间点以任何形式将其移动到您认为最适合您的正式代码库中。
只需创建一个新的临时分支。
将未完成的更改提交到该分支,并将该分支推送。
当您的更改准备好时,请使用rebase
合并您未完成的提交,然后将结果合并到您的master
中并删除该临时分支。(您可以使用git push origin :branch
从远程存储库中删除分支 - 注意分支名称前面的冒号。)
永远没有理由不提交您的更改,尽管在它们尚未准备好时可能有不提交到特定分支的原因。
没错。Push的目的是与其他存储库共享一个或多个提交。它们都不是主要用作备份(尽管有些人会将它们用作备份)。
有很多专业的备份工具和在线服务。请参见个人使用的在线备份列表。
.hgrc
文件中。[extensions]
mq =
$ hg qnew stash
$ hg qpop
$ hg push
$ hg qpush
$ hg qrefresh -m"Commit message goes here."
$ hg qfinish stash
没错,你不能推送未提交的更改。但是,仅仅因为你的更改还没有准备好,这并不意味着你不能提交它们。我对Mercurial没有经验,但是在Git中,你可以修改已提交的提交记录(git commit --amend
)来进行修改。你也可以进行一系列的提交,然后进行交互式变基以将它们合并为一个单独的提交记录。或者你可以根据需要进行提交,并不担心确保你的历史记录完全干净。
my-wip
的分支,并且有人认为他们应该围绕此构建产品,则他们应该感到困惑。 - Dustin
git push --uncommitted ssh://somewhat/peter/tmp
这样的方式。 - nonopolarity