Pull Request,忽略一些文件更改
Pull Request, ignore some file changes
当我在 GitHub 上(针对 master 分支)执行 Pull Request 时,我们可以忽略一些文件更改,比如
- 我们在分支 'release' 中有一个名为 'fileA' 的文件,我们在 'master' 中有相同的文件,但我们在分支 'fileA' 中做了一些更改 'release'
- 当我们做一个 Pull Request 时,有什么方法可以忽略 'fileA' 中的变化,不要让它合并到 'master'.
您不能有选择地忽略拉取请求中的某些文件。
两个解决方法可以是 -
第一-
- 从 'release'
创建一个新分支
- 替换 'master'
中不需要的文件
- 从这个新分支创建拉取请求
第二个-
- 从 'master'
创建一个新分支
- 将所需文件的更改从 'release'
- 从这个新分支创建拉取请求
任何一种方法都可以。哪个更容易取决于要包含/排除多少文件。
使用您同意的最后一次提交创建分支:
git branch my-branch <sha>
git checkout my-branch
Select 提交您想要拉取请求 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
。
如 中所述,无法在 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/ 文件夹
中更改的文件
NOTE: You can also do it selectively for each file.
然后推送到远程仓库
git push origin staging
但只有当要排除的文件很小时,此解决方案才有用。
当我在 GitHub 上(针对 master 分支)执行 Pull Request 时,我们可以忽略一些文件更改,比如
- 我们在分支 'release' 中有一个名为 'fileA' 的文件,我们在 'master' 中有相同的文件,但我们在分支 'fileA' 中做了一些更改 'release'
- 当我们做一个 Pull Request 时,有什么方法可以忽略 'fileA' 中的变化,不要让它合并到 'master'.
您不能有选择地忽略拉取请求中的某些文件。 两个解决方法可以是 -
第一-
- 从 'release' 创建一个新分支
- 替换 'master' 中不需要的文件
- 从这个新分支创建拉取请求
第二个-
- 从 'master' 创建一个新分支
- 将所需文件的更改从 'release'
- 从这个新分支创建拉取请求
任何一种方法都可以。哪个更容易取决于要包含/排除多少文件。
使用您同意的最后一次提交创建分支:
git branch my-branch <sha>
git checkout my-branch
Select 提交您想要拉取请求 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
。
如
但是有一个更简单的解决方案。在这里,我将 staging 作为目标,将 dev 作为源
root
|-- src
| -- app.py
|-- .gitignore
|-- settings.py
|-- requirements.txt
比方说,我想忽略 settings.py 文件的合并
- 首先移动到目标分支 (你要合并的分支
变化)
git checkout staging
- 然后你可以使用git checkout命令来选择你想要的文件
合并
git checkout dev src/
这只会合并在 src/ 文件夹
中更改的文件NOTE: You can also do it selectively for each file.
然后推送到远程仓库
git push origin staging
但只有当要排除的文件很小时,此解决方案才有用。