【问题标题】:Local uncommited changes in master. Need to switch to another branchmaster 中的本地未提交更改。需要切换到另一个分支
【发布时间】:2018-08-11 11:11:07
【问题描述】:

我是 WebDev 实习生,我在 master 分支做了一些工作。 而且我已经完成了一周的工作,却没有意识到我在 master 分支中。 我需要切换分支,以便我可以从非主分支的分支提交本地更改。 我需要做什么:

  • 将所有本地更改从我的主分支转移到其他分支。
  • 从该分支提交更改。
  • 给你一个正确的答案验证。 :P

我浏览了一些答案,但我认为它们不适合我的确切情况。 提前致谢。 :)

【问题讨论】:

  • 只需根据 master 上的最新提交创建一个新分支。只要它们在同一个提交上,您的更改就会随身携带。如果它们不在同一个提交上,则会给出错误消息。

标签: git git-branch git-commit master


【解决方案1】:

对您来说最简单的事情是存储您的工作目录(如果您已暂存任何文件,还可能暂存),创建一个新功能分支,然后将您的存储应用到那里。

# from the master branch
git stash                      # stash your work
git checkout -b your_feature   # create and switch to a feature branch
git stash apply                # then apply your work to that branch

然后,您可以将您的工作提交到your_feature 分支:

git add .
git commit -m 'Finished my work'

git stash 命令的工作原理是进行两次(有时是三次)提交,其中包含您的工作目录和阶段的内容。然后它会将master 回滚到您第一次开始的位置。

【讨论】:

    【解决方案2】:

    如果您已经在本地对 master 应用了一些提交。在这种情况下我会做的解决方案是:

    1) 首先创建一个新的分支,作为 master 的副本。

    git checkout -b new_branch master
    

    2) 现在将 new_branch 推送到远程(如果需要)

    git push --set-upstream origin new_branch
    

    3) 现在去找主人

    git checkout master
    

    4) 现在转到日志,查看要从 master 中删除的提交数。

    git log
    

    让 'N' 是你已经完成的提交次数。因此,要从 master 中删除这些提交,请使用:

    git reset --hard HEAD~N
    

    例如,您要删除最近的 5 次提交。因此,它将是:

    git reset --hard HEAD~5
    

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2013-08-07
      • 2020-10-23
      • 2019-05-06
      • 1970-01-01
      • 2010-10-08
      • 2020-06-03
      • 1970-01-01
      • 2016-09-15
      相关资源
      最近更新 更多