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

在Git中保存远程分支中的更改

git
  •  2
  • dimatura  · 技术社区  · 15 年前

    我正在为我的个人项目使用git,在assembly.com上有一个远程存储库。我已经习惯了一个简单的类似SVN的工作流,但是现在我正在尝试做一些(我认为)相对简单的事情,但是到目前为止Git文档还没有帮助我实现它。

    情况就是这样。我在本地的主分支中做了很多更改,并提交了它们。现在我意识到,我的更改不是绝对必要的,而且对性能不利,但将来可能有用/必要。所以我想恢复以前的状态,同时将这些更改存储在某个地方。当然,Git重置——很难,因为它会永久删除我的更改。

    我不确定这是否是正确的解决方案,但是我正在考虑用这些更改创建一个分支,但是我不能很好地确定要这样做的命令序列。请注意,我想在远程存储库中跟踪这些更改,而不仅仅是本地存储库,因为我在不同的计算机上工作。

    无论是否涉及到远程分支,我都会感谢您对如何实现这一点的任何想法。

    3 回复  |  直到 15 年前
        1
  •  3
  •   Cascabel    15 年前

    要在当前头部创建分支:

    git branch possibly-useful-stuff
    

    然后将主分支重置回它所属的位置,可能是以下其中之一:

    git reset --hard origin/master  # the remote branch
    git reset --hard master~<n>     # n commits before master
    git reset --hard <hash>         # a specific commit
    

    要在远程中跟踪它们,只需将此分支推送到远程:

    git push <remote> possibly-useful-stuff
    
        2
  •  1
  •   CB Bailey    15 年前

    最简单的方法是创建一个包含当前状态的新分支。然后您可以将其推送到远程主机,并将主分支重置回远程主机的位置。

    例如。

    git branch side-lined
    
    git push origin side-lined
    
    git reset --hard origin/master
    
        3
  •  0
  •   Frank V    15 年前

    我现在不是特别的Git,但我使用的是Mercurial。如果我和mercurial一起遇到这种情况,我会把它标记为一个分支(以某种方式),然后检查所需的修订。

    在我的下一个任务中,Mercurial将创建一个新的 修订。我知道这是一般性的,但我有这个想法,所以我分享了它。

    Git和Mercurial是相似的,所以我认为这些想法应该对你有用…(请注意,存在术语差异,我可能没有使用正确的术语)

    注释 :似乎其他人已经发布了特定于git的指示,做了我所描述的事情。