Git pull in IntelliJ without modifying change list

brqmpdu1  于 2023-09-29  发布在  Git
关注(0)|答案(2)|浏览(87)

我在IntelliJ中有多个git changelists,现在我需要通过从远程执行git pull来更新我的本地代码。但是,我在执行git pull时收到一个错误,提示“Commit/Stash before pull”。我可以先隐藏本地代码,然后再pull,但是每当我隐藏代码时,我的更改列表就会合并。现在我需要找到一种方法来解决这个问题。我如何在IntelliJ中做到这一点?

队友把他们的代码推到远程,现在我需要在我的本地设置的代码。
我不能提交我的,因为它没有完全发展,我也不能藏,更改列表将被合并。
有没有一种方法可以在不提交或隐藏的情况下进行拉取?或者寻找更好的解决方案。

2skhul33

2skhul331#

此外,您可以开始使用Shelves而不是Stashing。
参见:https://www.jetbrains.com/help/idea/shelving-and-unshelving-changes.html
您的更改将保存为补丁程序,并保留更新日志。

oxf4rvwz

oxf4rvwz2#

我不能承诺我的,因为它没有完全发展
是的,你可以而且应该!
你应该stop using git stash,而不是像普通的提交一样签入更改--尽管将它们标记为temporary commits
左心室,右心室
git commit -am "==== temp ===="替换git stash push,用git reset HEAD^ # On the same branch as you did the temp commit above!替换git stash pop
因此,假设您正在处理的分支名为my_feature_branch,并且您当前正在进行一些更改:

git switch my_feature_branch
git status
git add $...WHATEVER_FILES_ARE_MODIFIED...
git commit -m "==== before pull of teammate's changes ===="
git fetch origin
gitk --all &     # Optional, but lets you inspect what the difference between your
                 # my_feature_branch branch and the new changes from
                 # origin/my_feature_branch.
git rebase origin/my_feature_branch my_feature_branch
# If any conflicts, use https://github.com/hlovdal/git-resolve-conflict-using-kdiff3
git reset HEAD^ # Undo the earlier temporary commit, bringing you back to where you were,
                # but now on top of the newly fetched changes from your teammate.

临时签入东西然后稍后更改/删除不仅是可以的,如果你不这样做,你就没有正确地使用git。git的初学者有时候会害怕签入东西,但这是错误的心态- * 你应该害怕不签入更改 *。
(And可能比你现在更频繁,you should never be more than 2 minutes away from checking in and going home)。

相关问题