git - git 中的 "Virtual"或 "view"分支(在 github 上)

标签 git github workflow

我们是一个使用 github 的小型组织。我们有一个非常简单的工作流程; feature 和 fix 分支是从 origin/develop 中分离出来的,当开发人员认为分支已准备好 merge 时, pull 请求会重新打开到开发中。然后我们进行代码审查和质量检查。

这通常意味着一次有三到四个开放的 PR,并且从开放 PR 到获得团队批准并 merge 到开发中之间存在 1-5 天的延迟。

在本地,我已经开始保留一个“ future ”分支,基本上就是开发 + 任何开放的 PR。这让我自己的夜间构建尽可能完整,并让我更早地发现可能的冲突。

所以:我有兴趣让这个 future 分支可供团队的其他成员使用。不过,我可以看到这变得有点复杂:目前,如果 PR 关闭,我只需破坏我的本地分支,然后从开发中再次重建。这非常简单。不过,如果其他人有自己的本地副本,事情就会变得更加复杂。我总是可以将我自己的工作副本强制推送回原点,但是对于检查它的人来说会出现冲突。

理想情况下,我可以拥有某种“虚拟”分支,它只提供给定时间的代码库的最新快照,并且人们可以对其进行更新和构建。

有这样的事情存在吗?还有其他方法可以获得我正在谈论的功能吗?

最佳答案

but then there will be conflicts for people who check it out.

只有当他们通过 merge “检查出来”时。如果他们只是获取引用然后直接检查它,则不涉及 merge - 他们将拥有分支中的确切内容。

git fetch origin
git checkout origin/future

上述命令将从 origin 远程获取 ref,然后直接查看该 ref,该 ref 是 originfuture 副本>.

同样,如果他们想保留本地副本,他们可以强制更新它,而不是尝试 merge 新的更改:

git fetch origin
git checkout -B future origin/future

然后,如果您更新本地分支,并希望强制更新远程分支,您可以执行以下操作:

git push origin future --force

关于git - git 中的 "Virtual"或 "view"分支(在 github 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27176670/

相关文章:

java - 如何在 Eclipse 中将 GitHub 托管项目导入为 Java 项目?

github - Github Markdown 代码块中的上标

linux - 当文件通过 FTP 添加到 git 存储库时,在脚本中使用 inotifywait 自动执行 git 提交

testing - 使用单个 JIRA 任务票证或创建子任务

workflow - 在 WF4 中使用 Send 或 SendReceive 事件时,如何模拟对 WCF 服务的调用?

git - 为什么 "git index"有这么多名字?

git - InstallShield 项目中的哪些文件需要保留在源代码管理中?

Git - 如何在分支之间移动提交

git - 与 SSH key 相比,使用 GPG key 签署 git commit 有什么优势

github - 在 github 拉取请求中添加对旧现有代码的评论