问题标签 [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.
ios - 使用 Swift 3 在 VLC 播放器中快进和快退
我在我的电影应用程序中使用 VLC 播放器。我可以播放视频和调整视频音量。
我想以 2x、3x、4x 的速度进行快进和快退。
我真的不知道如何实现这一点。:(
任何人都可以帮助我吗?我已经在谷歌搜索示例。我还没有找到它。
linux - GIT 合并 --no-ff
在这篇文章中,我将请一位 git 专家尝试解释 git merge --no-ff 如何帮助我们。我在这里阅读了http://nvie.com/posts/a-successful-git-branching-model/(我个人认为这是一篇非常好的帖子) git merge --no-ff:“这可以避免丢失信息关于功能分支的历史存在并将所有一起添加该功能的提交组合在一起”。所以我发现它真的很有用并做了一些实验。
问题是我们如何从 git log 信息中知道哪些提交属于每个功能。为此,我做了下一个实验。假设两个用户正在一个软件项目上开发两个不同且独立的功能(以避免合并冲突)。从上一个稳定版本开始,我们将按以下方式进行:
git init
touch AAA.txt
git add AAA.txt
git commit -m "My stable software version"
//this will simulate our project repository
所以从这一点开始,两个用户(名字 Alice 和 Bob)创建了两个不同的分支并开始处理这些特性:
git branch feature1_Alice
git branch feature2_Bob
现在 Alice 和 Bob 开始同时工作和提交。我们可以将他模拟为:
git checkout feature1_Alice
touch f1_A1.txt
git add f1_A2.txt
git commit -m "Solving little bug on feature 1"
Bob 在 Alice 之后按照时间线进行了两次提交:
git checkout feature2_Bob
touch f2_B1.txt
git add f2_B1.txt
git commit -m "Starting feature 2"
touch f2_B2.txt
git add f2_B2.txt
git commit -m "feature 2: implementing new functionality"
然后 Alice 完成特征:
git checkout feature1_Alice
touch f2_A3.txt
git add f2_A3.txt
git commit -m "Feature 1 finished"
然后 Bob 完成 feature2:
git checkout feature2_Bob
touch f1_A3.txt
git add f1_A3.txt
git commit -m "Feature 2 finished"
现在我们将新功能合并到主分支:
git checkout master
git log
输出:
提交 c58dd35054f83c089292d090781438f37feeffa3
作者:娟
日期:2017 年 4 月 25 日星期二 10:30:01 +0200
git merge --no-ff feature1_Alice
//We put a message on the created commit
现在 git log 输出:
提交 50c5d1570fe0c047f72200bd57ef6cef6fa9077e 合并:c58dd35 c136a23 作者:juan 日期:2017 年 4 月 25 日星期二 10:48:12 +0200
提交 c136a23c49c546e5f48d9d0634e9bc51d67370cd 作者:juan 日期:2017 年 4 月 25 日星期二 10:41:49 +0200
提交 c9dbb1b49444555fca528f562d3a38143fd521e9 作者:juan 日期:2017 年 4 月 25 日星期二 10:35:24 +0200
提交 58afad2b46565e614a99d94d1e1aa1c8520f9f2b 作者:juan 日期:2017 年 4 月 25 日星期二 10:35:01 +0200
提交 c58dd35054f83c089292d090781438f37feeffa3 作者:juan 日期:2017 年 4 月 25 日星期二 10:30:01 +0200
最后合并特征 2:
git merge --no-ff feature2_Bob
git log
提交 3f27f78fefb30080ace629e561a242a4f8dbca56 合并:50c5d15 2eee0c1 作者:juan 日期:2017 年 4 月 25 日星期二 10:54:20 +0200
提交 50c5d1570fe0c047f72200bd57ef6cef6fa9077e 合并:c58dd35 c136a23 作者:juan 日期:2017 年 4 月 25 日星期二 10:48:12 +0200
提交 2eee0c1bb732443ae7d6f4893d651abfd558d55a 作者:juan 日期:2017 年 4 月 25 日星期二 10:43:14 +0200
提交 c136a23c49c546e5f48d9d0634e9bc51d67370cd 作者:juan 日期:2017 年 4 月 25 日星期二 10:41:49 +0200
提交 cd3bee2906e02df22866ba710891d21eaebb8013 作者:juan 日期:2017 年 4 月 25 日星期二 10:40:12 +0200
提交 c6fdf092b2645f7d4088f9f439e820a9a820b891 作者:juan 日期:2017 年 4 月 25 日星期二 10:37:39 +0200
提交 c9dbb1b49444555fca528f562d3a38143fd521e9 作者:juan 日期:2017 年 4 月 25 日星期二 10:35:24 +0200
提交 58afad2b46565e614a99d94d1e1aa1c8520f9f2b 作者:juan 日期:2017 年 4 月 25 日星期二 10:35:01 +0200
提交 c58dd35054f83c089292d090781438f37feeffa3 作者:juan 日期:2017 年 4 月 25 日星期二 10:30:01 +0200
谁能告诉我如何从提交历史和合并提交中看到哪些提交会影响每个功能?当我们及时插入来自不同功能(或功能和主控)的替代提交时,我看不到该网络中评论的优势。
使用 --no-ff 的唯一区别是合并提交具有哪些提交已被合并的信息,但这对于跟踪提交历史是不安全的。
提前致谢。
git - git 快进一次提交
这是我(最近)的历史。
我想feature/QOL-1649-install-chrome
上移一个提交,到9aeb07e
.
我尝试了樱桃挑选,但随后我得到了该提交的“副本”到feature/QOL-1649-install-chrome
分支上。但我想要的(我认为)是快进。
git - Github 是否会计算由 -no-ff merge 合并的分支的贡献(不是快进)?
Github 关于贡献问题的文章没有关于--no-ff
合并的内容。
我在这个 reddit 线程中找到了一些答案,但过程对我来说仍然不清楚。
编辑:例如,我在功能分支中做了一些提交,然后我将此分支与主分支合并。Github 会计算我个人资料中功能分支的所有提交还是仅计算合并提交?
git - Git:设置 merge.ff 会永远中断快进合并
我在 Git(版本 2.10.1 (Apple Git-78))中遇到了一个非常奇怪的问题。
看来,如果我曾经在本地 repo 配置中设置merge.ff
为false
,那么这个 repo 就没有办法回来了。我只是无法取消它。
以下是重现的步骤:
此合并按预期创建带有消息的提交。
现在我取消设置,我希望未来的快进提交不会创建额外的提交。但令人惊讶的是,这不起作用。
我假设这个合并不应该创建一个提交,因为没有merge.ff
设置,所以应该应用默认值。但是提交被创建。
我想要什么:让快进提交在我的仓库中再次工作。有没有办法得到这个?
git - 为什么“git merge --no-ff”会打破指责并一分为二?
我想决定是否使用 --no-ff 选项(合并时)。
我阅读了这篇文章:了解 Git 工作流程。从那里引用:
不幸的是,您的功能分支包含检查点提交,频繁的提交会备份您的工作,但会捕获处于不稳定状态的代码。现在这些提交与 Master 的稳定提交没有区别。你可以很容易地卷入一场灾难。
但事实上,这种可能性并不让我担心。所以这不是--no-ff
我使用的理由。对我来说,也不是像作者建议的那样“在合并之前,使用重置、变基、压缩合并和提交修改等工具清理我的分支。”。
不过,我想使用--no-ff
另一个原因:它让我很容易知道哪个提交是关于哪个功能的。IOW,它让我可以单独保存每个功能,这样我就可以单独浏览它。基本上与我使用带有文件夹、子文件夹和文件的分层文件系统的原因相同。
还有另一个原因:我不喜欢平原如何git merge
创造无意义的交错历史。示例(一天内):
在分支中提交master
:
- mFoo,下午 1 点提交
- mBar,下午 3 点提交
在分支中提交feature
:
- fFoo,下午 2 点提交
- fBar,下午 4 点提交
一个普通的 git merge 会创建这个历史:
mFoo, fFoo, mBar, fBar
所以现在如果我回到 mBar,我也会得到feature
's 的部分更改,这是没有意义的——它们甚至可能与 mBar 不兼容。
git blame
似乎我的这些偏好在概念上与and的正常功能并不冲突git bisect
,但出于某种原因,我显然不能两者兼得。
你能告诉我这个原因是什么,是否有解决方法?
git - git merge --ff 有什么区别和 git 重置--混合
如果我想将本地分支更新master
到远程分支gitlab/master
,我会看到两个选项:
- 我可以使用快进合并将本地分支与远程分支合并。
- 我可以使用 reset 将我的分支移动到远程分支的位置。
第一个操作可以在我的 SmartGit GUI 中通过右键单击来实现:merge
. 后一种操作可以通过将本地分支标记拖到新位置来实现。
git merge --ff <commit>
和之间有什么技术区别git reset <commit> --mixed
吗?
我承认 reset 也可以用于将本地分支移动到另一个分支,这不是快进的方式。
git - 将分支的前 n 个提交合并到 master
我有一个从最近提交到master
. 该分支上有两个提交。我想快进将这些提交中的第一个合并到 master 上。
我知道我可以挑选樱桃,但如果我能帮上忙,我真的不想让 master 和 branch 分道扬镳。
当前状态:
樱桃采摘选项:
理想的选择:
这可能吗?
请注意,提交已全部推送到远程;但是目前没有其他人可以访问这个特定的 repo,所以 apush -f
就可以了。
我似乎记得在签出分支时可能有某种方法可以合并到 master 上……如果这是真的,我可以简单地签出提交 B,然后以这种方式合并?
git - VSTFS 2015 - 合并拉取请求集 no-ff
我正在使用 VS-TFS 2015 来管理我的项目,并且我已经启用了拉取请求并使用了分支策略。
为了管理拉取请求,我希望合并到开发分支(前面有一个 Git Repo)是使用 no-ff 选项完成的。在 MSDN(https://docs.microsoft.com/fr-fr/vsts/git/branch-policies#enforce-a-merge-strategy)中,有一个“强制合并策略”部分,但没有出现在我的 TFS-2015 仪表板中。
有什么想法可以启用它或解决方法吗?我想当我们验证合并拉请求时,默认情况下不会激活 no-ff 吗?