Git从另一个没有历史记录的存储库中拉

时间:2015-03-08 23:08:15

标签: git laravel github repository revision-history

我在这里是因为:我尝试将我的存储库连接到另一个存储库,以便保持最新状态"但是我试图不把其他回购的整个历史拉下来......

为了解释,我使用Laravel 5(https://github.com/laravel/laravel)并创建了我自己的主(它是laravel / v5.0.1的一个分支)来自定义内部的一些东西(比如css框架,一些通用布局)等等) - >称之为" azurky-repo / master"

现在我想用最新的laravel / master提交更新我的存储库,但每次我从laravel / master,我的" git log"充满了提交(约4400),我不想要这个。 (我是一个疯狂的人,想要一个干净的存储库,并且对所有事情进行大量控制^^)

在一个理想的世界中,我想仅更新文件,然后只需使用'从Laravel / master' 。 没有任何其他额外的历史记录或参考,我根本不需要。

尝试没有成功:

git pull --depth 1 laravel master

我还有一个额外的历史记录条目...(最后一个laravel / master提交消息,并没有成功修改......可能错过了一些东西)

有人有想法(或者我是唯一一个尝试这样的事情的疯子......)?

P.S:

为了澄清,我希望得到与我一样的结果:

  • 克隆我的仓库的laster版本(azursky-repo / master)
  • 从laravel / master
  • 下载所有更新的文件
  • 使用此文件覆盖我的存储库
  • 手动合并每个修改过的文件
  • 然后使用"从laravel / masgter"
  • 更新到azursky-repo / master

事实上,我不是受虐狂,也不想绕过git的合并能力...... ^^

所以我觉得最后有这段历史:

  • Rev1:"初始提交 - Laravel v5.0.1"
  • Rev2:" Foundation5 / SASS / Gulp"
  • 的实施
  • Rev3:"从laravel / master"
  • 更新

取代:

  • Rev1:"初始提交 - Laravel v5.0.1"
  • Rev2:" Foundation5 / SASS / Gulp"
  • 的实施
  • 来自Laravel / master
  • 的4400次提交
  • Rev4403:"合并冲突更新laravel / master" (像这样)

你看到了我的希望吗?

2 个答案:

答案 0 :(得分:3)

终于搞定了!

答案很简单:

git reset HEAD

对不起,我是git的新手所以今天下午我在阅读了有关此类主题的问题后找到了解决方案。没有理解索引的一切,现在它更好=)

所以从一开始我就有一个新的回购只有一个初始提交:

git clone git@mygitserver:myuser/myrepo
git log
commit 1
   Initial commit - Laravel v5.0.1 

然后我从laravel / master

拉出来
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

N.B:我写提交1/2/3以简化课程

然后再确定:

git push origin master

并查看存储库网页

http://i.stack.imgur.com/7XMzb.jpg (抱歉没有权利放置img)

对我来说没问题=)

最后我喜欢git的工作方式=)

答案 1 :(得分:0)

这可能是一种“黑客”方式。但是,您可以从主要仓库中获取git,然后将文件夹中的.git文件,然后git init然后git push -force添加到您的仓库版本,每次您希望从主仓库中提取。