Git Merge,忽略对某些文件的更改(我们与他们的文件)

时间:2018-05-24 20:14:14

标签: git branching-and-merging

设置

一家公司正在为我们做一些工作,从idf@idf-vb:~/Documents/confluent$ ls /usr/share/java/confluent-common build-tools-4.1.1.jar common-metrics-4.1.1.jar jline-0.9.94.jar netty-3.10.5.Final.jar zkclient-0.10.jar common-config-4.1.1.jar common-utils-4.1.1.jar log4j-1.2.17.jar slf4j-api-1.7.25.jar zookeeper-3.4.10.jar idf@idf:~/Documents/confluent$ 开始,并且一直在针对专门用于这项工作的功能分支打开拉取请求。我们(目前)没有转发器,当我要求公司从前端取出任何ES6 +符号时,它们也改变了后端的符号。这是不必要的,在许多情况下,更难以阅读。

问题

我想合并PR,但只将某些文件更改合并到我的master分支中。如何忽略对某些文件的更改或仅还原那些文件,从而导致提交我可以进入develop分支,最好通过另一个PR?

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我对提交树进行上下调整感到紧张,所以我的首选是始终进行分支和合并。以下远远超过需要完成,但我喜欢回归路径,如果出现任何问题。 所以请随意提供建议。

  1. 记下功能分支的头部提交哈希值,供以后使用。
  2. 创建"清洁"分支功能分支。
  3. 将PR合并到功能分支中。
  4. 从上一次提交中签出要还原的文件
    • git checkout *commit* -- file/path/one.js file/path/two.js
  5. 提交您的分阶段更改
  6. 将PR重新设置回功能分支
  7. 更快的方法是:

    1. 记下功能分支的头部提交哈希值,供以后使用。
    2. 将PR合并到功能分支中。
    3. 从上一次提交中签出要还原的文件
      • git checkout *commit* -- file/path/one.js file/path/two.js
    4. 提交您的分阶段更改
    5. 这两种策略都会创建一个新的提交,将文件重新写回PR之前。

      注意:请查看@ Frax的答案,了解更清晰的命令行变体。

答案 1 :(得分:0)

它可能无法在所有情况下都有效,但似乎它应该适用于您的:只需在合并之前还原更改

鉴于您的拉取请求是从分支pull-requestdevelop,这可能只是:

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

这应该将拉取请求添加到不再包含违规文件,因此您可以简单地合并它。