我收到这条消息:
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
是的,我有未提交的更改。我搜索了一种方法,将我未提交的更改重新设置在我从拉取中获得的新代码之上。
我发现了这个:https ://github.com/aanand/git-up
我想知道这是否仍然是要走的路,或者是否有更现代的路要走。
我使用 git 版本 1.8.1
我收到这条消息:
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
是的,我有未提交的更改。我搜索了一种方法,将我未提交的更改重新设置在我从拉取中获得的新代码之上。
我发现了这个:https ://github.com/aanand/git-up
我想知道这是否仍然是要走的路,或者是否有更现代的路要走。
我使用 git 版本 1.8.1
git-up可能是解决这个问题的更复杂的方法。
否则,您需要 stash、rebase 和 stash pop。
“更现代的方式”将在 git 1.8.5(或 1.9,2013 年第四季度)中提供。
正如我在“ Git - 如何使用当前索引(当前状态)的一些未暂存的更改来编辑旧的(不是以前的)提交? ”中提到的:
"
git rebase
"学到了 "--[no-]autostash
"保存本地更改而不是拒绝运行的选项(人们的正常反应是存储它们并重新运行)。
自 Git 2.9(2016 年 6 月)以来,您现在拥有(由artofwarfare评论):
git pull --rebase --autostash
因为 git 还不知道它们,所以你不能真正“rebase”你未提交的更改。您应该在运行之前存储本地更改,git pull --rebase
然后再应用它们。
您可以使用 git-up 的 Python 端口:https ://github.com/msiemens/PyGitUp
pip install git-up
我回答得有点晚,但也许这对某人有用。
如果你只是在寻找一个单行代码来执行stash / pull rebase / stash pop
,你可以创建一个别名。
git config --global alias.spr '!f(){ git stash && git pull --rebase && git stash pop; };f'
这将创建一个名为的别名,该别名spr
执行这三个操作,并允许您pull --rebase
在进行未暂存的更改时快速进行。
git spr