在git中,基于对question的回答,我使用.git / info / exclude忽略了本地文件。但是现在我无法从远程拉出,这是我得到的错误:
git pull
error: Your local changes to the following files would be overwritten by
merge: ignoredFile
Please commit your changes or stash them before you merge.
所以我尝试提交此文件:
git commit -am "Message"
On branch master
Your branch is behind 'origin/master' by 4 commits, and can be fast-
forwarded.
(use "git pull" to update your local branch)
nothing to commit, working tree clean
所以问题就像标题中一样,如何在不忽略本地特定文件的情况下保持存储库更新(git pull)。
编辑: 我赞扬:
git update-index --assume-unchanged ignoredFile
在进行git pull之前。
EDIT2:
git pull --rebase
error: Your local changes to the following files would be overwritten by merge:
ignoredFile
Please commit your changes or stash them before you merge.
Aborting
Updating 0f37f00b..5ccc1b0a
First, rewinding head to replay your work on top of it...
error: Your local changes to the following files would be overwritten by checkout:
ignoredFile
Please commit your changes or stash them before you switch branches.
Aborting could not detach HEAD
答案 0 :(得分:0)
可能您正在寻找:
$ git pull --rebase
这将更新您的分支,并在不创建新分支的情况下继续进行更改,但不会忽略本地文件,因此,如果需要,您可以推送它们或从中创建分支。
答案 1 :(得分:0)
这将是很难的,即使不是不可能的(没有一些主要的黑客手段)。在git
中,类似merge
等的操作(基本上,git add
以外的几乎所有内容)都是通过设计在整个树上工作的;尽管有一些或多或少的奥秘方法可以改变这一点,但这肯定不是最日常的事情。
如果我建议另一个方向:您提到您使用它来修复一些本地的/特定于您的Maven设置。不用在git上乱动,而是找到一种在Maven配置中包含本地位的正式方法。例如,Maven为build profiles,它应该能够解决您的问题。它还支持(取消引用)环境变量,这可能会为您提供更多选择。