質問
開発サーバーにgit clone / repoがありますが、現在は別のものに移行しています。すべてのローカルブランチとメインリポジトリへの変更をコミットしたくないので、oldserverからnewserverへのすべての正確なコピーを作成するにはどうすればよいですか?
oldserver:〜$ scp -rp project newserver:〜/ project
しかし、私はただ「typechange」の負荷を取得します; newserverで何かを行おうとするとエラーが発生します。
誰かがxモードについて何か言ったのですが、サーバー間でファイルを移動するときにそれをどのように保存できますか?
解決
gitソリューションが必要な場合は、試すことができます
git clone --mirror <oldurl> <newurl>
これは裸のリポジトリ専用です。
これが非ベアリポジトリである場合は、通常のクローンを作成してから、次のようにすることもできます。
git fetch origin
git branch -r | grep '^ *origin/[^ ]*
中間ステップはもちろん5000の異なる方法で実行できますが、それは1つの方法です! (bashのパイプの後の継続行\は不要であることに注意してください-さらに入力が必要であることがわかります)
最後に、直接コピーする場合は、scp(おそらく-avzオプションを使用)の代わりにrsyncを使用することをお勧めします。 (これらのタイプチェンジエラーとは正確には何ですか?)
|
while read rb; do git branch --no-track ${rb#*/} $rb; done
git remote rm origin
中間ステップはもちろん5000の異なる方法で実行できますが、それは1つの方法です! (bashのパイプの後の継続行\は不要であることに注意してください-さらに入力が必要であることがわかります)
最後に、直接コピーする場合は、scp(おそらく-avzオプションを使用)の代わりにrsyncを使用することをお勧めします。 (これらのタイプチェンジエラーとは正確には何ですか?)
他のヒント
実際にこれを実行しましたが、最初にレポジトリをtarしてscpするだけでした。 scp -rpも同様に機能すると思います。
&quot; Typechange&quot;通常、シンボリックリンクがファイルになる、またはその逆のようなことを指します。 2つのサーバーは同じOSを実行していますか?
単純な愚かな解決策を試してみることもできます-タイプ変更がそこにどのように到達するか心配する必要はありませんが、gitにリセットコマンドで修正させます:
git reset --hard HEAD
(1)問題がすべてチェックアウトされたファイル(リポジトリ構造自体ではない)に関係し、(2) newserver で変更を加えていない場合にのみ意味があります。保存する必要があります。
これらの警告を考えると、同じ問題に遭遇したときに私にとってはうまくいきました。また、gitの内部構造や、ファイル転送プロセスが属性を保持している程度について考える必要はありません。