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