草庐IT

rebase-merge

全部标签

Git 将另一个存储库中的单个文件 merge 到我自己的

假设我有自己的git仓库,里面有一堆文本文件。还有另一个不同的gitrepo是别人拥有的,其中包含一堆文本文件,除了一个文件外,这些文件都与我自己的不同。我一直在对我的存储库中的不同文本文件进行更改,但时不时地我想将该单个文件的任何更改从另一个存储库merge到我自己的。有什么简单的方法可以做到这一点吗?我四处搜索并发现了一些类似的问题,但没有一个是针对我的确切场景的。 最佳答案 尝试添加other-repo然后带上它的分支,包括你的target-branchgitremoteaddothergit@github.com:usern

git - 如何解决 `git stash pop` 子模块上的 git merge 冲突

我有一个带有子模块的git存储库。我需要pop我之前stash的更改。但是,这会导致子模块引用发生merge冲突。除了子模块之外,我想保留我的更改。对于大多数代码文件,我可以通过编辑冲突文件来解决冲突,但这似乎不是子模块的选项。如何解决merge冲突并仍然从存储中提取我的更改?$gitstashpopwarning:Failedtomergesubmodulesome-submodule(commitsdon'tfollowmerge-base)Auto-mergingsome-codeAuto-mergingsome-submoduleCONFLICT(submodule):Merg

git - git rebase 是否比 git merge 产生更多的冲突?

gitrebase真的比gitmerge更容易发生冲突吗?我以前听说过,它在thispost中被引用Iamspeculatingbasedonanecdatahere,butIsuspectthegeneralanxietyaroundrebasingstemsfromtwoprimaryplaces:Duetothemechanicsofgitrebase,mergeconflictsaremorefrequentandseeminglyhardertodealwith作者没有详细说明这种说法,但我不是第一次听到这种说法。我听过并理解这一点,因为rebase会逐个提交地重放,你最终会

git - 樱桃选择 merge

假设分支B是分支A的主题分支,而您希望在分支C中进行这些更改。当您挑选分支A和分支B的merge提交到分支C时,这意味着什么?例如,如果您使用-m标志指定分支A的旧HEAD以挑选merge到分支C,这是否仅仅意味着“在挑选的提交树和旧HEAD之间进行比较”分支A应用到分支C?”使用这种方法有什么陷阱吗?(例如,分支C看起来像是merge到分支A和B吗?是否会应用更多的更改,而不仅仅是来自分​​支B的提交?) 最佳答案 我通常这样做的方式是使用gitrebase:gitrebase--ontoCAB这会获取A和B之间的差异,并将这些差

windows - 如何在 Windows GUI 中执行 rebase --interactive

我有一个同事非常喜欢Windows的gitGUI界面;我想让他以交互方式rebase,这样他就可以压缩提交。我已经尝试使用Tools->Add来添加gitrebase--interactive但是当他尝试时这只是挂起。客户端可以处理交互式rebase吗?是否有另一个适用于Windows的GUI客户端可以?或者可能有另一种方式来压缩客户端中的提交? 最佳答案 没有办法通过gui来做。也就是说,有一些方法可以在没有交互式rebase的情况下压缩提交。例如,可以重置--soft3commitsago,将所有内容添加到索引并提交。这将有效地

git - git rebase 可以完全删除远程历史记录吗?

当我们考虑在工作中从SVN迁移到git时,一位同事提出了一个问题,即恶意或容易发生事故的开发人员可能会使用gitrebase从我们的共享存储库中删除远程历史记录。编辑:正如答案中所指出的,也可以使用gitpushorigin:branch-name从远程仓库中删除整个分支。这是一个现实问题吗?如果是这样,我们可以采取什么方法来防止它? 最佳答案 我倾向于同意您同事的看法,这里存在问题,因为:无论您多么信任您的提交者,人为错误的可能性始终存在更繁琐的审核流程(例如Gerrit)并不总是合适的从备份中恢复可能会很慢而且像PITA您是否考

git - 将 svn 仓库与 git 仓库 merge

我有一项艰巨的任务,要在两个团队之间merge一个包含大量文件的站点。一个团队一直在使用git,另一个团队使用svn。我可以就最好的方法获得一些帮助吗?我在想的是我将创建一个新的裸仓库gitclone--bare~/dirgitversion.git然后从那里创建一个分支gitcheckout-bimport-svn然后在那个分支上我将从svnpullsvncheckoutsvn://svnversion/trunk现在在这个分支上我会rebase?gitrebaseorigin/master然后切换回master分支gitmergeimport-svn我尝试过类似的方法,但似乎无处可

Git post-rebase 钩子(Hook)

有没有post-rebasehook之类的东西?我的目标是我想要一个脚本在之后执行gitpull--rebase使用命令。 最佳答案 似乎重写后Hook完成了这项工作。 关于Gitpost-rebase钩子(Hook),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/21307744/

git - 如何仅对我要 merge 的分支使用 Jenkins 预构建分支 merge ?

我正在阅读https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin#GitPlugin-AdvancedFeatures这允许在将提交推送到主分支之前预先构建功能分支,从而有效地实现预提交构建/测试队列。它在UsingGit,Jenkinsandpre-buildbranchmerging下说:SetupyourJenkinsproject,andleavethe'branch'fieldintheGitSCMblank.ThiswillcauseJenkinstoconsideranychangeonanybranchforbuil

git - 如何 merge 来自包含另一个目录子集的分支的更改?

我会尽量保持简短。我们有一个充当SVN镜像的git存储库(由BitBucket管理)。这个repo包含公司自开始以来的每个项目,让每个开发人员克隆这不是一个合理的要求(25+33GiB完整克隆和15+GiB浅层克隆)但即使那样,我们也不不需要整个存储库的完整克隆,只需要其中目录的一个子集。使用git-subtree,我设法分离出所有感兴趣的目录,并认为我们可以使用git-subtreeadd将这些目录添加回我们的本地存储库。这个过程对svn存储库是透明的。这效果很好,而且大小更易于管理(9+6GiB完整克隆和8GiB浅克隆)。问题是我不知道我们如何才能将我们在这些“部分克隆”中所做的更