1

古いコミットを作業ディレクトリにチェックアウトして何かをいじりたかったので、レポのルートで次のコマンドを実行しました。

git checkout 2aa2c5 .

しかし、何も起こらず、単に # プロンプトが戻ってきました。コマンドをさらに数回実行しましたが、何も起こらなかったようです。私はそれからしました:

git status

これは、私がまだオンになっていることを示していましたmaster。私はそれからしました:

git checkout master

何が起こっているのかわからなかったので、元の場所に戻りたかっただけです。で帰ってきましたAlready on master

しかし、私のウェブサイトにアクセスできなくなりました。すべてのファイルに 644 のアクセス許可が付与されているようです。何が起こったのか本当にわかりませんか?コミットをチェックアウトしようとした最初の試みは何もしなかったようですが、ファイルのアクセス許可やファイルの所有権を台無しにしました。

更新:問題は許可ではないと思います。問題は、すべてのファイルが所有者とグループのルートに変更されたことだと思いますか? チェックアウトを行ったときに root としてログインしていましたが、これが原因でしょうか?

私は一般的にgitとLinuxファイルのアクセス許可に慣れていません。誰かがこれに光を当てることができれば、本当に感謝しています。

ありがとう

4

1 に答える 1

1

アクセス許可と所有権は、Web サーバーにとって非常に重要です。これを間違えると、間違った人 (= クラッカー) があなたのファイルを読んだり変更したりできるようになります。そのため、自分が何をしているのかを理解していることを確認してください。

経験則として、決して として動作しないでrootください。1 つのばかげたミス (切り取りと貼り付けが多すぎる不安定なマウスのように) が、何時間もの作業を犠牲にする可能性があります。

あなたの場合、ファイルの所有権が変更されたようです。これを修正するには、すべてのファイルを削除する必要があります (root として。注意してください。間違えると、もっと多くのファイルが失われてしまいます!)

Git リポジトリを保持するようにしてください (つまり、.gitフォルダー以外をすべて削除します) がgit、root として実行すると、そのフォルダーの一部のアクセス許可も既に台無しになっているのではないかと心配しています。

したがって、ツリー全体 (.git フォルダーを含む) を削除し、正しいユーザーで再度複製することをお勧めします。

関連している:

于 2013-09-02T13:51:30.853 に答える