이베리스
Iberis
이베리스
전체 방문자
오늘
어제
  • 전체보기 (72)
    • Course (64)
      • MS-SQL (10)
      • MY-SQL (12)
      • Oracle (2)
      • PostgreSQL (1)
      • ASP.NET with C# (5)
      • PHP (14)
      • Java (1)
      • javaScript (11)
      • A quick tip (1)
      • CodeIgniter (1)
      • CSS (3)
      • 운영체제 (2)
      • Git (1)
      • 리눅스 (0)
    • Utility (4)
    • 와우 (2)
      • 애드온 (2)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • comma
  • 1326
  • MSSQL
  • share
  • 이베리스
  • 와우클래식
  • 수동삭제
  • power point
  • 접속안됨
  • 3자리
  • dbo
  • 테이블 복사
  • 보안 주체
  • wowclassic
  • 19c
  • 자동 줄 바꿈
  • 구조 복사
  • 3DP
  • Elv
  • 공유폴더
  • 렌카드
  • 콤마
  • 테이블
  • Benik
  • table
  • 쿼리
  • 15517
  • error
  • width
  • 삭제

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
이베리스

Iberis

Course/Git

GIT PUSH 안될때

2016. 5. 30. 17:45


원격 저장소로 Push 할때
아래처럼 오류가 난다면 저장소의 퍼미션을 변경합니다.

 

증상

 
[오류1]

Counting objects: 8, done.
Delta compression using 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 1.37 KiB, done.
Total 5 (delta 2), reused 0 (delta 0)
error: insufficient permission for adding an object to repository database ./objects

fatal: failed to write object
error: unpack-objects exited with error code 128
error: unpack failed: unpack-objects abnormal exit
To git@github.com:bixo/bixo.git
 ! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to ‘git@github.com:bixo/bixo.git’

 

[오류2]

unpack-objects abnormal exit

 

해결

1
2
3
4
5
6
7
8
9
10
// Push 가 안되는 저장소 진입
# cd repository.git
 
// 모든 파일과 폴더의 그룹권한에 쓰기와 스티키 옵션 추가
# sudo chmod -R g+ws *
 
// 모든 파일과 폴더를 mygroup 으로 변경
// 여기서 mygroup란 git 사용자를 관리하기 위해 생성한 그룹입니다.
// 제경우는 git이란 그룹을 생성하여 관리합니다.
# sudo chgrp -R mygroup *

 

옵션설명

 -R 
옵션은 퍼미션 변경 대상이 디렉토리일 경우 
그 하위 경로에 있는 모든 파일과 디렉토리의 퍼미션을 변경합니다.

 

g+ws
그룹(g) 권한에 쓰기(w)와 스티키sticky(s) 속성을 추가(+) 합니다.
디렉토리에 sticky 속성이 붙게 되면 그 디렉토리에 생성되는
파일이나 폴더는 똑같은 그룹 이름과 속성을 같게 됩니다.

 

*
모든 파일과 폴더를 대상으로 합니다.

 

sudo 명령어
관리자(root)가 특정 사용자(특정 그룹)에게
특정 명령(명령그룹)을 root계정으로 실행할 수 있는 권한부여 

 

다른방법

1
# git config core.sharedRepository true

core.sharedRepository 옵션은
group (true), all (world, everybody), umask (false) 까지 제공되는데 
group이나 true로 했을 경우
저장소 내에 파일 생성시 그룹 쓰기 권한을 세팅하게 되고,
all은 모든 사용자가 읽기 가능 + 그룹쓰기 권한, 
umask나 false로 설정시 umask 값에 따라서 권한 설정을 하게 된다. 
Default는 umask (false) 입니다.

 

증상 (개인메모용)

 

Egit Push 할 때

Pushed to ani-polaroid-canvas – origin
An internal Exception occurred during push: ssh://zxcv@twipixel.com/git/twipixel/ani-polaroid-canvas.git: Pipe closed

 

터미널에서 직접 Push 할 때

zxcv@twipixel.com’s password: Counting objects: 6, done. Delta compression using up to 4 threads. Compressing objects: 100% (5/5), done. remote: error: insufficient permission for adding an object to repository database ./objects remote: fatal: failed to write object error: pack-objects died of signal 13 error: failed to push some refs to ‘ssh://zxcv@twipixel.com/git/twipixel/ani-polaroid-canvas.git‘ twipixel-MacBook-Pro:AniPolaroidCanvas twipixel$ git push ssh://twipixel@twipixel.com/git/twipixel/ani-polaroid-canvas.git warning: push.default is unset; its implicit value has changed in

 

해결

사용자를 git 그룹에 포함시킵니다.

현재 저장소의 권한은
소유자는 git-GitLab, 그룹 git 으로 설정되어 있습니다.

git-permission


출처 : http://twipixel.com/blog/2014/03/19/git-push-%EC%95%88%EB%90%A0%EB%95%8C/

저작자표시 비영리 변경금지 (새창열림)
    이베리스
    이베리스
    Developer

    티스토리툴바