Skip to content
Zoolian edited this page Jan 13, 2021 · 17 revisions

애드온은 깃 subtree로 관리중

신규 애드온 추가

git remote add owntracks4hassio https://github.com/zooil/owntracks4hassio
git subtree add --prefix=owntracks4hassio owntracks4hassio master

애드온 개별 업데이트

git subtree pull --prefix=owntracks4hassio owntracks4hassio master

애드온 제거

git remote remove owntracks4hassio
git remote -v // 리모트 리스트 보임

새로운 PC에서 git clone 이후 update.sh 동작 안됨

fatal: 'wallpad' does not appear to be a git repository
fatal: 리모트 저장소에서 읽을 수 없습니다

올바른 접근 권한이 있는지, 그리고 저장소가 있는지
확인하십시오.

이런 에러가 난다면 새로 서브트리 추가해줘야 함 아래 스크립트에 애드온 이름만 쓰도록 만듦

$ more ./make_new_pc_setting.sh 
#!/bin/bash

git remote add $1 https://github.com/zooil/$1
git subtree add --prefix=$1 $1 master

최근 신규로 저장소를 만들면 master가 아니라 main 브랜치로 생성된다. 확인할 것!

깃의 서브폴더를 넣는 법

  git remote remove sds_wallpad
  git remote add sds_wallpad https://github.com/n-andflash/ha_addons/
  git fetch sds_wallpad
  git checkout -b sds_wallpad sds_wallpad/master
  git checkout master
  git read-tree --prefix=sds_wallpad -u sds_wallpad:sds_wallpad

아래는 submodule에 대한 방법

cd addons
git submodule add https://github.com/{user}/{repo} {localRepoDirName}
# {localRepoDirName}은 {repo} 네임과 동일 이름 부여

애드온 업데이트

서브모듈은 특정 커밋(버전)을 가리키고 있음.
애드온 원본 저장소에 업데이트가 생기면 서브모듈을 업데이트 해준다.

submoudle 최신 버전으로 교체

child 디렉토리에서 submodule들을 개별 업데이트
git pull 명령어 이용 업데이트
parent내에서 git submodule foreach git pull origin master 명령 실행

서브모듈에 subproject ... dirty가 생기면
git submodule foreach --recursive git checkout .
하면 수정됨

서브모듈 삭제

git submodule deinit -f owntracks4hassio

rm -rf .git/modules/owntracks4hassio

git rm -f owntracks4hassio

addons 디렉토리 내부에서 직접 수정시 에러발생

./update.sh 실행시
Working tree has modifications. Cannot add.에러 발생하면

git reset --hard로 수정 가능