Giit에서build에 있는 파일을 다른 지점에서 관리하여 차별화
이 기사에서 얻을 수 있는 것들
Master 분기의build 파일을 제출하지 않고git diff에서build 파일을 추출할 수 있습니다.
예:
dist
디렉터리는 .gitignore
이지만 dist
로 디렉터리의 차이를 추출하고 싶습니다.반드시 zip으로 납품하여 데이터 차이 등을 공개해야 한다.개시하다
물론 Giit 창고로 원본을 관리하는 것은 당연하지만,build 파일을 창고에 포함시킬지 여부는 찬반 양론이 엇갈리는 문제다.
만약build의 파일을 창고에 포함한다면 라이브러리 등의 분배는 이용자에게 편리하지만, 예를 들어 사이트의 관리에서 제출 로그가 커지고 보기 어려워지는 등 나쁜 점이 더 좋을 것이다.
그러나 이번에 사이트 관리에서build 데이터를 추출하는 차분 파일이 자주 발생하는데 창고 관리를 사용하지 않으면
git archive
로 차분을 추출할 수 없다.이번에 마스터 지점은 src 등 데이터를 관리하고 다른 지점의build 파일을 관리하며
git diff
로 얻을 수 있는 팁을 소개한다.이번 문서 구성
프로젝트 폴더
drwxr-xr-x 8 foo staff 256 9 24 21:46 ./
drwxr-xr-x 14 foo staff 448 9 24 21:19 ../
drwxr-xr-x 32 foo staff 1024 9 24 21:29 node_modules/
-rw-r--r-- 1 foo staff 241 9 24 21:30 package.json
drwxr-xr-x 4 foo staff 128 9 24 21:32 src/
-rw-r--r-- 1 foo staff 8197 9 24 21:29 yarn.lock
src 폴더
-rw-r--r-- 1 foo staff 245 9 24 21:32 about.ejs
-rw-r--r-- 1 foo staff 232 9 24 21:26 index.ejs
일단 인티리얼 커밋.
gitignore,git init 만들기
프로젝트 디렉터리가 만들어지고 추가되었습니다.
git diff
# .gitignore
/dist
/node_modules
!.gitignore
다음git init, initial commiit를 추가합니다.$ git init
$ git add .
$ git commit -m 'initial commit'
release 지점 만들기,build을 통해commiit 진행
다음
.gitignore
에 지점release
을 만들어서 지점에서build로commiit를 진행합니다.release
시git add
선택하여 강제로 무대에 오른다.$ git checkout -b release
$ yarn ejs-cli --base-dir src/ '*.ejs' -o dist/
$ git add -f ./dist/*
$ git commit -m 'initial release commit'
이렇게 준비했어요.실질적으로 변경 점수를 얻다
당장 마스터 지점
-f
에 변경commiit만 추가해 보세요.<!-- src/index.ejs -->
-___EJS0___
+___EJS1___
$ git commit -am 'update - トップページのウェルカムメッセージを変更'
release 지점으로commiit 진행
그럼,release 지점에서 방금 수정한 것을 적용하여 차분을 추출합니다.
$ git checkout release
$ git merge master
$ yarn ejs-cli --base-dir src/ '*.ejs' -o dist/
$ git add -f ./dist/*
$ git commit -m 'release'
$ git archive --format=zip --prefix=archive/ HEAD `git diff --name-only --diff-filter=AMCR HEAD~1 HEAD` -o archive.zip
는 이로 인해 생성된 src/index.ejs
에 차분archive.zip
을 저장했다.Archive: archive.zip
creating: archive/
creating: archive/dist/
inflating: archive/dist/index.html
차분 파일을 만드는 프로그램을 조개 스크립트로 변환하기
매번 상술한 절차를 수행하는 것은 매우 번거롭기 때문에 먼저 스크립트 파일을 만드는 것이 가장 좋다.
# make_diff_archive.sh
git checkout release
git merge master
yarn ejs-cli --base-dir src/ '*.ejs' -o dist/
git add -f ./dist/*
git commit -m 'release'
git archive --format=zip --prefix=archive/ HEAD `git diff --name-only --diff-filter=AMCR HEAD~1 HEAD` -o archive.zip
git checkout master
마지막으로 마스터 지점으로 되돌아갈 줄을 추가했습니다.항목에 따라 명령 등을 적절하게 조정하세요.
나는 아직도 촌스러운 일이 많다고 생각한다.뭔가 도움이 된다면 좋겠네요.
Reference
이 문제에 관하여(Giit에서build에 있는 파일을 다른 지점에서 관리하여 차별화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/shelly/articles/e95d185dfb56eeb8ecff텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)