2014-06-28 183 views
2

在我的Laravel应用程序中,我创建了一个数据包(位于工作台目录中)。现在我想将其发布到我的专用Bitbucket存储库,以便我可以在不同的项目中使用它,一旦准备就绪,我还想将其发布到GitHub。但我不知道如何仅将新包的内容发布到新的Bitbucket库。发布一个包到Bitbucket或GitHub

希望有人能指点我正确的方向?基于Kacy雷伊建议

这些

更新是我采取的步骤。为了避免麻烦,我创建了一个新的目录,并将该目录克隆到该目录,并将该目录推向新的回购目录。

sudo mkdir <application> 
sudo chown <user> <application> 
git clone [email protected]:<user-name>/<old-repo>.git 
git remote set-url origin [email protected]:<user-name>/<new-repo>.git 
git push origin master 

有了新的回购的建立我现在要推包(src DIR位于workbench/user-name/package-name/)到新创建的包回购。这些是我采取的步骤。

git remote add <package-name> [email protected]:<user-name>/<package-name>.git 
git checkout -b <package-name> 
git rm -r app/ artisan bootstrap/ bower.json composer.json CONTRIBUTING.md phpunit.xml public/ readme.md server.php # all files removed except the workbench dir 
git rm -r --cached workbench/ # need only the package 
git add workbench/<user-name>/<package-name>/ 
git commit -m'init' 
git push <package-name> master # want the package pushed to the new repo on its master banch 

然后所有文件都推到服务器,不只是我的回购协议的文件(甚至还不如我刚才工作台目录前面提到过):(

更新2 在Laravel IRC聊天我讨论了问题并找到了解决方案!我只需要在wordkbench/<vendor>/<package>目录中执行git init,添加新的远程,git commit和git push。

回答

2

我对此问题的理解是,您有两个回购。一个与整体项目和一个sp特别为包装。 目标是你只想推包装。

在为软件包专门添加远程回购之后,您可以切换到新分支,从索引中删除您不想推送的所有内容(也称为“分段区域”),将其提交到本地回购,然后推到你想要的远程回购。

git remote add <whateverYouWantToNameTheRemote> <URL the remote is located at> 

git checkout -b shinyNewBranch # (-b creates a new branch and switches to it) 

git rm <fileYouDontWant1> <fileYouDontWant2> ... 

# (Do a 'git add' here if you did not already add the package to the index) 

git commit -m "whatever commit message you want" 

git push <theNameYouGaveTheRemote> <branchYouWantToPushTo> 

记住git rm没有--cached选项西港岛线不仅从索引中删除文件,但它也会从工作目录中删除的文件。尽管只要您从您转换的分支中提交了这些文件,这应该不会成为问题。当您使用git checkout branchName切换回该分支时,该分支的最近提交中的任何文件都将加载到工作目录中。

+0

为了确保我对问题100%清楚,您希望推送此软件包,并且下次有人在远程仓库中做了一些类似git的克隆时,他们只会获得laravel软件包? – Kacy

+0

我只是修正了一些错别字。对不起,现在我的评论是低于你的。原来的评论:“对不起,我觉得我还不够清楚,我用它来推动整个应用程序到回购站,现在我只想推laravel软件包,或者我只需要创建一个新的回购站并替换我的常规通过'push laravel-package master'推送,其中laravel包是repo名称?我必须在哪里设置我的远程服务器才能使用这个新的(嵌套)回购? –

+0

作为我的laravel应用程序的一部分,我创建了一个包。我没有问题推动整个应用程序。但是不知道如何在workbench目录下按照laravel手册中的方式推送这个包。所以我想把这个软件包推到一个单独的回购站。 –