2014-06-28 109 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手冊中的方式推送這個包。所以我想把這個軟件包推到一個單獨的回購站。 –