- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个包含两个分支 master
和 entidades
的 GIT 存储库。我需要将 entidades
分支中的一些内容 merge 到 master
分支。看一下图像,标记为 EntityBundle
的文件夹是我唯一需要从 entidades
merge 到 master
的东西,我该怎么做?我在 SmartGit 的 entidades
分支上点击 merge 并收到类似图像显示的消息,但在这里我迷路了,因为我不知道什么是正确的选择,以免弄乱 master
repo ,任何人都可以给我提示吗?
** 我的工具中的图表表示**
最佳答案
我假设你的历史看起来像这样:
* A (master, origin/master)
|
| * B (entidades, origin/entidades)
| |
< some number of commits on either branch>
| |
|/
* D
(较新的提交在该图的顶部,较旧的在底部)换句话说,entidades
一段时间前与 master 分道扬镳,你想在这些选项之间进行选择。您应该学习如何在您的工具中显示/查看此类图表:它们将帮助您了解当前的历史记录是什么样的,以及您对其所做的更改会做什么。 (这样的图可能会澄清你的问题。)
我还假设您正在将 entidades
merge 到 master
中。 (您的屏幕截图似乎证实了这一点。)
现在,您的选择:
merge 只是创建一个统一两个分支状态的提交。 (使它们相同。)看起来像这样:
* M (master)
|\
* | A (origin/master)
| |
| * B (entidades, origin/entidades)
| |
< some number of commits on either branch>
| |
|/
* D
然后,您可能会将 master 推送到 origin。通常,如果您完成了 entidades
的工作(例如,它是一个功能分支,并且该功能现在已 merge 到 master 中),您还可以在本地和远程删除该分支。
您的其他选项之一, merge 到工作树,我认为,将执行 merge ,但不提交结果。如果这就是它的作用,那么如果您执行 git commit
,您将最终到达与 Create Merge Commit 完全相同的点;前一个选项只是让您有机会编辑提交。
将 entidades
rebase 到 master
看起来像这样:
* B´ (entidades)
|
< the commits made to entidades >
|
* A (master, origin/master)
|
| * B (origin/entidades)
| |
< some number of commits on either branch>
| |
|/
* D
正如我所展示的,entidades
最初是“基于”提交 D
,因为那是它与 master
不同的地方;您所做的更改是“基于”这一点的。 rebase
会将其更改为基于提交 A
。我们已经更改了分支的“基础”或“重新设置”它。
rebase 改变历史。你可以在这里看到这一点,因为 entidades
和 origin/entidades
有 < em>diverged:他们都有自己独特的提交。 entidades
有提交 D..B´
,而 origin/entidades
有提交 D..B
。
如果您还没有 push 分支,那么 rebase 通常是“社会可接受的”,因为那时您是唯一可以说历史已经改变的人。但是,一旦您将更改推送到某个远程,其他人可能会根据原始 entidades
进行更改:他们会注意到您的历史重写。因此,推荐的建议是不要对已推送的内容进行 rebase ,因为这会弄乱人们。 (任何对 entidades
进行更改或分支的人都需要还重新设置他们的更改,这对他们来说可能是一个乏味或繁重的过程。)
为了将新的 entidades
推送到 origin
,您需要 git push -f
。 (-f
表示“强制”;您需要强制执行它,因为您正在重写历史,出于上述原因,这通常是您应该小心处理的事情。)
请注意,entidades
仍未 merge 到 master
中;但是,如果它现在基于 master
本身(最新提交,而不是某个祖先),那么您可以快进 master
到 entidades
。是否愿意取决于您。
关于git - 快进、 merge 提交或 merge 到工作树,在这里选择哪个选项是正确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24684410/
我正在使用 just_audio而且效果很好。 但似乎找不到快进或倒带的方法。 更新:原来 just_audio 是 audio_service 的一部分包,使用 audio_service 为我解决
我让它快进了,但我想在快进时听到音乐。我怎样才能做到这一点?这是我的代码: if node.name == "left" { var time = musicPlayer.cu
可以假设快进意味着所有提交都在目标分支上重播并且 HEAD 设置为该分支上的最后一次提交吗? 最佳答案 当您尝试将一个提交与一个可以通过跟踪第一个提交的历史记录到达的提交 merge 时,Git 会通
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 8年前关闭。 Improve this questi
我有一个音频播放器,可以播放从 Core Date 检索到的音频。播放和暂停工作正常。我正在尝试实现“向前跳转 30 秒”按钮,并寻求有关我将如何实现的任何指示。 “播放/暂停”按钮的代码 @IBAc
Git merge 允许我们执行快进和非快进分支 merge 。什么时候使用快进 merge 以及什么时候不使用快进 merge 有什么想法吗? 最佳答案 --no-ff 选项在您想要清楚地了解您的功
我有这种情况:在一些 testBranch 上工作了一段时间,我想与 master 同步所以我做了git checkout testBranch 和git merge master/testBranc
所以我正在做一个项目,我有很长的 for 循环,当接近循环结束时我通常会遇到问题,但是通过进入循环数百万次手动到达那里几乎是不可能的。我知道我可以只更改计数器变量,但在这种情况下它不起作用,因为每次迭
我正在我的 Mp3 播放器中制作快进按钮。我已经为此编写了代码,但是有问题如何实现计时器向前跳 5%?我的意思是,当我按下按钮时,计时器应该比总长歌曲向前跳 5%。这是我的 fastForward 方
MediaPlayer 的 pause() 方法使 Media 稍微“寻找”一下。确实很烦人,但是没找到问题出在哪里。 private void playPauseClicked()
我有一个包含两个分支 master 和 entidades 的 GIT 存储库。我需要将 entidades 分支中的一些内容 merge 到 master 分支。看一下图像,标记为 EntityBu
假设有一个功能分支'my-feature'。在我开发该功能时,有人将它从“我的功能” merge 到“主控”中。因为这是一个快进 merge ,所以没有提交。我所做的一些更改还没有准备好用于 mast
换句话说,快进 merge 是否能保证生成与要 merge 的源分支的 HEAD 相同的 GIT SHA? 我在终端中测试了此行为,它适用于我的测试场景: $ git rev-parse some-b
换句话说,快进 merge 是否能保证生成与要 merge 的源分支的 HEAD 相同的 GIT SHA? 我在终端中测试了此行为,它适用于我的测试场景: $ git rev-parse some-b
这个关于 git 的陈述是真的吗,merge(其中快进是可能的)基本上与使 git reset --hard 到 HEAD 相同要 merge 到的分支? (当merge不是fast-forward时
最近,我创建了newbranch,并创建了一个到Master分支的 merge 请求。在 TeamLead 接受 merge 请求到 Master 分支之前,另一个团队成员向同一个分支(新分支)提交了
我是一名优秀的程序员,十分优秀!