我怎样才能将我的无法改变的变化拉上并合并起来?
在处理一些未提交的文件时,我需要提取新的代码。 有冲突,所以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
系列的任何命令( fetch
, pull
fetch
...)进行的提交。
Git提供了有关其功能的优秀文档。 对于这种情况,你需要stach,你可以查看几个例子:https://git-scm.com/book/en/v1/Git-Tools-Stashing
链接地址: http://www.djcxy.com/p/45115.html