1

ssh経由でgitリポジトリを作成しました。動作しますが、ディレクトリ内のファイルが表示されません。

remote(ssh):

mkdir test.com
cd test.com
git init

client(git bash)
cd /apache/htdocs
git clone git://myserverip/test.com
cd test.com
git add --all .
git commit -a -m "first"
git push origin master
4

3 に答える 3

2

サーバー上のリポジトリにファイルを追加してコミットする必要があると思います。なぜ裸のリポジトリを試さないのですか?

リモートでコミットをプッシュする必要がある場合は、次のコマンドを試してください。

サーバー上でリポジトリを作成します。

cd /usr/local/git/    ## or your own repo destination
mkdir repo.git
cd repo.git
git init
touch README
git add .
git commit -a -m "start my repository"

ubuntu などのクライアントで:

git clone ssh://User@serverip:sshport/usr/local/git/repo.git myrepo
cd myrepo
git branch someUser   # create new branch
vim README   ## some change on the file
git add README
git commit -a -m "some change by someUser"    ## user commit changes
git push origin someUser   ## push commit to server

ユーザーが変更をプッシュした後、システム管理者はコミットをマージする必要があります。簡単な方法は次のとおりです。

cd /usr/local/git/repo.git
git merge someUser   ##  merge repo by user commit
于 2012-05-20T08:17:53.930 に答える
1

ファイルをリモート リポジトリにプッシュしても、ファイル ツリー (「インデックス」) は更新されません。オブジェクトのストアを更新します。

格納されたオブジェクトを反映するようにツリーを更新するにはgit reset --hard、そのリモート リポジトリで を実行して新しい に更新する必要がありHEADます。

これは悪いことなので、通常、リモート リポジトリは「ベア」として設定されます。これは、作業ツリーを持たない git ホスティング用の特別なリポジトリ形式です (その他の違い:.gitディレクトリがないなど: 構成ファイルはより便利です)。ルートディレクトリに保存されます)。

アップストリームにベア リポジトリを使用します: git init --bare.

于 2012-05-19T23:14:49.847 に答える
1

私は解決策を見つけました

mkdir test.com
cd test.com
git init
cd .git
cd hooks
vi post-receive
chmod +x post-receive

受信後

#!/bin/sh
cd ..
env -i git reset --hard
于 2012-05-31T21:11:07.320 に答える