我想升级,但是我需要提交,但是当我执行git commit时,我得到了这个Your branch is behind 'origin/develop' by 20 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
我不想丢失本地更改
答案 0 :(得分:0)
将它们存放在本地。然后从您的主要(开发)分支中拉出。 以后,您可以合并已隐藏的更改中的更改。 在intellij上,您可以使用以下方式存储更改
VCS>Git>Stash Changes
要取消存储本地更改并将其与本地代码合并,
VCS>Git>UnStash Changes
答案 1 :(得分:0)
在项目目录中使用这些终端命令。
使用git stash
存储本地更改。在本地中的最后一次提交之后,这会将您的本地更改保存到堆栈中。
如果要从除master以外的分支中拉出,请使用git pull
或git pull <remote-name> <branch-name>
从远程进行更改。这会将提交从远程分支拉到您没有的本地。
使用git stash pop
从存储中弹出更改。这将套用未提交的更改。这可能会导致代码中的合并冲突。
您可以在解决冲突后提交更改。
您还可以存储更改而不进行存储,但这也可能导致合并冲突,您必须解决。
答案 2 :(得分:0)
请在合并之前提交您的更改或将其隐藏
在Git 2.27(2020年第二季度)上您将不再看到该消息,因为“ git merge
”了解了“ --autostash
”选项和merge.autoStash
的新设置。
请参见commit d9f15d3,commit f8a1785,commit a03b555,commit 804fe31,commit 12b6e13,commit 0dd562e,commit 0816f1d,{{3} },commit 9bb3dea,commit 4d4bc15,commit b309a97,commit f213f06,commit 86ed00a,commit facca7f,commit be1bb60,commit efcf6cf, commit c20de8b,commit bfa50c2,commit 3442c3d(2020年4月7日),commit 5b2f6d9(2020年4月4日)和commit 65c425a,commit fd6852c(2020年3月21日) )由commit 805d9ea。
(由Denton Liu (Denton-L
)在Junio C Hamano -- gitster
--中合并,2020年4月29日)
commit bf10200:教导
--autostash
选项帮助:菲利普·伍德
建议:阿尔本·格鲁因
签名人:刘登顿在重新设置基准之前,可以通过
--autostash
选项使工作树自动隐藏,然后再继续进行重新基准设置。但是,合并中缺少此选项。在合并中执行
--autostash
选项和相应的merge.autoStash
选项,该选项在合并之前隐藏,然后在弹出之后弹出。当开发人员在主题分支上进行了一些本地更改但他们意识到自己的工作依赖于另一个分支时,此选项很有用。以前,他们必须运行类似
git fetch ... git stash push git merge FETCH_HEAD git stash pop
但是现在,减少到了
git fetch ... git merge --autostash FETCH_HEAD
生成自动存储时,仅在以下三种明显情况下才会将其自动重新应用于工作树:
- 使用
git commit
提交不完全合并。- 合并成功完成。
- 使用
git merge --abort
中止合并。在使用
remove_merge_branch_state()
删除合并状态的所有其他情况下,例如通过git reset --hard
中止合并,自动存储将保存到存储刷新日志中,而不是保持工作树的清洁。
并且:
merge
:传递--autostash进行合并签名人:刘登顿
之前,
--autostash
仅与git pull --rebase
一起使用。但是,在最后一个补丁中,还合并了已学习的--autostash
,因此没有理由再限制此限制了。教导拉动以传递--autostash
进行合并,就像重新设置基准一样。
所以在您的情况下:
git config --global merge.autostash true
git pull
您将不会丢失本地更改!