[解決済み] 空でないディレクトリにクローンを作成するにはどうすればよいですか?
2022-03-15 10:45:24
質問
私は、ディレクトリBに一致するファイルを持つディレクトリAを持っています。ディレクトリAは、他の必要なファイルを持っているかもしれません。ディレクトリBはgitレポです。
ディレクトリBをディレクトリAにクローンしたいのですが、ディレクトリが空でないため、git-cloneではできません。
.gitをクローンするだけで、すべてのファイルが一致するので、そこから行けるのではと期待していたのですが?
ディレクトリAにあるファイルで、ディレクトリBにないものがあり、それらを残しておきたいので、空のディレクトリにクローンできません。
プッシュ/プルするためのrefが必要で、それを手動で設定したくないので、.gitをコピーすることは選択肢にない。
何か方法はないでしょうか?
更新:これでうまくいくと思うのですが、どなたか問題ないでしょうか?-->
cd a
git clone --no-hardlinks --no-checkout ../b a.tmp
mv a.tmp/.git .
rm -rf a.tmp
git unstage # apparently git thinks all the files are deleted if you don't do this
解決方法は?
以下のシェルコマンドで
existing-dir
はディレクトリで、その内容は
repo-to-clone
git リポジトリを使用します。
# Clone just the repository's .git folder (excluding files as they are already in
# `existing-dir`) into an empty temporary directory
git clone --no-checkout repo-to-clone existing-dir/existing-dir.tmp # might want --no-hardlinks for cloning local repo
# Move the .git folder to the directory with the files.
# This makes `existing-dir` a git repo.
mv existing-dir/existing-dir.tmp/.git existing-dir/
# Delete the temporary directory
rmdir existing-dir/existing-dir.tmp
cd existing-dir
# git thinks all files are deleted, this reverts the state of the repo to HEAD.
# WARNING: any local changes to the files will be lost.
git reset --hard HEAD
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] Git ですべてのリモートブランチをクローンする方法
-
[解決済み] .gitignoreで一部のファイル以外を無視するようにする
-
[解決済み] Git の detached head を修正するにはどうすればよいですか?
-
[解決済み] 既存の空でないディレクトリをGitの作業ディレクトリに変換し、リモートリポジトリにファイルをプッシュする方法
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】Git リポジトリに空のディレクトリを追加するには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】現在のブランチの先端がリモートブランチより遅れているため、更新が拒否されました。
-
[解決済み】ローカルにない作業がリモートに含まれているため、アップデートが拒否された
-
[解決済み】なぜ「git commit」は私の変更を保存しないのですか?
-
[解決済み】未マージファイルがあるため、Gitマージができない
-
[解決済み】Githubエンタープライズ - リモート。Git の操作でパスワード認証が利用できない
-
[解決済み] git が「Pull is not possible because you have unmerged files」と表示するのはなぜですか?
-
[解決済み] SourceTree error:1407742E:SSLルーチン:SSL23_GET_SERVER_HELLO:tlsv1警告プロトコルバージョン
-
[解決済み] git initを2回実行すると、リポジトリが初期化されますか?それとも既存のリポジトリを再初期化しますか?
-
[解決済み] git リモートリポジトリには、ローカルブランチにマージされていないコミットが含まれています。
-
[解決済み] 新しいBitbucketでリポジトリを削除するにはどうすればよいですか?