gpt4 book ai didi

eclipse - git mv 和 Eclipse 中的重构

转载 作者:太空狗 更新时间:2023-10-29 13:44:14 26 4
gpt4 key购买 nike

如何解决这种“先有鸡还是先有蛋”的情况?

我决定在 Eclipse 中重命名一个 Java 类(例如,从 one.javatwo.java)。 Eclipse 重构让我可以毫不费力地做到这一点。

然后,我去 git 并输入:

git mv myproj/src/com/ate/lib/one.java myproj/src/com/ate/lib/two.java

并收到错误:

fatal: bad source, source=myproj/src/com/ate/lib/one.java, destination=myproj/src/com/ate/lib/two.java

我理解为什么会这样,但是如果我在 重构之前执行 git mv,Eclipse 将不会这样...

解决这个问题的好方法是什么?

最佳答案

git mv 只是一种方便的方法。 git does not "track" renames (也就是说,它可以检测到它们,但它们不会被记录为像添加或删除这样的操作)。暂存并提交重构:

git rm myproj/src/com/ate/lib/one.java
git add myproj/src/com/ate/lib/two.java
git commit

git rm 告诉 git 暂存删除索引中的文件。尽管您已经在工作目录中“删除”了该文件(通过移动它),但是您还没有告诉 git 您想要对此次删除进行版本控制。 rmgit rm 之间的区别在于,第一个在工作目录上工作,第二个也在索引上工作(更改由 git 进行版本控制)。

git add 只是在新位置添加文件内容。

编辑:

我以前有 git rm --cached,出于个人习惯,但显然 git rm 如果文件不存在于工作目录中,则不会提示。 git rm --cached 在您想要在版本控制中删除文件但将文件保留在工作目录中时仍然有用。

关于eclipse - git mv 和 Eclipse 中的重构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7163889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com