问题标签 [fast-forward]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 使用快进提交进行合并的 git 工作流
我与许多开发人员一起在几个项目中使用 git。我通常的工作流程是针对特定功能/请求在本地分支,将我的更改合并到上游跟踪的本地分支作为快进合并,然后推送更改。我总是为一个单一的提交分支。我从来没有在我与其他人共享的分支上进行本地提交,所以我可以自由地在本地进行 rebase/muck,直到我将我的更改推送到上游。作为一个偏好问题,我喜欢我的合并尽可能快进提交。例如,如果一个项目的版本 1 的所有内容都由origin/v1
分支上的所有开发人员推送,我会:
最终,我想将我的更改合并到v1
本地并推送到origin/v1
. 我会签出git fetch origin
的feature-A
。如果进行更改,我将结帐v1
并合并
现在为feature-A
I checkout feature-A
、rebase to v1
、checkout v1
、mergefeature-A
和 push v1
back实现快进合并origin
。
非快进提交没有错,合并提交也没有错。同样,这只是一个偏好问题。我想知道是否有更好的工作流程来完成同样的事情,而无需通过所有分支机构的结帐。可能有一个我不知道的 git 命令在我在更新的分支feature-A
之上重新设置基础后会起作用。v1
https://stackoverflow.com/a/4157106/620304看起来可能会有所帮助。一个可能的工作流程是在我 rebase 后v1
使用来自 origin 的最新更改进行更新并更新v1
到本地的 HEAD :feature-A
我确信可能有更好的方法。非常感谢任何帮助/输入。
android - 使用 git 快速向前合并的可重现 android 构建
我正在寻找针对 repo 的 git 存储库集合的 android 系统 (AOSP) 日常构建之间的可重复性以及使用快进合并的影响。
问题在于,在进行日常构建时,您会在其他地方进行开发时获得树梢。如果在推送更改时 HEAD 没有更改,它将进行快进合并并重写时间。因此,3 天前存储库的物理状态实际上与要求 git 返回 3 天不同。
我能看到的主要解决方案是使用带有 --no-ff 的 git 来强制合并提交。这为较小的提交注入了很多噪音,并且似乎被认为是保持干净树的不好做法。
这方面的背景是试图在 android 构建环境中具有可重复性。对于那些不知道的人,一个 android 构建是一个不同的 git 存储库的集合。我的最终用例是我想说,将代码库置于 3 天前开发人员的状态。通过快进合并,我们丢失了一些关于如何关联多个 repo 项目(即:git 存储库)的更改的关键信息。
git - git 与 --no-ff 和 --squash 合并
我正在使用 git flow 方式来管理我的仓库中的分支,如下所述: http: //nvie.com/posts/a-successful-git-branching-model/
因此,我应该使用的命令序列如下:
但是,在某些情况下,我想做不同的一件事:
我想在我的功能分支 ( mybranch
) 上保留我的所有提交,但在合并到develop
.
所以这就是我认为的命令序列应该是:
--no-ff
如果我要与 结合,我会做错事--squash
吗?
我犹豫要不要尝试这一点,因为“压缩”和“保留历史”是正交要求 - 请参阅将我的所有提交(包括合并)压缩到一个提交中而不改变历史
我的理由是我想在一个分支 () 上保留历史记录mybranch
并在另一个分支 () 上保留 suqash develop
--> 因为这些操作是在单独的分支中执行的,所以可以。
git - 撤消 git 快进合并
我有这种情况:在一些 testBranch 上工作了一段时间,我想与 master 同步,所以我做了 git checkout testBranch 和 git merge master/testBranch
所以现在我的分支已与 master 同步,但后来我发现我想撤消该合并,问题是合并是通过快进完成的,现在我的提交历史与 master 提交和 testBranch 提交混合在一起,我不知道如何在我的 testBranch 上合并之前恢复到状态。
谢谢你的帮助
git - 何时在 Git 中使用“--no-ff”合并选项
一个成功的 Git 分支模型建议--no-ff
在合并分支时使用:
该
--no-ff
标志会导致合并始终创建一个新的提交对象,即使可以使用快进执行合并。这样可以避免丢失有关功能分支的历史存在的信息,并将所有添加该功能的提交组合在一起。[…]是的,它会创建更多(空)提交对象,但收益比成本要大得多。不幸的是,我还没有找到一种方法来实现
--no-ff
git merge 的默认行为,但它确实应该是。
但是,了解 Git 工作流程建议不要使用--no-ff
:
所以你添加了一条新规则:“当你在你的特性分支中合并时,使用
–-no-ff
来强制一个新的提交。” 这样就完成了工作,然后您继续前进。[…]
对于不同的场景,这两种方法似乎都是合理的,但什么被认为是“好的做法”?
什么时候用--no-ff
,什么时候不用,为什么?
ios - 当内容是流时,为什么 MPMediaPlayerController 上会显示快退和快进按钮?
我有一个 MPMoviePlayerController 作为流的媒体播放。因为它是一个流,所以没有使用 RW 和 FF 函数。
苹果文档明确说
beginSeekingForward:如果底层内容是流式传输的,则此方法无效。
但实际上是有效果的。RW 重新启动流,而 FF 似乎破坏了一切(无法 RW 或播放)。
所以我的问题是:如果 beginSeekingForward 和 beginSeekingBackward 方法对流没有影响,为什么它们对用户可见(全屏时)?有没有办法隐藏 RW 和 FF 按钮?
git - 尝试 git merge --ff-only,被拒绝;然后 git merge 做了一个快进(?)
还在学习GIT。尝试将我的本地存储库与在“中央存储库”样式远程存储库上完成的提交同步。第一步是获取来源:
然后检查状态和分支。
然后尝试--ff-only。
好的,所以做一个非 ff 合并:
检查提交:
似乎完成了非 ff 合并。合并“Fast-fowarding to: origin”的输出令人困惑——它想告诉我什么?我错过了什么?谢谢!
git - git pull 命令的输出
我用来git pull git@github.com:myaccount/random.git
更新我的本地 git 目录。我在 shell 上找到了以下结果
我试图理解以下输出并理解到极限。我知道什么是删除模式或创建模式。但是|
符号后的数字是什么+
,-
代表的是什么。是什么Fast Forward
行首是什么。我发现了更多的东西,比如如果一个文件被删除,它的输出|
只包含数字和-
s。那么它实际上是什么意思呢?
git - git push --force 是否适合同时强制更新远程文件?
我正在为 Jenkins 作业开发自动化脚本。该脚本接受一个参数$1
,对存储库文件进行小的更改并推送更改。它只是这样做:
当这些 Jenkins 作业立即执行时,git push
经常会失败:
这是完全可以理解的。但我想强制推动发生,因为已经保证每个脚本调用都会得到不同的$1
.
从手册页中,我了解到:
该标志是否适合我的场景?
git - 一旦发生快进合并,如何获取 git 分支的历史记录(起点)
我正在开发一个程序来查询特定分支的历史记录,我希望仅在该分支上执行活动:
- 想要显示用户在该分支上所做的评论。
- 其他信息。
当我的主分支和我的功能分支(我想查询)尚未合并时,我可以这样做。
我能做的是,我可以像这样在 master 和 feature-branch 之间查询并获取日志。
我得到了执行的活动列表。
但我的问题是,当分支中发生快进合并时,我无法查询或获取该分支的数据,因为以下命令不返回任何行。
什么都没有返回。
我想知道在 Git 中是否有任何方法可以使用命令来查找历史记录,即使发生了快进合并。