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

有没有办法保存我当前的更改而不提交或存放在Git中?

git
  •  2
  • Hesam  · 技术社区  · 6 年前

    我改变了很多文件,我意识到我的方法不好。所以,我想尝试另一种方法。在这种情况下,我知道两种解决方案:

    1. 史塔什:我不想用这个,因为我错过了几个文件,我必须重新写一次。

    我想要的是以某种方式保存当前更改(而不丢失当前更改),然后在保留其余更改的同时放弃一些不需要的更改。在这种情况下,如果我意识到我的第二种方法也不起作用,那么我只需要切换到前一种状态。

    3 回复  |  直到 6 年前
        1
  •  0
  •   K. A. Buhr    6 年前

    我认为@Signey_Gijzen的答案可能是最好的,但是你可以用 git stash apply 也是。也就是说,您需要:

    $ git stash             # as usual, stashes the changes
    ... now your changes are gone from the working tree ...
    $ git stash apply       # unstashes, but keeps stash around
    ... now they're all back ...
    $ git stash list        # the stash will still be there
    stash@{0}: WIP on master: ...
    $ git show stash@{0}    # what did that stash look like again?
    
        2
  •  4
  •   Sidney Gijzen    6 年前

    签出一个新分支,添加文件并在那里提交更改。然后改回原来的分支。

    我也会用同样的方法来尝试你的第二种方法。

        3
  •  0
  •   Todd A. Jacobs    6 年前

    Git用法 提交时

    不,Git除了提交或向索引添加内容之外,无法保存工作。 甚至 command是commit的一个特例,它利用了这些基本过程。

    然而,在Git内部和外部,您肯定可以做一些事情。一些例子包括(没有特定的顺序):

    1. git commit --patch 选择要添加到索引中的差异块。
    2. mkdir /tmp/broken_wip
      cp * /tmp/broken_wip
      git reset --hard
      cp /tmp/broken_wip/somefile .
      
    3. 创建一个临时分支来存储“脏”提交,然后改回主分支。然后你可以从你的临时部门带来任何你喜欢的东西。例如,假设您当前正在 主人

      git checkout -b broken_branch
      git add .
      git commit -am 'broken WIP'
      git checkout master
      
    4. 使用RCS存储当前状态,同时确保不提交 雷达散射截面 *,v 文件夹。

    即使你不想 出版 您的历史,通常最好将问题代码提交给临时主题分支,修复或导入事物,然后处理主题分支。但是,如果您真的需要避免将内容提交到历史记录或索引,那么您可能应该利用辅助修订控制系统或使用您的文件系统。

    你的里程可能不同。