git - 如何从已创建但未完成的拉取请求中排除文件?
问题描述
下午好!一个人创建了一个拉取请求,但在创建它之前,他合并了另一个分支,其他文件的更改进入了创建拉取请求的分支。如何从创建的拉取请求中删除这些文件,以便在执行后不会应用对它们的更改?
解决方案
您可以恢复一个人从另一个分支合并的更改。
假设您创建了一个从A 分支到B 分支的 PR ,但是 A 人将一些不需要的更改从C 分支合并到A。现在您不希望将 C 分支的更改合并到 B 分支。您可以运行命令将 A 分支恢复到合并 C 分支之前的状态。请参阅下面的示例 git 命令:git revert
git checkout A
#git log --oneline #find the commit hash of the merge with git log
#git revert -m 1 [commit-hash]
git revert -m 1 HEAD #revert A branch to the before-merge state
git push #push A back to remote server
然后 PR 的 A 分支将更新,C 分支不需要的更改将被删除。有关详细信息,请参阅撤消合并。
Git revert
命令将保留合并历史记录,这将导致 C 分支中的更改无法再次合并回 A 分支。您也可以查看此博客。如果你想让 A 分支回到合并 C 分支之前的原始状态(删除合并历史),你可以使用git reset
andgit push --force
命令。请参见下面的示例:
git checkout A
git reset --hard HEAD~
git push --force
推荐阅读
- javascript - 在反应中使用拼接添加到数组的正确方法是什么
- python - 如何使用 skimage 中的“imread”来读写?
- node.js - node.js 中的意外标识符
- reactjs - Redux - Updating A Component With 3rd Party API
- recursion - 具有特定条件的 Prolog 方法
- node.js - How to distinguish calls from mobile app and web browser in Node Js?
- python - 使用类对象优化嵌套 for 循环语句
- php - Laravel 5.7 通知
- swift - 谷歌奖励视频广告跳过按钮关闭 ViewController
- ios - 使用 Xcode 和 Swift 在 pageControler 中播放声音文件