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

Azu*_*sky 5 git github repository revision-history laravel

我在这里是因为:为了保持“最新”,我尝试将我的存储库连接到另一个存储库,但是我试图不提取其他存储库的全部历史记录...

为了说明,我使用Laravel 5(https://github.com/laravel/laravel),并创建了自己的master(这是laravel / v5.0.1的分支)来自定义内部的某些内容(例如CSS框架,一些通用布局等)->称其为“ azurky-repo / master”

现在,我感觉要使用laravel / master的最新提交来更新我的存储库,但是每次我从laravel / master提交时,我的“ git log”都充满了提交(大约4400),我不想要这个。(我是一个疯子,他想要一个干净的存储库,并且对所有内容都拥有很多控制权^^)

在理想的世界中,我只想更新文件,然后仅执行一条消息,例如“从Laravel / master更新”。没有任何其他我不需要的额外历史记录条目或引用。

尝试不成功:

git pull --depth 1 laravel master
Run Code Online (Sandbox Code Playgroud)

我还有一个额外的历史记录...(最后一个laravel / master提交消息,但未成功修改...也许错过了一些东西)

有人有一个主意(或者我是唯一尝试过这种事情的疯子吗?)?

PS:

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

  • 克隆我的仓库的最新版本(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的冲突”(类似这样)

你看到我的希望了吗?

Azu*_*sky 5

终于明白了!

答案很简单:

git reset HEAD
Run Code Online (Sandbox Code Playgroud)

抱歉,我对 git 真的很陌生,所以我今天下午在阅读了有关此类主题的问题后找到了解决方案。不了解有关索引的所有内容,现在更好了 =)

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

git clone git@mygitserver:myuser/myrepo
git log
commit 1
   Initial commit - Laravel v5.0.1 
Run Code Online (Sandbox Code Playgroud)

然后我从 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
Run Code Online (Sandbox Code Playgroud)

看起来没问题,然后我做了另一个修改。要确定:

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
Run Code Online (Sandbox Code Playgroud)

注意:我写了 commit 1/2/3 来简化当然

然后要特别确定:

git push origin master
Run Code Online (Sandbox Code Playgroud)

并检查存储库网页

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

这对我来说没问题 =)

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