Github - Pull Request,忽略一些文件更改

时间:2015-02-24 18:10:07

标签: git github pull-request

当我在GitHub上执行Pull请求时(针对master分支),我们可以忽略一些文件更改,例如

  • 我们在分支'release'中有一个名为'fileA'的文件,我们在'master'中有相同的文件,但我们在分支'release'中的'fileA'中做了一些更改
  • 当我们执行Pull请求时,我们是否可以忽略'fileA'中的更改,不要让它合并为'master'。

3 个答案:

答案 0 :(得分:12)

您无法有选择地忽略拉取请求中的某些文件。 有两种解决方法可以是 -

首先 -

  • 从'发布'
  • 创建新分支
  • 从' master'
  • 中替换不需要的文件
  • 从此新分支创建拉取请求

第二 -

  • 从' master'
  • 创建一个新分支
  • 更新'发布'
  • 中的所需文件
  • 从此新分支创建拉取请求

任何此方法都可行。哪个更容易取决于要包含/排除的文件数量。

答案 1 :(得分:3)

https://stackoverflow.com/a/28703636/12138397中所述,不可能在Pull-Request中排除文件,并且已经提出的替代方法也可以使用。

但是有一个更简单的解决方案。在这里,我考虑将 staging 作为目标,并将 dev 作为源

root
|-- src
|   -- app.py
|-- .gitignore
|-- settings.py
|-- requirements.txt

比方说,我想忽略合并的 settings.py 文件

  • 首先移至目标分支 (您要将其合并到的分支 变化)
    git checkout staging
    
  • 然后,您可以使用 git checkout 命令选择要选择的文件 合并
    git checkout dev src/
    
  • 这只会合并在 src / 文件夹中更改的文件

    注意:您也可以针对每个文件有选择地进行操作。

  • 然后推送到远程存储库

    git push origin staging
    

但是,仅当要排除的文件很小时,此解决方案才有用。

答案 2 :(得分:1)

使用您同意的最后一次提交创建分支:

git branch my-branch <sha>
git checkout my-branch

选择要提取请求的提交as patches

git format-patch -10 <sha> --stdout > 0001-last-10-commits.patch

应用补丁:

git am < 0001-last-10-commits.patch

您的提交将保持原样。您可以立即git push -u origin my-branch