Git 合并,忽略对某些文件的更改(我们的与他们的)
Git Merge, Ignoring Changes to Certain Files (Ours vs Theirs)
设置
一家公司正在为我们做一些工作,从 master
分叉出来,并且一直在针对专用于这项工作的功能分支打开拉取请求。我们(目前)没有转译器,当我要求公司从前端取出任何 ES6+ 符号时,他们也改变了后端的符号。这既没有必要,而且在很多情况下更难阅读。
问题
我想合并 PR,但仅将某些文件更改合并到我的 develop
分支。我如何忽略对某些文件的更改或仅恢复那些文件,从而产生一个我可以拉入我的 develop
分支的提交,最好是通过另一个 PR?
有什么想法吗?
我很紧张在提交树上上下移动,所以我更喜欢总是分支和合并。下面是远远超过需要完成的工作,但我喜欢回归路径,以防出现任何问题。 欢迎大家提出建议。
- 记下功能分支头的提交哈希,以备后用。
- 从功能分支创建一个 "clean" 分支。
- 将 PR 合并到功能分支中。
- 从上一次提交中检出要还原的文件
git checkout *commit* -- file/path/one.js file/path/two.js
- 提交阶段性更改
- 将 PR 创建回您的功能分支
更快的方法是:
- 记下功能分支头的提交哈希,以备后用。
- 将 PR 合并到功能分支中。
- 从上一次提交中检出要还原的文件
git checkout *commit* -- file/path/one.js file/path/two.js
- 提交阶段性更改
这两种策略都会创建一个新的提交,以将文件重写回 PR 之前的状态。
注意:查看@Frax 的回答以获得更清晰的命令行变体。
它可能并非在所有情况下都有效,但似乎在您的情况下应该有效:只需在合并前还原更改。
鉴于您的拉取请求是从分支 pull-request
到 develop
,那可能只是:
git checkout pull-request
# check out files from develop, they will be immediately staged
git checkout develop -- file/to/revert other_file/to/revert
git commit -m 'Reverted files that should be reverted'
git push origin pull-request
这应该添加拉取请求以不再包含有问题的文件,因此您可以简单地合并它。
设置
一家公司正在为我们做一些工作,从 master
分叉出来,并且一直在针对专用于这项工作的功能分支打开拉取请求。我们(目前)没有转译器,当我要求公司从前端取出任何 ES6+ 符号时,他们也改变了后端的符号。这既没有必要,而且在很多情况下更难阅读。
问题
我想合并 PR,但仅将某些文件更改合并到我的 develop
分支。我如何忽略对某些文件的更改或仅恢复那些文件,从而产生一个我可以拉入我的 develop
分支的提交,最好是通过另一个 PR?
有什么想法吗?
我很紧张在提交树上上下移动,所以我更喜欢总是分支和合并。下面是远远超过需要完成的工作,但我喜欢回归路径,以防出现任何问题。 欢迎大家提出建议。
- 记下功能分支头的提交哈希,以备后用。
- 从功能分支创建一个 "clean" 分支。
- 将 PR 合并到功能分支中。
- 从上一次提交中检出要还原的文件
git checkout *commit* -- file/path/one.js file/path/two.js
- 提交阶段性更改
- 将 PR 创建回您的功能分支
更快的方法是:
- 记下功能分支头的提交哈希,以备后用。
- 将 PR 合并到功能分支中。
- 从上一次提交中检出要还原的文件
git checkout *commit* -- file/path/one.js file/path/two.js
- 提交阶段性更改
这两种策略都会创建一个新的提交,以将文件重写回 PR 之前的状态。
注意:查看@Frax 的回答以获得更清晰的命令行变体。
它可能并非在所有情况下都有效,但似乎在您的情况下应该有效:只需在合并前还原更改。
鉴于您的拉取请求是从分支 pull-request
到 develop
,那可能只是:
git checkout pull-request
# check out files from develop, they will be immediately staged
git checkout develop -- file/to/revert other_file/to/revert
git commit -m 'Reverted files that should be reverted'
git push origin pull-request
这应该添加拉取请求以不再包含有问题的文件,因此您可以简单地合并它。