如何使用Eclipse上的功能将文件从一个分支复制到另一个分支

时间:2015-11-27 07:02:07

标签: eclipse git egit

通常,我只是在当前分支中复制该文件的全部内容,然后切换到Eclipse上的另一个分支并将其粘贴到新分支中,但我只是在询问是否有办法在签出时执行此操作来自Eclipse?

所以,我有一个名为Mock分支的分支,它有一个名为a.java的文件,我修改了该文件。现在,我切换到另一个分支,该分支也a.java但与Mock分支的分支不同,因为我已对a.java分支中的Mock进行了更改。

现在,如何在另一个分支上推送提交,显示其中a.javaMock分支之间的差异,并将Mock分支中的更改应用于分支我现在在吗? 这在Eclipse中是否可行?

2 个答案:

答案 0 :(得分:1)

首先我们会考虑你推动了另一个分支的变化(所以他们是HEAD)你已经切换到Mock分支(当然,我不考虑分支之间的合并,因为你没有说话关于它 )。从这一点开始,让我描述两种可能的选择:

  • 你可以选择樱桃。 Cherry pick是一个从另一个分支(甚至相同的分支)获取提交并将其应用于已签出的分支的过程。例如,如果您修改分支A的文件并提交它,您可以切换到分支B并执行从A到B的应用此提交。当然,请记住,cherry pick适用于提交中添加的所有更改因此,如果您修改a.java和b.java,则两个修改后的文件都将作为cherry pick的结果应用。您可以从此处获取示例:https://wiki.eclipse.org/EGit/User_Guide#Cherry_Picking
  • 我最喜欢也最简单。右键单击a.java并选择与/ Branch,tag或reference 比较,以获得一个视图,将其他分支的a.java版本与您当前的Mock分支进行比较并使用Eclipse编辑器应用更改(您还可以使用与/提交比较,以防您要应用的更改不在另一个分支的HEAD上)。您可以使用箭头将更改从右(远程分支)传递到左(当前分支),甚至可以手动复制粘贴

enter image description here enter image description here

答案 1 :(得分:0)

如果您要替换该文件的完整内容,请尝试右键单击该文件,and select

Replace with -> Commit...

然后从另一个分支中选择提交 如果要将其替换为另一个分支的最新版本,可以选择

Replace with -> Branch, Tag or Reference

replace branch

(这里我选择master,因为我当前的分支不是master,我想用master中的同一文件的内容替换文件的内容。)< / p>