Java git更新索引后合并的问题——假设未更改

Java git更新索引后合并的问题——假设未更改,java,git,maven,version-control,ignore,Java,Git,Maven,Version Control,Ignore,我的同事问我,在他提交了一个文件后,他是否可以重新获得它,例如一个pom.xml文件,在maven项目中常用 我发现git更新索引——假设unchanged在这种情况下很有用。但是当我尝试从另一个分支合并时,git仍然在跟踪被忽略的文件,并且发生了冲突 我该怎么做才能避免这种情况?我应该在所有的分支中使用这个命令(git update index assessed unchanged)吗?正如我所评论的---assessed unchanged 最好的方法是使用gitrm--cached 您可能

我的同事问我,在他提交了一个文件后,他是否可以重新获得它,例如一个pom.xml文件,在maven项目中常用

我发现git更新索引——假设unchanged在这种情况下很有用。但是当我尝试从另一个分支合并时,git仍然在跟踪被忽略的文件,并且发生了冲突

我该怎么做才能避免这种情况?我应该在所有的分支中使用这个命令(git update index assessed unchanged)吗?

正如我所评论的-
--assessed unchanged

最好的方法是使用
gitrm--cached

您可能希望做的另一件有用的事情是将文件保留在工作树中,但将其从暂存区域中删除。换句话说,您可能希望将文件保留在硬盘上,但不再让Git跟踪它。如果您忘记向.gitignore文件中添加某些内容,并意外地将其暂存,例如一个大日志文件或一堆.a编译文件,则此功能尤其有用。为此,请使用
--cached
选项

然后需要将现在未跟踪的文件添加到
.gitignore
文件中

对于分支-您必须管理跟踪此文件的分支的合并,以确保它不会再次进入存储库。最简单的方法是在合并之前对每个分支进行更改

我发现了git更新索引——假设没有更改

这告诉git不要将工作目录中的文件与当前存储库状态进行比较

另一方面,合并发生在存储库中的多个提交之间。因此,如果您与其他人的合并对同一文件进行了更改,则仍然存在冲突


您需要该特性的示例是mavens项目配置文件

我觉得,尤其是这个文件不应该被忽略或从scm中排除。那你为什么需要这个


我猜您已经在pom中定义了指向本地资源的属性。如果是这样:在
“user.home”/.m2
中移动属性
settings.xml
。这就是它们所属的地方。

命令
git update index——假设未更改的文件名不能在两个分支中使用,这是一种暂时忽略文件的方法。当您修改文件,然后想要切换或合并到其他分支时,git将为您显示错误消息,因为您有未提交的更改,这意味着您应该在切换或合并分支之前使用
git更新索引--no-assessed unchanged filename

对于您的情况,您可以参考以下两种方式:

  • 该文件不再需要进行版本控制。因此,您可以在
    .gitignore
    中添加该文件,并使用
    git rm--cached filename
    取消跟踪它
  • 需要对文件进行版本控制。合并分支时,可以使用
    git merge branchname-X ours/theres
    使文件无效
  • ——假设unchanged
    可能不是这项工作的最佳工具-