强制合并分支,忽略覆盖的文件

时间:2014-12-13 03:35:00

标签: xcode git merge

我有一个我正在开发的应用程序的git存储库。我创建了一个主分支,现在我想将它合并回主人。它拒绝这样做是因为某些文件将被覆盖,但这些文件甚至不应该被版本控制跟踪。

如何从版本控制中删除这些文件,并强制进行此合并?我已经提交了几次文件但当然它不断变化,因为它是一个用户界面状态文件。我尝试丢弃更改,然后立即尝试合并,但每次都得到相同的错误。最近一次,它现在提到了一个关于工作树文件的错误,我不知道那是什么,如果我可以覆盖它。

基本上,我希望整个分支覆盖master - 在master中没有任何东西,因为我直接从它分支,然后我从未修改过master。

The working copy "app name" failed to merge.

error: Your local changes to the following files would be overwritten by merge:
app name.xcodeproj/xcuserdata/Administrator.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
Please, commit your changes or stash them before you can merge. 

error: The following untracked working tree files would be overwritten by merge:
app name.xcodeproj/project.xcworkspace/xcshareddata/app name.xccheckout 
Please move or remove them before you can merge.
Aborting

1 个答案:

答案 0 :(得分:0)

执行此操作的一种简单方法是删除旧的master分支,并从dev分支创建一个名为master的新分支。:

  • git checkout dev
  • git branch -D master
  • git checkout -b master
  • git push -f origin master

回到这里的问题:

  

我已经提交了几次文件,但当然它不断变化   因为它是用户界面状态文件

如果这些文件可以动态地从代码中重新生成,那么就不需要在git中跟踪它们。使用gitgit rm --cached filename移除它们,使用git commit -m "msg"提交删除/取消跟踪,并使用您的开发分支上的echo filename >> .gitignore将它们放入您的gitignore。