将Git仓库克隆到新仓库中 - 无需提交历史记录
因此,我试图让我的头绕过Git,并且有需要(为什么我有这个需求我不会进入)能够采取文件从一个回购,通过命令行,并将它们放入一个全新的存储库,没有采取所有以前的提交历史。将Git仓库克隆到新仓库中 - 无需提交历史记录
我现在想要做的是git init
创建一个新的存储库,然后从我现有的存储库中获取文件,无论是使用克隆还是子树(我还没有充分考虑这个问题,可能会吠叫错误的树),然后添加,提交,然后将它们推送到我的新存储库。
git init
--- get the files from stock repo ---
git add .
git commit -m 'Initial commit'
git remote add origin <url of my new repo>
git push -u origin master
我的仓库都在到位桶,如果有差别,
您可以克隆旧仓库,如:
git clone [email protected]:username/repository.git
,然后你删除的git目录:
rm -R .git/
现在你建立新的版本:
git init
工作完美,谢谢! – Tom 2014-11-17 14:12:38
如果从股票回购某处克隆这些文件,你可以做:
cd yourNewRepo
git --work-tree=/path/to/stock/repo add .
git commit -m 'Initial commit'
这意味着:您正在考虑将/path/to/stock/repo
的文件作为您的新回购的工作树(仅适用于git add
步骤)
一旦新回购的索引已经记录了这些文件,您可以忘记股票回购,并在新回购库中提交这些新文件(没有任何历史记录)。
如果您已经克隆了TMI repo,您可以重置您的克隆主人,使其只有那个人的提示才能提交历史记录y与
git branch -f master `git commit-tree -m "My new initial commit" origin/master^{tree}`
然后按照惯例,修复遥控器和推送历史,只要你喜欢。
(编辑:如果你已经有了主人签出git branch
不会想重写裁判,但你不接触的内容可言,所以你可以绕过所有瓷器的手把手的指导,并就去做
git update-ref -m "Truncating history" refs/heads/master \
`git commit-tree -m "My new initial commit" origin/master^{tree}`
)
你能不能只是rsync的其他地方的文件,然后'混帐init'呢? – 2014-11-14 18:30:24
是的,如果在回购中有过多的发誓词和这样的话,它看起来不专业:P – 2014-11-14 18:31:53