将包发布到Bitbucket或GitHub

时间:2014-06-28 14:09:00

标签: git laravel laravel-4 package bitbucket

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

希望有人能指出我正确的方向吗?

根据Kacy Raye建议进行更新

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

sudo mkdir <application>
sudo chown <user> <application>
git clone git@bitbucket.org:<user-name>/<old-repo>.git
git remote set-url origin git@bitbucket.org:<user-name>/<new-repo>.git
git push origin master

使用新的repo设置我现在想要将包(src dir位于workbench/user-name/package-name/)推送到新创建的包repo。这些是我采取的步骤。

git remote add <package-name> git@bitbucket.org:<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

然后所有文件都被推送到服务器,而不仅仅是我的repo文件(就像我之前提到的工作台目录一样):(

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

1 个答案:

答案 0 :(得分:2)

我对这个问题的理解是你有两个回购。一个是整个项目,一个是专门用于包装的。 目标是你只想推包。

在专门为包装添加远程仓库后,您可以切换到新分支,删除您不想从索引中推送的所有内容(也称为&#34;暂存区域&#34;) ,将其提交到您的本地仓库,然后将其推送到您想要的远程仓库。

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切换回该分支时,您最近为该分支提交的任何文件都将加载到工作目录中。