我加入了一个项目,其中master分支已经有一段时间没有被接触到了。开发发生在另一个分支上,没有偶尔合并。现在,我想重新建立一个想法,即拥有一个用于稳定代码的master分支和一个用于正在进行的工作的developer分支。
因此,我合并了发展分支并解决了冲突,但是注意到分支之间仍然存在差异。大约40个文件存在于development分支中,而git merge并未考虑这些文件。在Differences between 2 branches after merge: GIT中找到的解释似乎合法,但现在我的问题是:
如何解决差异,并将缺失的文件从developer分支带入master分支?
答案 0 :(得分:1)
显然,这已经作为更广泛的问题的一部分被询问和回答了。以下是总结解决方案的起源:Git Merge - Incomplete, Missing files and Folders
如上面的解释链接中所述,丢失的文件有时已在master分支中删除。恢复它们的方法是从日志历史记录中还原这些文件。
从原始帖子中提取点点滴滴,这就是我所做的:
git checkout master
git diff developBranch --name-status |grep D > ~/deleted_files
git log --name-status > ~/file_history
cat ~/deleted_files | awk '{ print $2 }' | xargs -I haha git checkout developBranch haha
git commit -m 'Restore deleted files...'
感谢上面的链接中的Quang Van,Walter Mundt和John Wu。