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

阿祖斯基

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

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

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

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

尝试不成功:

git pull --depth 1 laravel master

我还有一个额外的历史记录...(最后一条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的冲突”(类似这样)

你看到我的希望了吗?

阿祖斯基

终于明白了!

答案很简单:

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

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

然后要确保:

git push origin master

并检查存储库网页

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

我没关系=)

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

git在保留历史记录的同时将目录移动到另一个存储库

将Git存储库内容移动到另一个存储历史记录的存储库

如何将文件从一个git repo移到另一个(不是克隆),保留历史记录

Git:两个项目,每个项目都在一个仓库中。结合单一线性历史记录的子目录中的新仓库

如何从具有不同历史记录的另一个存储库中重新提交提交?

如何压缩所有提交历史记录并推送到另一个远程存储库中?

Git:将文件历史记录从一个存储库复制到另一个存储库

根据另一个表中的信息建立对行的更改的历史记录跟踪

Git:将一个分支的现有提交插入另一个分支的历史记录

命令“ git reset --hard <commit>”是否会删除另一个分支中的提交历史记录?

删除并在另一个文件夹中重新创建后,保留文件的Git历史记录

git:将一个存储库的历史记录复制(复制)到另一个存储库的目录中

将文件移动到具有提交历史记录的另一个文件夹?

如何维护提取到另一个文件的文件内容的Git更改历史记录?

如何将一个git历史记录附加到另一个历史记录?

如何保留一个excel工作簿或工作表中的数据更改历史记录到另一工作簿或工作表的历史记录

将Git存储库合并到另一个保留所有历史记录的存储库中

查找两个没有git历史记录的git仓库的分支

如何使用git format-patch和git am将文件从一个git repo移到另一个保存历史记录

如何通过crontab将linux中的历史记录命令复制到另一个文件

git从仓库历史记录中删除了一个大型子目录,该子目录在几次提交之前已被删除

如何将特定文件从一个 git repo 复制到另一个,保留历史记录

克隆一个分支,保留历史记录,删除其他仓库的附件

如何恢复被另一个文件替换的文件的 SVN 历史记录?

将一个功能分支与另一个合并,可选择在没有提交历史记录的情况下恢复合并

将一个 git 仓库复制到另一个有历史记录的仓库

从历史记录中删除一个提交

将 git repo 的快照复制到另一个没有历史记录的 repo

将文件夹从一个仓库复制/移动到另一个仓库,同时在 Git 中保留历史记录