相关疑难解决方法(0)

如何在Git中有选择地合并或选择来自另一个分支的更改?

我在一个新项目上使用git,该项目有两个并行 - 但目前是实验性的 - 开发分支:

  • master:导入现有的代码库加上一些我一般都知道的mod
  • exp1:实验分支#1
  • exp2:实验分支#2

exp1exp2代表两种截然不同的架构方法.直到我走得更远,我无法知道哪一个(如果有的话)会起作用.当我在一个分支中取得进展时,我有时会在另一个分支中进行编辑,并且只想合并那些.

将选择性更改从一个开发分支合并到另一个开发分支而将其他所有内容合并的最佳方法是什么?

我考虑过的方法:

  1. git merge --no-commit 然后手动取消大量编辑,我不想在分支之间做出共同点.

  2. 手动将公共文件复制到临时目录,然后git checkout移动到另一个分支,然后更多地手动从临时目录复制到工作树中.

  3. 以上的变化.暂时放弃exp分支并使用另外两个本地存储库进行实验.这使得手动复制文件更加简单.

所有这三种方法都显得乏味且容易出错.我希望有更好的方法; 类似于过滤器路径参数的东西会git-merge更具选择性.

git git-merge git-patch git-cherry-pick

1374
推荐指数
22
解决办法
69万
查看次数

git子树错误"致命:拒绝合并不相关的历史"

我想弄清楚'git subtree'是如何工作的.我跟着上四面八方此页面,但我总是想在我自己的回购协议("第二步")合并子树项目的错误:fatal: refusing to merge unrelated histories.

我已经阅读了这篇文章,当我使用该--allow-unrelated-histories选项时,似乎工作正常.但是,我不确定是否应该使用它...我的印象是,子树的重点是在一个存储库中有不相关的历史记录,所以必须添加选项会感到奇怪.我应该添加它,还是我做错了什么?

我在osx 10.11.6上使用git v2.9.3

git git-subtree

8
推荐指数
4
解决办法
9170
查看次数

如何在不使用子模块的情况下在我的存储库中添加/升级​​/降级远程Git项目?

我需要在我的项目的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)

git github git-svn git-pull git-merge

7
推荐指数
1
解决办法
3142
查看次数