草庐IT

rebase-merge

全部标签

Git 交互式 merge ?

我有两个具有完全相同文件的分支(如果您想知道它是一个.sql文件),我想以交互方式merge它。我非常想像在发生冲突(或命令行)时那样打开一个diff程序,然后准确选择行到哪里。有什么办法吗? 最佳答案 是的,但主要是通过手动实现。你会告诉Git你正在merge两个相关的分支,但它不应该尝试自己提交结果,(编辑添加:如果它认为merge也不会快进是微不足道的):gitmerge--no-commit--no-ffbranch-to-merge然后您将向git请求文件,因为它出现在两个分支中:gitshowHEAD:filename>

git - 如何为不属于我的分支提取未 merge 的 pull 请求?

我需要在NServiceBus存储库中引入特定的pull请求(尚未处理到主流中):https://github.com/johnsimons/NServiceBus/commit/d8524d53094e8181716e771c1023e968132abc15这显然不是我的repo协议(protocol),但我需要该pull请求中存在的更改。执行此操作的最佳方法是什么? 最佳答案 gitpulloriginpull/28/head或者gitfetchoriginpull/28/head:28gitcheckout28CanIpull

git rebase 和 git push : non-fast forward, 为什么要用?

我有一个分支,它应该对其他贡献者可用,并且应该不断地与master保持同步。不幸的是,每次我执行“gitrebase”然后尝试推送时,都会导致“非快进”消息和推送失败。在这里推送的唯一方法是使用--force。这是否意味着如果我的分支公开并且其他人正在处理它,我应该使用“gitmerge”而不是rebase? 最佳答案 关于git工作原理的一些说明(非技术性):当你rebase时,git接受有问题的提交,并在干净的历史记录之上“重新提交”它们。这是为了防止历史显示:Description:tree->mywork->merge->m

git - 如何在 Git 中 merge 子目录?

是否可以仅将本地Git分支的子目录更改merge到远程Git分支,还是“全有或全无”?例如,我有:branch-a-content-1-dir-1-content-2和branch-b-content-1-dir-1-`content-2我只想将branch-adir-1的内容与branch-bdir-1的内容merge。 最佳答案 作为SO问题“Howdoyoumergeselectivefileswithgit-merge?”的替代方案,我刚刚找到了thisGitHubthread这可能更适合merge整个子目录,基于gitre

git - 在 Visual Studio Code 中,如何在两个本地分支之间进行 merge ?

在VisualStudioCode中,我似乎只被允许推送、pull和同步。有记录支持merge冲突,但我无法弄清楚如何在两个分支之间实际merge。VSC中的Git命令行(按F1)仅有助于命令的子集:尝试从备用分支pull或推送到备用分支会产生:这是VSCode的Git文档VisualStudioCodeGitDocumentation我忽略了什么? 最佳答案 您无需使用插件即可完成。在我使用的最新版本的vscode(1.17.0)中,你可以简单地打开你想要的分支(从左下角的菜单)然后按ctrl+shift+p和键入Git:Merg

git - 使用 GIT,我如何有选择地将一个提交的更改 merge 到另一个 'fork' 上?

以这个场景为例:我决定在github.com上“fork”一个代码库,并开始执行我的例程:编辑-提交-推送;又名hackhackhack。在我做了一些修改后,我看到另一个人对同一个项目做了一些修改,我喜欢他们!我决定将它们merge到我的中。问题是,在他所做的几次提交中,我只想要一个特定提交的“一部分”。将这些选定数量的更改merge到我的“分支”中的最有效方法是什么? 最佳答案 在IRC世界的浪潮之后,有人给出了一个很好的解决方案:gitcherry-pickSHA1--no-commitgitadd--patch希望这对遇到同样

git - 如何避免 GitHub/BitBucket 上的 merge 提交 hell

我们在我们的repo中有很多这样的提交:Mergebranch'master'ofbitbucket.org:user/repo每当开发人员将他/她的本地分支同步到顶级存储库时,就会发生这种情况。有没有办法避免这种merge提交hell使所有repo日志困惑?在以某种方式发起pull请求时可以避免它们吗?我知道我可以执行gitrebase,如果这只在我的本地VM中完成,GitHub/BitBucketUI中是否有任何等效项?你们是怎么做到的? 最佳答案 merge前对特征分支进行rebase如果你想避免merge提交,你需要确保所有

git - 将 git repo merge 到另一个 repo 的分支

给定repoFoo和repoBar。我想将Bar与Foomerge,但是仅merge到一个单独的分支中,称为baz。gitswitch-cbaz 最佳答案 您不能将存储库merge到分支中。您可以将另一个存储库中的分支merge到本地存储库中的分支。假设您有两个存储库,foo和bar都位于您的当前目录中:$lsfoobar进入foo仓库:$cdfoo将bar存储库添加为远程并获取它:$gitremoteaddbar../bar$gitremoteupdate根据您当前的分支在foo存储库中创建一个新分支baz:$gitswitch-

git - 在有人将 rebase 或重置推送到已发布的分支后,我如何恢复/重新同步?

我们都听说过,永远不要对已发布的作品进行rebase,它很危险等等。但是,我还没有看到任何关于如何处理这种情况的食谱,以防发布rebase.现在,请注意,只有当存储库仅由已知(最好是少数)人群克隆时,这才是真正可行的,这样无论谁pushrebase或重置,都可以通知其他人他们需要注意下次他们获取(!)。如果您没有在foo上进行本地提交并且它会rebase,我看到的一个明显的解决方案将起作用:gitfetchgitcheckoutfoogitreset--hardorigin/foo这将简单地丢弃foo的本地状态,以支持其根据远程存储库的历史记录。但是,如果在该分支上提交了实质性的本地更

Git merge 在我的文件中留下了 HEAD 标记

我尝试使用Git在命令行中merge文件,但出现一条错误消息,告诉我merge已中止。我以为就这样结束了,但后来我意识到我的文件中有gitmarks。像这样:start=expressionvalidchar=[0-9a-zA-Z_?!+\-=@#$%^&*/.]integer=>>>>>>gh-pages这些文件不是由我编辑的,并显示插入的行:小于号后的HEAD()更改的代码行一串等号(=======)新版本代码另一行以大于号和分支名称(>>>>>>>gh-pages)开头更糟糕的是,文件内容不再按顺序排列。有谁知道我是如何让那些文件恢复正常的,以及我在gh-branch中所做的更改