Git从另一个没有历史记录的存储库中提取
我来这里是因为:我试图将我的存储库连接到另一个存储库以保持“最新”,但我试图不提取另一个存储库的全部历史 为了解释,我使用了Laravel 5(),并创建了我自己的master(它是Laravel/v5.0.1的一个分支)来定制内部的一些东西(如css框架、一些通用布局等)->称之为“azurky repo/master” 现在我想用laravel/master的最新提交更新我的存储库,但每次我从laravel/master中提取时,我的“git日志”中都充满了提交(大约4400个),我不想这样。(我是一个疯子,想要一个干净的存储库和对一切的大量控制^^) 在理想的情况下,我只想更新文件,然后用类似“更新自Laravel/master”的消息进行一次提交。 没有任何其他我根本不需要的额外历史记录条目或参考 未获成功:Git从另一个没有历史记录的存储库中提取,git,laravel,github,repository,revision-history,Git,Laravel,Github,Repository,Revision History,我来这里是因为:我试图将我的存储库连接到另一个存储库以保持“最新”,但我试图不提取另一个存储库的全部历史 为了解释,我使用了Laravel 5(),并创建了我自己的master(它是Laravel/v5.0.1的一个分支)来定制内部的一些东西(如css框架、一些通用布局等)->称之为“azurky repo/master” 现在我想用laravel/master的最新提交更新我的存储库,但每次我从laravel/master中提取时,我的“git日志”中都充满了提交(大约4400个),我不想这样
git pull --depth 1 laravel master
我还有一个额外的历史记录。。。(上一条laravel/master提交消息未成功修改…可能遗漏了某些内容)
有人有主意了(或者我是唯一一个尝试这种事情的疯子…)
附言:
为了澄清,我希望得到与以下相同的结果:
- 克隆my repo的最新版本(azursky repo/master)
- 从laravel/master下载所有更新的文件
- 用此文件覆盖我的存储库
- 手动合并每个修改的文件
- 然后通过“来自拉拉维尔/马斯格特的更新”推送到azursky repo/master
- Rev1:“初始提交-Laravel v5.0.1”
- 修订2:“基金会5/SASS/Gulp的实施”
- Rev3:“从laravel/master更新”
- Rev1:“初始提交-Laravel v5.0.1”
- 修订2:“基金会5/SASS/Gulp的实施”
- 来自Laravel/master的4400个提交
- Rev4403:“更新laravel/master时产生的合并冲突”(类似于此)
git init
,然后git push-force
到你的回购版本。终于得到了它
答案很简单:
git reset HEAD
对不起,我对git真的很陌生,所以今天下午在阅读了关于这类主题的问题后,我找到了解决方案。没有完全了解索引,现在更好了=)
因此,从一开始,我就有一个新的回购协议,只有一个初始承诺:
git clone git@mygitserver:myuser/myrepo
git log
commit 1
Initial commit - Laravel v5.0.1
然后我从拉威尔/大师那里拉车
git remote add laravel https://github.com/laravel/laravel.git
git pull laravel master
git reset HEAD
git add --all
git commit -m 'Update from laravel/master'
git log
commit 2
Update from laravel/master
commit 1
Initial commit - Laravel v5.0.1
看起来没问题,然后我再做一个修改。平心而论:
git rm -rf resources/assets/less/
git add --all
git commit -m 'Suppression de bootstrap'
git log
commit 3
Suppression de bootstrap
commit 2
Update from laravel/master
commit 1
Initial commit - Laravel v5.0.1
注:我写commit 1/2/3当然是为了简化
然后要特别确定的是:
git push origin master
并查看存储库网页
(对不起,我没有权利放置img)
对我来说没关系()
最后,我喜欢git的工作方式=)这听起来有点像过早的优化。Git的历史非常擅长压缩东西。在拉威尔的例子中,这是160万对1200万。考虑到有超过4000次提交,没有太大的区别。不,这不是优化的问题,我只是根本不想要这个额外的提交历史记录。就好像我下载了更新的文件,并用手动方式覆盖和合并了我的存储库一样。但我很欣赏自动合并,这就是为什么我要用Git来做,我不是受虐狂。下面我要澄清一下(因为我无权编辑=()你应该始终能够编辑你自己的问题。不要在答案中添加澄清,它可能会被删除。为什么不克隆Laravel并从那里开始工作,而不是在“初始提交”中复制它?这样你就可以一直处理你自己的东西,偶尔将当前的发展情况从Laravel合并到你自己的分支中。编辑问题以使其更清楚。关于你的回答,我会说“可能”,但我真的不明白你想解释什么^^这次“合并到我自己的分支中”会产生什么结果?是的,我认为它可以完成这项工作,但这是一种“艰难的方式”^^^我要等着看是否有人有一个更温和的想法=)基于你自己的答案,在处理了一些问题后,比如清理标签,我创建了一个