Git/Github for Windowsで、C:\dir1\dir2
というディレクトリのリポジトリがある場合、リポジトリファイルをC:\dir1
に移動するにはどうすればいいですか?ファイルを物理的にコピーして貼り付けることはできますが、Git側で何をする必要がありますか?
私はこのレポジトリをGitHubに持っています、そして私はGit BashとGitHub for Windowsを使います。
作業ディレクトリ全体の内容(隠し.git
ディレクトリを含む)をコピーするだけです。これは作業ディレクトリ全体を新しいディレクトリに移動し、GitHub上のリモートリポジトリには影響しません。
Windows用GitHubを使用している場合は、上記の方法でリポジトリを移動できます。ただし、アプリケーション内のリポジトリをクリックしても、見つけることができません。これを解決するには、!の付いた青い円をクリックし、[Find It]を選択して新しいディレクトリを参照します。
よく分からないので、答えは2つあります。
リポジトリを移動したい場合は
リポジトリ全体を(その.git
ディレクトリと共に)コピーするだけです。
.git
構造体には絶対パスはなく、移動を妨げるものもないため、移動後は何もすることはできません。 githubへのすべてのリンク(.git/config
を参照)は以前と同じように機能します。
リポジトリ内でファイルを移動したい場合
ファイルを移動するだけです。次に、git status
にリストされている変更を追加します。次のcommit
は必要なことをします。ファイルが重複しないことを知って幸せになるでしょう:gitでファイルを移動することはほとんど費用がかかりません。
GitHub for Windows
を使用している場合は、以下の手順を実行してください。
GitHub for Windows
および他のすべてのアプリケーションを開いているファイルで現在のディレクトリパスに閉じます。GitHub for Windows
を開き、青い(!)「repository not found」アイコンをクリックします。その後、ダイアログが開き、新しいリポジトリパスを移動できる[Find it]ボタンが表示されます。この質問にはGit for Windowsが関係していますが、これはVisual Studio Tools For Git(VS 2012での拡張、VS 2013でのネイティブサポート)を検索する場合でも、トップの結果になるようです。
ガイドとして上記のソリューションを使用して、私は、Visual Studio Git Toolsがリポジトリ(あるいはすべてのリポジトリのディレクトリ構造全体)をローカルに非常に簡単に移動させることを決定しました。
1)Visual Studioを閉じます。 2)Repoフォルダを新しい場所に移動します。 3)Visual Studioを開きます。チームエクスプローラーを開きます。 [接続]ビューに切り替えます(上部のプラグアイコン)。 3a)それでもリポジトリに古いパスが表示される場合は、[更新]をクリックして更新を強制します。 4)ローカルに移動されたリポジトリは、「ローカルGitリポジトリ」に表示されなくなります。 5)追加(新規またはクローンではない)をクリックして、追加するレポジトリフォルダーを選択します。
ステップ5では、実際には検索パスを指定しているだけで、検索には自動的にすべてのサブフォルダが含まれます。単一のルートの下に複数のリポジトリがある場合(同じ親フォルダを持つ独立したリポジトリ)、親を選択するとその下にあるすべてのリポジトリが含まれます。
例:E:\ Repos\RepoA E:\ Repos\RepoB E:\ Repos\RepoC
Visual Studioチームエクスプローラでは、[追加]> "E:\ Repos \"> [追加]の3つすべてがローカルリポジトリに返されます。
前の答えはすべてディレクトリを移動することができ、.git構造に絶対パスはないと言っているようです。 Cygwinのgitを使用しているとき、これは正しくないことがわかりました。
Gitリポジトリを移動したとき(実際にはバックアップから復元しましたが、新しいシステムでドライブ構造が変更されたため、別のドライブに復元しました)。のようなエラーメッセージが出ました
fatal: Invalid path '<part_of_the_original_repo_path>': No such file or directory
Grepを使用して、[core]セクションの.git/configファイルの中に、自分のgitリポジトリの絶対パスを保持するworktree変数があることを見つけました。これを変更すると問題が解決しました。
私はVisual Studioのgitプラグインを使用していますが、移動したいIISで実行しているWebサイトがいくつかあります。私のために働いた簡単な方法:
Visual Studioを閉じます。
コードを移動します(gitフォルダなどを含む)
新しい場所からソリューションファイルをクリックします
これにより、移動された既存のローカルgitファイルを使用して、マッピングが新しい場所に更新されます。 Visual Studioに戻ったら、チームエクスプローラウィンドウで新しい場所にリポジトリが表示されました。
私はWindows用のGithubデスクトップを使用していて、リポジトリの場所を移動したいと思いました。ディレクトリを移動してソフトウェアの新しい場所を選択しても問題ありません。しかし、間違ったディレクトリを設定すると、致命的なエラーが発生し、二度目に正しいディレクトリに移動することはなくなります。だからそれを修復する。プロジェクトファイルを悪いディレクトリにコピーし、Githubデスクトップで再調整する必要があります。その後、プロジェクトを別のフォルダに移動してソフトウェアに移動することができます。そのためにGithubデスクトップを閉じる必要はありません。ライブでフォルダーを確認します。
これが誰かに役立つことを願っています。
未来からの報告:2018年4月.
私は自分のMacとWindows上の自分のローカルリポジトリを正規化したいと思っていました。
Windows 10クライアントでは、 "Can't Find"> "Locate"ルーチンを実行しましたが、面倒ですがひどいものではありませんでした。また、将来の使用に備えて、オプションのローカルの「クローンパス」を更新する必要があります。
Macフォルダを統合したとき、Githubクライアントはそれらを再び見つけた - 私は何もしなくてもよかったです!
リポジトリのクローンを作成するたびにデフォルトのローカルパスをリポジトリに設定するには、リポジトリのクローンを1回作成してLocalpath:/ your-pathを設定するだけで、githubがそのパスをデフォルトとして自動的に検出します。
これは私にはうまくいきませんでした。リポジトリをc:\ project1 \からc:\ repo\project1 \に移動したところ、Git for windowsに変更が表示されません。
サブモジュールの1つが「gitリポジトリではない」ため、git statusにエラーが表示され、古いパスが表示されます。例えば(IPを保護するために名前が変更されました)
fatal:gitリポジトリではありません:C:/project1/.git/modules/subproject/subproject2 fatal:サブモジュールsubprojectで 'git status --porcelain'が失敗しました
サブモジュールのリポジトリへの正しい相対パス(メインリポジトリの.git/modulesディレクトリ内)を指すように、サブモジュールの.gitファイルを手動で編集する必要がありました。