我运行以下命令来查找分支中但不在master中的更改的文件名:
git diff --name-status master..branchName
它提供了一个完整路径的文件名列表。
现在我已经在本地计算机上克隆了master
,并希望将这些已更改的文件复制到master中。我说copy
因为我不想合并并遇到冲突。
有没有办法获得某种在相关文件夹中包含文件的补丁?而不是手动复制它们?
答案 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.