我在一个新项目上使用git,该项目有两个并行 - 但目前是实验性的 - 开发分支:
master:导入现有的代码库加上一些我一般都知道的mod exp1:实验分支#1exp2:实验分支#2exp1并exp2代表两种截然不同的架构方法.直到我走得更远,我无法知道哪一个(如果有的话)会起作用.当我在一个分支中取得进展时,我有时会在另一个分支中进行编辑,并且只想合并那些.
将选择性更改从一个开发分支合并到另一个开发分支而将其他所有内容合并的最佳方法是什么?
我考虑过的方法:
git merge --no-commit 然后手动取消大量编辑,我不想在分支之间做出共同点.
手动将公共文件复制到临时目录,然后git checkout移动到另一个分支,然后更多地手动从临时目录复制到工作树中.
以上的变化.暂时放弃exp分支并使用另外两个本地存储库进行实验.这使得手动复制文件更加简单.
所有这三种方法都显得乏味且容易出错.我希望有更好的方法; 类似于过滤器路径参数的东西会git-merge更具选择性.
我需要在我的项目的Git存储库中保留一份WordPress.
我想使用Git从GitHub下载WordPress更新,然后通过git push和/或推出这些更新git svn dcommit.
我目前有一个使用Git子模块的解决方案,它的工作原理; 但现在我需要将我的最新项目部署到仅支持SVN的服务器,而且我无法直接访问该服务器.因此,子模块已经出局.
我已经对Git的子树合并策略进行了大量阅读,我认为这是正确的解决方案; 但我读过的所有内容都希望我能够关注一个远程分支,并始终下载最新的代码.
相反,GitHub上的WordPress使用它的master分支 - 事实上,它的所有分支 - 用于开发; 版本被标记,但就是这样.从官方上讲,所有分支机构都处于永久的阿尔法状态.
我想我需要弄清楚的是如何子树合并标签.
现在,我这样做是为了阅读WordPress 3.5 webroot/wordpress(和命名空间WordPress标签),它的工作原理如下:
$ git remote add -t master --no-tags wordpress git://github.com/WordPress/WordPress.git
$ git config --add remote.wordpress.fetch +refs/tags/*:refs/tags/wordpress/*
$ git fetch wordpress
warning: no common commits
remote: Counting objects: 138547, done.
remote: Compressing objects: 100% (28297/28297), done.
remote: Total 138547 (delta 110613), reused 137367 (delta 109624)
Receiving objects: 100% (138547/138547), 46.05 …Run Code Online (Sandbox Code Playgroud)