Programing

Git 저장소에 파일을 보관하되 변경 사항을 추적하지 마십시오

lottogame 2020. 3. 30. 08:42
반응형

Git 저장소에 파일을 보관하되 변경 사항을 추적하지 마십시오


CodeIgniter 사이트에는 리포지토리에 있고 싶지만 변경 사항을 추적하지 않을 파일이 여러 개 있습니다.

예를 들어,이 프레임 워크의 새 설치를 새 클라이언트에 배포하고 다음 파일을 다운로드하고 (기본값은 CHANGEME 임)이 클라이언트에 맞게 변경해야합니다 (데이터베이스 자격 증명, 전자 메일 주소 정보, 맞춤 CSS).

// the production config files i want the files but they need to be updated to specific client needs
application/config/production/config.php
application/config/production/database.php
application/config/production/tank_auth.php
// index page, defines the environment (production|development)
/index.php
// all of the css/js cache (keep the folder but not the contents)
/assets/cache/*
// production user based styling (color, fonts etc) needs to be updated specific to client needs
/assets/frontend/css/user/frontend-user.css

현재 내가 달리면

git clone git@github.com:user123/myRepo.git httpdocs

위의 파일을 편집하면 좋습니다. 핫픽스 나 패치를 해제하고 실행할 때까지 git pull. 그런 다음 모든 변경 사항을 덮어 씁니다.


git은 다른 해결책을 가지고 있습니다. 먼저 추적하지 않으려는 파일을 변경하고 다음 명령을 사용하십시오.

git update-index --assume-unchanged FILE_NAME

변경 사항을 다시 추적하려면 다음 명령을 사용하십시오.

git update-index --no-assume-unchanged FILE_NAME

git-update-index 문서


내 코드 점화기 프로젝트의 경우 데이터베이스에 database.php.exampleconfig.php.example유지 합니다 .

그런 다음 config.phpapplications / config / database.php.gitignore 파일에 추가합니다.

마지막으로 배포 할 때 .example 파일 (config.php 및 database.php로)을 복사하여 사용자 지정할 수 있으며 GIT에서 추적하지 않습니다.


다른 답변의 주석에서 답변을 가져 오려면 :

$ git update-index --skip-worktree FILENAME

더 나은 옵션 인 것 같습니다 --assume-unchanged

이것에 대해 더 읽을 수 있습니다 : Git- '가정하지 않은 가정'과 '건너 뛰기'의 차이점


.gitignore파일에 넣고 필요에 따라 수동으로 복사합니다.

따라서 스켈레톤 파일 이름은 git에 있고 무시 파일 이름은 git에 있지 않지만 .gitignore에 있습니다. 이렇게하면 '템플릿'에서 '실제'로 복사하는 수동 단계 (아마도 스켈레톤보다 나은 이름)가 수행되면 즉시 무시됩니다.


주어진 답변은 문제를 부분적으로 해결하지만 더 많은 문제가 발생합니다.

"Web.Local.config"파일을 보존해야했습니다. 나를 위해 일한 유일한 해결책은 다음과 같습니다.

1. 프로젝트에서 파일을 제외

2. 파일의 별도 사본을 Web.LocalTemplate.config로 작성하십시오.

"Web.LocalTemplate.config"가 Git에 의해 추적되었으므로 모든 개발자가이를 시작점으로 사용할 수 있습니다. 그러나 프로젝트의 일부가 아닌 "Web.Local.config"는 자동으로 무시됩니다.

참고 URL : https://stackoverflow.com/questions/9794931/keep-file-in-a-git-repo-but-dont-track-changes

반응형