代码之家  ›  专栏  ›  技术社区  ›  nonopolarity

在Mercurial或Git中无需提交就进行推送

  •  9
  • nonopolarity  · 技术社区  · 14 年前

    所以,如果我不提交(在还没有准备好的时候),我就不能推到一个远程服务器来备份我的代码?代码放在笔记本电脑里,随身携带,随身携带可能会有些易碎。

    5 回复  |  直到 14 年前
        1
  •  17
  •   Dustin    14 年前

    你是 总是 准备好了。

    经常承诺。致力于一个进行中的分支,并尽可能广泛地分发它。

    当您到达当前所指的“准备提交”状态时,检查分支与上游的差异,执行 rebase -i 把它清理干净,让它看起来像你想要的那样。

    这将是更容易,更安全,只是通常会给你更好的结果,而不是真正努力让一切都完美之前承诺。记住:一个承诺并不一定代表一个理想的宇宙永久状态。就在你的某处。如何出版取决于你自己。

    非常 do-not-look-at-me 分支为您正在进行的工作,您可以稍后进入您的官方代码库在任何点和任何形式,您认为最适合您。

        2
  •  7
  •   Eric O. Lebigot    14 年前

    做一个新的扔掉的树枝。

    将未完成的更改提交到该分支,并推动该分支。

    rebase ),并将结果合并到 master 并删除丢弃的分支。(您可以使用 git push origin : branch 注意分支名称前的冒号。)

    从来没有理由不提交更改,尽管可能有理由不提交 到一个特定的分支

        3
  •  3
  •   Community Ian Goodfellow    7 年前

    没错。push的目的是与其他回购协议共享一个或多个提交。两者都不是主要的备份(尽管有些人使用它们)。

    有很多专用的备份工具和在线服务。见 Online backup for personal use

        4
  •  2
  •   mkarasek    14 年前

    这是正确的;您不能推送未提交的更改。然而,仅仅因为您的更改还没有准备好并不意味着您不能提交它们。我没有使用Mercurial的经验,但是使用Git,您可以修改提交( git commit --amend )在提交后对其进行修改。您还可以进行一系列提交,然后执行交互式rebase以将它们组合到单个提交中。或者你可以在必要的时候做出承诺,而不必担心你的历史是否完整。

        5
  •  2
  •   james woodyatt    14 年前

    1. 在您的工作目录中有一些未提交的编辑,您还不想提交,
    2. 在本地存储库中有一些未经push的更改,

    ……但是你讨厌的老板拍了拍你的背说:“嘿!你打算什么时候推动你在员工大会上提到的改革?我们都在等着呢!”他就站在那儿等着你做,那你怎么把他从你的头发里弄出来呢?

    这很容易。你想使用 MQ extension . 它与标准Mercurial安装捆绑在一起。

    首先将其添加到 .hgrc 文件。

    [extensions]
    mq =
    

    $ hg qnew stash
    $ hg qpop
    

    现在把你以前的承诺推到一边,这样你的老板就不会再管你了。

    $ hg push
    

    最后,恢复工作目录,如下所示:

    $ hg qpush
    

    $ hg qrefresh -m"Commit message goes here."
    $ hg qfinish stash
    

    这是最基本的,但如果你真的想变得更花哨,你还可以做很多事情。MQ扩展就像隐藏在Mercurial存储库下的一个全新的修订控制世界。这就像Git StHuy,但更灵活,更不让人困惑。

    学习,变异,进化!

    推荐文章