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
サーバー上のリポジトリにファイルを追加してコミットする必要があると思います。なぜ裸のリポジトリを試さないのですか?
リモートでコミットをプッシュする必要がある場合は、次のコマンドを試してください。
サーバー上でリポジトリを作成します。
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
ファイルをリモート リポジトリにプッシュしても、ファイル ツリー (「インデックス」) は更新されません。オブジェクトのストアを更新します。
格納されたオブジェクトを反映するようにツリーを更新するにはgit reset --hard
、そのリモート リポジトリで を実行して新しい に更新する必要がありHEAD
ます。
これは悪いことなので、通常、リモート リポジトリは「ベア」として設定されます。これは、作業ツリーを持たない git ホスティング用の特別なリポジトリ形式です (その他の違い:.git
ディレクトリがないなど: 構成ファイルはより便利です)。ルートディレクトリに保存されます)。
アップストリームにベア リポジトリを使用します: git init --bare
.
私は解決策を見つけました
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