如何在本地忽略文件的同时从远程拉出?

时间:2018-07-11 10:26:25

标签: git

在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

2 个答案:

答案 0 :(得分:0)

可能您正在寻找:

$ git pull --rebase 

这将更新您的分支,并在不创建新分支的情况下继续进行更改,但不会忽略本地文件,因此,如果需要,您可以推送它们或从中创建分支。

答案 1 :(得分:0)

这将是很难的,即使不是不可能的(没有一些主要的黑客手段)。在git中,类似merge等的操作(基本上,git add以外的几乎所有内容)都是通过设计在整个树上工作的;尽管有一些或多或少的奥秘方法可以改变这一点,但这肯定不是最日常的事情。

如果我建议另一个方向:您提到您使用它来修复一些本地的/特定于您的Maven设置。不用在git上乱动,而是找到一种在Maven配置中包含本地位的正式方法。例如,Maven为build profiles,它应该能够解决您的问题。它还支持(取消引用)环境变量,这可能会为您提供更多选择。