2

ですから、私はGitと開発全般に不慣れなブランドスパンキングです。私はいくつかの異なるマシンでLinuxとMacを使用しており、AWSでいくつかのクラウドサーバーを使用しています。それらすべてで小さな小さなPythonプロジェクトに取り組んでいます。

私は最初に何が欲しいかを説明しようとします。うまくいけば、私のユースケースで機能する最良のソリューションが近くにあることを願っています。自分が所有するデバイス、自宅のUbuntuデスクトップ、職場のMacbook、クラウドサーバー、職場のUbuntuデスクトップ、個人のMacbookでコードを記述できるようにしたいと考えています。明らかに、私はさまざまなホスト名とユーザー名で作業しています。私のコードで機能するのは私だけです。

私はgitガイドを調べましたが、それは機能しています。コードを変更するクラウドサーバーにリポジトリをセットアップしようとしました。Macbookからコミットしてプッシュしようとしましたが、1日中一連のアクセス許可エラーが発生しました。リポジトリに戻って、sshホイールユーザーとして-Rをchownする必要がありました。これは、すべてのオブジェクトが取得されているためです。ルートとして上書きされます。

MacBookからプッシュしようとしたときに表示されるエラーメッセージの例を次に示します。

コミット:

macbook:dev macbookuser$ git commit
# On branch master
# Your branch is ahead of 'origin/master' by 6 commits.
#
nothing to commit, working directory clean

そしてプッシュ:

macbook:dev macbookuser$ git push
user1@myserver-aka-repo.com's password: 
Counting objects: 18, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (14/14), 1.62 KiB, done.
Total 14 (delta 7), reused 0 (delta 0)
error: insufficient permission for adding an object to repository database ./objects

fatal: failed to write object
error: unpack failed: unpack-objects abnormal exit
To user1@myserver-aka-repo.com:/home/myserver-aka-repo/dev/.git
! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'user1@myserver-aka-repo.com:/home/myserver-aka-repo/dev/.git'
4

1 に答える 1

1

chownumask 0002がサーバーでこれを修正しない場合は、プッシュ先のリポジトリが正しいモードで共有されていることを確認してください。

 git config core.sharedRepository

このオプションの詳細については、「Git プッシュ エラー: オブジェクトをリポジトリ データベースに追加するための権限が不足しています」を参照してください。

私は通常 に設定core.sharedRepositoryumask、自分umaskを に設定し0002ます。

于 2012-11-06T07:49:08.990 に答える