WindowsでLaravel開発をしていましたが、Macに乗り換えたので、このプロジェクトフォルダをMacのローカル環境でも開発できるようにした時のメモです。
前提
Windowsの開発環境で、Laradock を使ってプロジェクトを作成して、書いたソースコードはCodeCommitのリモートリポジトリにプッシュしていました。
しかし、.gitignoreでnode_modules/ などは見ないようにしているので、ただクローンするだけでは動きません。
そのため、一度ローカルでLaravelプロジェクトを作成し、そのフォルダに、リモートにあるコードを差分だけ取り込むようにします。
最終的には以下のような構成にします。
laravel_projects/ ├── laradock/ └── my-portfolio/ /* 今回はこれを作る */
ローカルにLaravelプロジェクトを新規作成する
まずはローカルにLaravelのプロジェクトフォルダを作成しましょう。
作成した時のメモはこちらの記事にまとめてあります。
Gitの初期設定
ユーザー登録をして、git init でローカルリポジトリを新しく作ります。
(これをしないと、fatal: not a git repository というエラーが出ます)
$ git config --global user.name "xxx" $ git config --global user.email "xxx@gmail.com" $ git init initialized empty Git repository in /Users/takao/laravel_projects/my-portfolio/.git
※この時、「”git”コマンドを実行するには、コマンドライン・デベロッパ・ツールが必要です。ツールを今すぐインストールしますか?」というポップアップが表示された場合は、インストールをクリックしてから上記作業を行ってください。
次に、リモートリポジトリのアドレスを origin として登録 & ユーザ名とパスワードを保存します。
別記事に書いたので、こちらを参照してください。
※リモートリポジトリがCodeCommitでなくGithubにある場合は、ただgit initするだけで大丈夫だと思います。
リモートリポジトリを差分だけ持ってくる
最後に、リモートリポジトリの内容をローカルリポジトリに差分だけ持ってきます。
$ git fetch --all Fetching origin $ git reset --hard origin/master HEAD is now at xxx
上記のコマンドで、
fetch でリモートのブランチとコミット履歴をリモート追跡ブランチ(origin/master)に反映し、
reset –hard でHEADをorigin/masterに合わせてあげています。
試しにorigin masterをプルしてみると、リモートリポジトリと同じ状態になっているのが確認できると思います。
$ git pull origin master From https://hogehoge * branch master -> FETCH_HEAD Already up to date.
ちなみに、fetchとresetをせずに、いきなりpull origin masterすると、
error: The following untracked working tree files would be overwritten by merge:
というエラーが出ます。
以上で無事にローカルにもプロジェクトフォルダを共有できました。
余談
無事に今回の作業を終了した後、php artisan migrate –seed を実行したら、以下のようなエラーが出るようになりました。
Illuminate\Contracts\Container\BindingResolutionException : Target class [UsersTableSeeder] does not exist.
今回行った作業が原因なのか?
対処として、migrateの前に以下のコマンドを実行したら直りました。
# composer dump-autoload
参考URL
エラー:fatal: Not a git repository (or any of the parent directories): .git 対処方法
git fetch コマンドの使い方と、主要オプションまとめ
コメント