用导入项目的方式,导入了一个github上的自己的一个项目,现在要提交了,但本地的和github上的就没有共同祖先,无法提交了。
在svn的话,直接加url地址,就可以比较异同,然后提交,无所谓共同祖先问题,但目前的话,会提示“
fatal: refusing to merge unrelated histories”,就算allow-unrelated-histories,但这样的后果是项目的全部文件都当作这次提交的内容,而实际上这次提交的内容应该就是几个不同的文件而已。
简而言之就是:git如何实现svn那种,两个不同的项目,直接比较异同给出不一样的文件,方便我提交?
本地目录下初始化Git仓库,commit本地代码,然后pull远程仓库的,会自动合并 出现冲突会提示,如果有冲突解决好然后push搞定
如果怕出现冲突或者需要自己手动合并 那就用fetch 拉取远端不合并 需要手工进行合并
引用来自“angelsinklow”的评论
本地目录下初始化Git仓库,commit本地代码,然后pull远程仓库的,会自动合并 出现冲突会提示,如果有冲突解决好然后push搞定
如果怕出现冲突或者需要自己手动合并 那就用fetch 拉取远端不合并 需要手工进行合并
引用来自“何应清”的评论
呃,因为他们并无相同的祖先,所以直接pull的话,会提示“fatal: refusing to merge unrelated histories”.allow-unrelated-histories这种倒是可以,但是和强行提交没什么区别:全部文件都会提示冲突,这样就会把整个项目里的文件都当作新文件提交,而不像svn那样,无所谓是否有共同祖先,程序会帮自动识别改动过的,而不是改没改都当新的...
引用来自“angelsinklow”的评论
本地目录下初始化Git仓库,commit本地代码,然后pull远程仓库的,会自动合并 出现冲突会提示,如果有冲突解决好然后push搞定
如果怕出现冲突或者需要自己手动合并 那就用fetch 拉取远端不合并 需要手工进行合并
allow-unrelated-histories这种倒是可以,但是和强行提交没什么区别:全部文件都会提示冲突,这样就会把整个项目里的文件都当作新文件提交,而不像svn那样,无所谓是否有共同祖先,程序会帮自动识别改动过的,而不是改没改都当新的...
首先确保有跟踪远端分支, 然后试试rebase中文衍合合并, 我现在出现这个问题, 然后发现没有跟踪远端分支, 然后跟踪后又不行, 然后试了下合并用衍合合并就能合并成相同的先祖了.然后再提交就OK了.希望能解决你的问题
土办法:把远程clone下来,然后删掉,add自己的代码 pull 合并...
git fetch --all //只是下载代码到本地,不进行合并操作
git reset --hard origin/master //把HEAD指向最新下载的版本