Memo

メモ > サーバ > 各論: Git > 既存のディレクトリにCLONE

■既存のディレクトリにCLONE
空ではないディレクトリにCLONEしようとするとエラーになる 以下の手順なら対応できた 既存のディレクトリに git clone するには - Corredor http://neos21.hatenablog.com/entry/2016/02/07/000000 git pull を強制し、リモートでローカルを上書きする方法 | WWWクリエイターズ http://www-creators.com/archives/1097 以下、実際に作業したときのメモ
# su -s /bin/bash - apache $ cd /var/www/html/bitbucket-test $ git clone git@bitbucket.org:refirio/test.git /var/www/html/bitbucket-test
本来は上記手順でCLONEできる が、すでに /var/www/html/bitbucket-test が存在して作業をしている場合はCLONEできない この場合、以下の方法で強制的に上書き対応できる(必ず既存ディレクトリをバックアップしてから作業を始める)
# cd /var/www/html # chown -hR apache. /var/www/html/bitbucket-test … デプロイで上書きできるように所有者を設定 # su -s /bin/bash - apache $ cd /var/www/html/bitbucket-test $ git init … ローカルリポジトリを作成 $ git remote add origin git@bitbucket.org:refirio/test.git … リモートリポジトリを追加 $ git fetch origin … リモートリポジトリを取得 $ git branch -a $ git merge origin/master … ローカルリポジトリにマージ $ git branch -a
「git merge origin/master」の際、以下のようなエラーになるようなら
$ git merge origin/master error: Untracked working tree file 'app/config.php' would be overwritten by merge. fatal: read-tree failed
以下を実行して強制的にリポジトリの内容に一致させることができる
$ git reset --hard origin/master
ブランチをdevelopに切り替えてPULLする場合、以下のようにする
$ git reset --hard origin/develop $ git checkout develop
上記で切り替えられなければ、以下のようにする git checkout -b develop origin/develop git - fetchしたremoteブランチのトラッキングブランチがcheckout時に自動で生成されない - スタック・オーバーフロー https://ja.stackoverflow.com/questions/18047/fetch%E3%81%97%E3%81%9Fremote%E3%83%96%E3%83%A9%E3%83%B... 最後にPULLして、エラーにならなければ完了
$ git pull

Advertisement