10

私はGitを初めて使用し、正しくセットアップしようとしています。私はリモートリポジトリとローカルクローンを持っていますが、これまでのところ1つの(マスター)ブランチしかありません。

ローカルでいくつかのファイルを削除し、この変更をコミットしてから、「git pushoriginmaster」を実行しました。これは正常に機能しているように見えます。'git status'は、ローカルでコミットするものを何も表示しなくなりました。

ただし、リモートリポジトリを見ると、ファイルはまだそこにあり、「git status」はそれらすべてが追加されたが、コミットされていないことを示しています。変更をプッシュしても、リモートから削除されるべきではありませんか?私は何が間違っているのですか?

4

1 に答える 1

5

問題は、明らかに非裸のリポジトリにプッシュすることです。プッシュによってリモートの作業コピーが更新されることはありません。

ベア リポジトリ専用の Git プッシュをご覧ください。およびhttp://gitready.com/advanced/2009/02/01/push-to-only-bare-repositories.html

ベアではないリモート リポジトリを最新の状態にするには、リポジトリが配置されているマシンに SSH 経由で接続して実行git reset --hard HEADgit checkout -f、作業コピーを強制的に最新の状態にします (これにより、ローカルで行った可能性のある変更が破棄されることに注意してください)。作業コピー)。

リモート リポジトリを公開するには、SSH 経由でマシンに接続して、直接アクセスできるようにします。リポジトリがサブフォルダーにあると仮定してrepo、次のコマンドを実行します。

mv repo repo_old
git clone --bare repo_old repo

次に、すべてが機能するかどうかをテストし、その後rm -rf repo_old古いものを取り除きます。

于 2012-05-18T09:56:40.590 に答える