3

When I try to push my files to remote repository on a local git server it shows below error. Please help. The remote repository has chmod 777 access. So I dont think it is access related issue.

***nips@nips-OptiPlex-5090:~/myproject$ git push origin master
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 12 threads
Compressing objects: 100% (8/8), done.
Writing objects: 100% (9/9), 1.35 KiB | 1.35 MiB/s, done.
Total 9 (delta 3), reused 0 (delta 0)
error: remote unpack failed: unable to create temporary object directory
To 10.114.58.68:/srv/git/project.git
! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to 'git@10.114.58.68:/srv/git/project.git'***
arunkannan
  • 33
  • 2

1 Answers1

2

If you can log on to 10.114.58.68 as git (since it is an SSH URL), check the rights associated with the bare repository in /srv/git/project.git

Make sure, for instance, it is accessible by the group of your user account:

cd /srv/git/project.git                   # Enter inside the git repo
git config core.sharedRepository group    # Update the git's config
chgrp -R <group-name> .                   # Change files and directories' group
chmod -R g+w .                            # Change permissions
chmod g-w objects/pack/*                  # Git pack files should be immutable
find -type d -exec chmod g+s {} +         # New files get directory's group id

Note: Nothing should be owned by root, beside system files.
Do a chown -R git:git /srv/git/project.git.
Root has no business owning Git data.

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • The folder already has full access 777 `drwxrwxrwx 7 root root 4096 Jul 28 16:07 project.git` – arunkannan Jul 29 '22 at 08:34
  • @arunkannan Nothing should be owned by root, beside system file. Do a `chown -R git:git /srv/git/project.git`. Root has no business owning Git data. – VonC Jul 29 '22 at 08:48
  • @arunkannan Well done! Remember, using `root` should be only for admin tasks. For the rest, use a regular user account (or service account like `git` here) – VonC Jul 29 '22 at 09:07
  • @arunkannan So, that seems to be working, right? – VonC Jul 29 '22 at 10:05
  • Yessss!! `git push origin master` Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 12 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 332 bytes | 332.00 KiB/s, done. Total 3 (delta 1), reused 0 (delta 0) To :/srv/git/project.git – arunkannan Jul 29 '22 at 10:07
  • @arunkannan OK, that still looks like the push is completed successfully, right? – VonC Jul 29 '22 at 10:08
  • yep.......`git clone git@10.114.58.68:/srv/git/project.git` Cloning into 'project'... remote: Enumerating objects: 8, done. remote: Counting objects: 100% (8/8), done. remote: Compressing objects: 100% (8/8), done. remote: Total 8 (delta 2), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (8/8), done. Resolving deltas: 100% (2/2), done. – arunkannan Jul 29 '22 at 10:10
  • @arunkannan Great, clone works, push works. You are good to go. – VonC Jul 29 '22 at 10:11