将特定文件合并/复制到Branch中的master

时间:2015-07-16 11:00:28

标签: git bitbucket

我运行以下命令来查找分支中但不在master中的更改的文件名:

git diff --name-status master..branchName

它提供了一个完整路径的文件名列表。

现在我已经在本地计算机上克隆了master,并希望将这些已更改的文件复制到master中。我说copy因为我不想合并并遇到冲突。

有没有办法获得某种在相关文件夹中包含文件的补丁?而不是手动复制它们?

2 个答案:

答案 0 :(得分:2)

您只需将git diff命令的输出重定向到文件即可。

$ git diff master..branchName -- the/relevant/path1 the/relevant/path2 ... > my.patch

然后使用git apply my.patch一次性应用所有更改。

另一种选择是签出你想要的文件/目录:

$ git checkout master
$ git chechout branchName -- the/relevant/path1 the/relevant/path2 ...

答案 1 :(得分:0)

您想要的是让分支的工作目录和索引以及指向主提交的存储库。

这样做的方法是使用git-reset

git checkout yourBranch
git branch tempBranch   // It is allways safer create a temporal branch when you play with git-reset
git reset --soft master // This moves to master commit but does not touch your working directory and index area.