1

私は<path1>/f/gittest/fooリモート)にいます。私は<path2>/f/gittest/barローカル)にいます。

現在、リモートを作業コピーにする必要がないため、主にアクティブなブランチにプッシュできないため、それをむき出しにしました。

.git ディレクトリを作成してgit init --bare内部で実行します/f/gittest/foo/.git。ローカル リポジトリにリモート リポジトリを追加し、ファイルを作成し、追加し、コミットして、リモートにプッシュします。変更がプッシュされたように見え、リモートは正常に最新の状態になっています。ただし、ローカル リポジトリによって追跡されるファイル (example1.txt と example2.txt としましょう) は、リモートには表示されません (リモート リポジトリで追跡されると思いますが)。プッシュされたファイルでこのリモート ディレクトリを更新するにはどうすればよいですか? 以前はフェッチもミラーリングもせずにこれで成功していましたが、方法は思い出せません。

ダブルチェックされた動作: mkdir alpha/; mkdir beta/; cd beta/

mkdir .git/; cd .git/; git init --bare; cd ../../alpha/

git init; touch example1.txt(example1.txt にテキストを入力)

git add example1.txt; git commit -m "Initial Commit"

git remote add destination ../beta/.git; git push destination master

4

3 に答える 3

0

まず、.gitフォルダー内にベア リポジトリを作成することは、通常のベスト プラクティスではありません。

  • .gitは、ベアでないレポ (の親フォルダに作業ツリーがあるもの.git)のフォルダです。
  • foo.gitベア レポ ' foo' のフォルダの名前になります。

次に、ベア リポジトリにプッシュするということは、ファイルが「表示」されないことを意味します。ベア リポジトリとは、作業ツリーの同期を回避することです。

代わりに、ベアレポにフックを追加できます。post-receive

export GIT_WORK_TREE=..
git checkout -f HEAD

(「プロジェクト ファイルは git リポジトリ.gitフォルダーのどこに保存されていますか?」で述べたように)

于 2014-04-18T06:18:13.943 に答える
0

ディレクトリを作成する場合

mkdir some_dir
cd some_dir

裸の git リポジトリを初期化し、

git init --bare
git remote add origin git@github.com:username/reponame.git

次に、そこにいくつかのファイルを作成します

echo "some_text" > somefile.txt
echo "some_text" > somefile1.txt

この段階でプッシュしても、リモートリポジトリには反映されません。

代わりにコミットすると、

git add .
# Even if you push at this stage, you wont see the files in remote git server
git commit -m "Pushing to git server"

それらはリモート git サーバーに反映されます。

編集:

ローカルのベア リポジトリを作成する方法で、サーバー上にベア リポジトリを作成することはできません。この状況を処理するのは、リモート git サーバー次第です。たとえば、github を例にとると、UI から裸のレポを作成したり、そのための API を提供したりできます。このスレッドは関連している可能性がありますブラウザを開かずに CLI から GitHub にリモート リポジトリを作成することは可能ですか?

于 2014-04-18T05:53:16.027 に答える