更新主分支使用另一个没有包含所有文件的分支?

By simon at 2018-02-07 • 0人收藏 • 62人看过

我是git新手,这是我的情况: 我有两个分支:   1. master - 包含README.md,tests/all/*.py,package/*.py   2. unit-testing - 包含tests/units/*.py,package/*.py unit-testing分支**不包含README.md和tests/all/*.py 其中包含master。而且,内容在unit-testing的 package/*.py是较新的。 我要unit-testing的package/*.py的新内容覆盖 旧的内容master的package/*.py.这可以b由我完成。但是我 还需要master中的文件,如不在的README.md文件 unit-testing保持原样e在master。 但是,当我尝试merge unit-testing到master,我看到了 该文件不在unit-testing从master中删除。我无法合并 作为unit-testing包含较新的内容master到unit-testing。 更多spe实际上,我运行以下命令: $ git checkout master $ git merge unit-testing Git从master中删除README.md和tests/all/*.py。

4 个回复 | 最后更新于 2018-02-07
2018-02-07   #1

我觉得你从“* master ”分支创建了“单元测试*”分支。如果 是的,你可以将主分支合并到单元测试中科。有时候会这样 给你冲突。化解矛盾,再次融入“单元测试” “主人”分支。它的在做这件事之前,最好先得到项目的备份。

git checkout unit-testing
git merge master
现在如果你遇到冲突解决他们,
git commit
git checkout master
git merge unit-testing

2018-02-07   #2

我觉得你从“* master ”分支创建了“单元测试*”分支。如果 是的,你可以将主分支合并到单元测试中科。有时候会这样 给你冲突。化解矛盾,再次融入“单元测试” “主人”分支。它的在做这件事之前,最好先得到项目的备份。

git checkout unit-testing
git merge master
现在如果你遇到冲突解决他们,
git commit
git checkout master
git merge unit-testing

2018-02-07   #3

它似乎是unit-testing,或者更具体地说,它曾经提交过 README.md和tests/all/*.py在它的历史,但他们然后被删除。什么时候 你合并unit-testing,这些删除也被引入 master等README.md一个d tests/all/*.py已从中删除 master。 如果你想保留被删除的文件在master,这里有两个 解决方案如果你打算合并unit-testing到master但保留一些 文件不变。 首先:

git checkout master
git merge unit-testing --squash
git checkout HEAD -- README.md tests/all/*.py
git commit
这样,昌除README.md和tests/all/*.py以外的unit-testing 介绍给master.但是当你看他们的历史g拉斐, unit-testing和master仍然分歧,好像他们没有 合并。 第二:
git checkout master
git merge unit-testing
git checkout ORIG_HEAD -- README.md tests/all/*.py
git commit
这样,所有掌握了unit-testing的变化,所以在 先删除README.md和tests/all/*.py。但是,他们一个重新带来 回到git checkout ORIG_HEAD -- README.md tests/all/*.py。 这两种方法几乎对文件做同样的事情,但创建不同 历史。你cou在这两种情况下,查看
git checkout master
git merge unit-testing
git checkout ORIG_HEAD -- README.md tests/all/*.py
git commit
26的差异。 如果您想尝试后返回,请运行git reflog master 和git reflog unit-testing找出他们在哪个提交。假设 master是abc111,你可以做到返回:
git checkout master
git reset abc111 --hard

2018-02-07   #4

你接受的答案可能导致你找到一个解决方案,另一个 回答事实上描述你的情况和also合作导致一个解决方案; 但是他们都在治疗症状。 分支不用于将测试代码与生产分离代码(或 更一般地来自另一部分的项目的一部分)。如果你创建一个 你在其中删除了相当大一部分的分支你的项目,你应该 重新考虑你的工作流程。 你有什么想解决的测试代码在自己的分支?哈已经 你看到更多的典型解决方案,无论你想要的任何问题 解决? 你打算如何保留测试代码?与主项目代码一样, 他们每个人都改变?你怎么知道在测试分支上提交了哪个which 应该测试哪个公司在主要分支mmit? “第五次提交测试第五 提交“?会限制你使用git,直到最终失败。”Documenta重刑 基于标签或提交ID或一些这样的“?不是一个实际的纪律保持 向上。 如果你解决usi的根本问题以某种方式运行的分支 他们的粮食,你将不会有明确的问题。

登录后方可回帖

Loading...