GIT替换分支的内容

时间:2012-01-29 18:57:54

标签: git git-merge

我有一个以下分支的裸仓库设置:

dev
*master
stage
prod

我已将其克隆到工作副本并发出以下命令:

git checkout -b stage remotes/origin/stage
git checkout -b dev remotes/origin/dev

我需要做的是将我的临时分支的全部内容推送到我的dev分支。基本上,这是第一次设置,我开始将生产代码推送到临时分支(完美地工作),现在我将我的登台代码推送到dev分支。

我遇到的问题是二进制文件的合并冲突。我怎么告诉git甚至没有看到合并冲突,而只是直接将stage分支的内容复制到dev分支?

3 个答案:

答案 0 :(得分:3)

--s ours的{​​{1}}选项听起来恰到好处。

http://book.git-scm.com/5_advanced_branching_and_merging.html

答案 1 :(得分:2)

您有几个选择:

  1. 与“我们的”策略合并
  2. 正常合并,然后使用'git checkout HEAD ^ - 。'
  3. 修改合并提交
  4. 使用'git reset --hard staging'
  5. 重置dev分支以指向分段
  6. 不要合并,只是在'git checkout staging - '后提交暂存中的内容。'
  7. 选项1和3可能是最好的。你需要知道DAG(google“git for computer scientist”)。

    我们使用此工作流程:https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR

    对我们来说非常好。

答案 2 :(得分:1)

决定解决问题的最简单方法是:

将repo克隆两次,一次进入dev文件夹一次进入stage文件夹 然后

cd dev
git rm -rf *
git commit -a -m "take that n00b repo!"
git push
cp -r ../stage/* .
git add *
git commit -a -m "how you like dem apples??"
git push

非常优雅,但它完成了工作,并且比处理git的合并冲突要痛苦得多。