我收到此消息:
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
是的,我有未提交的更改。我搜索了一种方法,在新代码的基础上修改我未提交的更改,我将从拉动中获得。
我发现了这个:https://github.com/aanand/git-up
我想知道这是否还有发展方向,或者是否还有更多现代化的方法。
我使用git版本1.8.1
答案 0 :(得分:9)
git-up可能是解决此问题的更复杂方法 否则,你需要存储,重新绑定和存储pop。
git 1.8.5(或1.9,Q4 2013)中将提供“更现代化的方式” 正如我在“Git - How to edit old (not previous) commit with some of the unstaged changes from current index (current state)?”中提到的那样:
“
git rebase
”学习了“--[no-]autostash
”选项来保存本地更改,而不是拒绝运行(人们正常的响应是将其存储并重新运行)
Since Git 2.9 (June 2016),您现在(由artofwarfare评论):
git pull --rebase --autostash
答案 1 :(得分:5)
你不能真正“改变”你未提交的更改,因为git还不知道它们。您应该在运行git pull --rebase
之前存储本地更改,然后再将其应用。
答案 2 :(得分:4)
您可以使用git-up的Python端口:https://github.com/msiemens/PyGitUp
pip install git-up
答案 3 :(得分:3)
我的回答有点晚,但也许对某人有用。
如果您只想寻找单行代码来执行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