我怎样才能将我的无法改变的变化拉上并合并起来?

在处理一些未提交的文件时,我需要提取新的代码。 有冲突,所以git拒绝拉:

error: Your local changes to the following files would be overwritten by merge:
        ...
Please, commit your changes or stash them before you can merge.

问题1:我如何才能将我的无法改变的变化拉上并合并? 我需要继续工作,我还没准备好提交,但我需要外部代码?

问题2:我最后做了一个stash然后pull 。 我现在如何将我的更改合并到新的拉? 我如何应用我的藏匿而不会破坏拉的新变化?


使用stash ,然后pull ,最后stash pop

git stash
git pull
git stash pop

在深入合并之前,我需要注意的是,有两个类似的解决方案来完成“从远程获取最新更改”的任务。 有关更多信息,请参阅git pull VS git fetch git rebase。 我更喜欢rebase,因为它不会产生多余的合并提交。

不要害怕做出承诺。 你可以很容易地做任何你喜欢的事情(使用git commit --amend修改它,放弃它,并将所有更改放入工作树中,使用git reset HEAD~1 HEAD〜1),直到你将它推到任何地方。

答案1

git add .                           # stage all changes for commit
git commit -m 'Tmp'                 # make temporary commit
git fetch $RemoteName               # fetch new changes from remote
git rebase $RemoteName/$BranchName  # rebase my current working branch
    # (with temporary commit) on top of fethed changes
git reset HEAD~1                    # discard last commit
    # and pop all changes from it into worktree

答案2

git stash pop    # this retrieves your changes
    # from last stash and put them as changes in worktree

该命令不会影响您使用来自fetch系列的任何命令( fetchpull fetch ...)进行的提交。


Git提供了有关其功能的优秀文档。 对于这种情况,你需要stach,你可以查看几个例子:https://git-scm.com/book/en/v1/Git-Tools-Stashing

链接地址: http://www.djcxy.com/p/45115.html

上一篇: How can I pull and merge with my uncommited changes?

下一篇: Advantages of git fetch; git rebase origin master