Git 从另一个没有历史记录的仓库中拉取

Git pull from another repository without history

我来这里是因为:我尝试将我的存储库连接到另一个存储库以保留 "up to date" 但我试图不提取另一个存储库的整个历史...

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

现在我想用 laravel/master 的最新提交更新我的存储库,但每次我从 laravel/master 拉取时,我的 "git log" 都充满了提交(大约 4400),我不想要这个。 (我是个疯子,想要一个干净的存储库和对一切的大量控制^^)

在理想的情况下,我想只更新文件,然后只一次提交'Update from Laravel/master'。 没有任何其他我根本不需要的额外历史条目或参考。

试了没成功:

git pull --depth 1 laravel master

我还有一个额外的历史条目...(最后的laravel/master 提交消息并没有成功修改...可能遗漏了什么)

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

P.S :

澄清一下,我希望得到与我相同的结果:

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

所以我觉得终于有了这段历史:

代替:

你看到我希望的了吗?

这可能有点像 "hack" 的做法。但是,您可以 git 从该主回购中拉出,然后 rm 文件夹中的 .git 文件,然后 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 

然后我从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 : 我写 commit 1/2/3 当然是为了简化

然后要格外确定:

git push origin master

并查看存储库网页

http://i.stack.imgur.com/7XMzb.jpg (对不起没有放img的权利)

我没问题=)

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