相关疑难解决方法(0)

Git Merge - 不完整,缺少文件和文件夹

我试图将dev分支合并为master.

git checkout master    
git pull . dev
Run Code Online (Sandbox Code Playgroud)

一切似乎进展顺利,虽然有冲突我修复了这些并承诺.但是,当我检查这个新合并的工作树时,从dev中丢失了很多文件夹和文件.

git status  // Shows conflicts & doesn't list some files/folders.    
git commit -a 

Created commit 55ffdd1: Merge branch 'dev' into master  

git diff dev --name-status
Run Code Online (Sandbox Code Playgroud)

生产:

D       folders/lm.gif
D       folders/lmh.gif
...
Run Code Online (Sandbox Code Playgroud)

所以没有出现在'git status'上的文件/文件夹.当我修复合并的冲突时,它也没有出现在最后.

此外,当我再次尝试合并时,它说:

git merge dev    
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)

然而,master分支显然缺少dev分支中的文件/文件夹.这是为什么?不应该添加该文件夹及其所有内容吗?在dev分支上正在跟踪'文件夹',所以当我进行合并时它不应该被拉过来吗?

当先前有合并冲突时,git会停止合并过程并跳过一堆文件/文件夹吗?

开发分支有很多变化,过去我可能用git搞砸了某些东西,现在某些文件/文件夹不会合并吗?

(当我第一次创建开发分支时,我不知道我在做什么,并做了重置,恢复等疯狂的事情)

希望你们中的一个git guru在这里堆栈溢出知道答案.:)

谢谢,Quang


回答

谢谢沃尔特,是的,这就是发生的事.

在做了一些调查之后,我发现发生的事情有点复杂.结果表明.

  1. dev从master分支,它拥有所有文件.
  2. 第三个分支,我们称之为"已清理",分支开发.
  3. clean branch删除了所有文件.
  4. 清理分支合并(或东西?)与主人.此时文件已从master中删除.'清洁'分支消失了.
  5. 在开发,文件仍然存在,我继续添加到这个分支,编辑文件很长一段时间.
  6. dev与master合并,之前删除的所有文件都已消失.

希望这能帮助除了我以外的人,他们学到了很多关于如何使用git log,git show,git reflog试图调试发生的事情.

谢谢!

怎么修

所以我这样做是为了将以前删除的dev中的所有内容合并到master上.

  1. 获取已删除的所有文件/文件夹(在开发但未在新合并的主服务器上) git diff dev --name-status | grep D …

git merge pull file

37
推荐指数
1
解决办法
3万
查看次数

标签 统计

file ×1

git ×1

merge ×1

pull ×1