git pushできない

ググって適当に設定していたためにコケた。
gitリポジトリサービスを使ったことはあるが、自分で一からgitリポジトリ構築したことがなかったため、知識が不足している模様。

たまにしかpushできないなど、問題は完全に解決していないが注意点を挙げてみる。

1.gitリポジトリ内のディレクトリのグループは、全て設定したグループになっているか?

  • できていない場合は、chownコマンドでグループ変更。
  • pushできるユーザーがいる場合、pushされたコミットのグループを確認(objectsディレクトリの中身を見る)


2.プッシュするユーザーがgitリポジトリ(.gitディレクトリ)のグループにいるか?

  • idコマンドにユーザー名を与えてやると、該当ユーザーのグループが表示される。
  • ユーザーがグループにいない場合は、gpasswdコマンド。


3.gitリポジトリには、グループに対して読み書き権限が与えられているか?

  • 読み書き権限がない場合、chmodコマンドで権限変更。


4.gitリポジトリは共有モードか?


自分の環境に変更履歴を保存できるというのは、やはり気楽でいいなと思っている次第。
また、コミットメッセージ入力で「自分の作業内容を明確化・振り返る」ことができ、頭の整理がついて、効率アップに寄与していると思う。
(入門gitか何かに、コメントメッセージの書き方とあわせて書いてあったように思う。)


(10/26追記)
結局、競合が原因だった模様。
運用ルールとして以下を心がけるようにした。

1.pullは使わない。fetchしてmergeする。
2.競合をローカルで解決後、インデックスに競合解決したファイルを追加する。

小規模開発であったため、ブランチの状態を図に書くことで状況の整理になった。