구성 관리를 위해 git을 사용할 때 머신별 구성 처리

구성 관리를 위해 git을 사용할 때 머신별 구성 처리

나는 한동안 시스템 구성을 관리하기 위해 git repo를 사용해 왔습니다. Digital Ocean 튜토리얼의 문서를 사용했습니다.여기. 내 서버에 원격 저장소가 거의 생겼습니다. 저장소의 git clone을 만듭니다. 그런 다음 도트 파일과 디렉터리를 홈 디렉터리에 심볼릭 링크합니다. 구성 파일을 변경하면 원격 저장소로 git push하면 됩니다.

내가 겪고 있는 문제는 특정 구성의 다른 버전이 필요하다는 것입니다. 예를 들어, .i3blocks 구성은 가정용 워크스테이션, 노트북 또는 업무용 컴퓨터를 사용하는지에 따라 다릅니다. 저는 git에 익숙하지 않아서 이 문제를 어떻게 처리해야 할지 모르겠습니다. 어떤 제안이 있으십니까?

답변1

이것은 실제로 자식 문제가 아닙니다. 대신, 가지고 있는 구성 파일의 유형, 다른 파일을 읽기 위해 제공하는 옵션, 시스템마다 어떻게 다른지 고려해야 합니다.

예를 들어, ~/.bashrc호스트별 구성을 한 줄로 읽는 기본 파일이 있을 수 있습니다 source.

DOTFILES=~/.dotfiles
source $DOTFILES/$HOSTNAME.bashrc 

구성 구문에서 이러한 작업을 허용하지 않는 다른 프로그램의 경우 실제로 저장소에 서로 다른 시스템에 대한 여러 파일이 있고 적절한 파일만 연결해야 할 수도 있습니다.

ln -s ~/.dotfiles/i3blocks.$HOSTNAME ~/.i3blocks 

이를 git Hook에 의해 트리거되는 빌딩 블록에서 파일을 빌드하는 일부 스크립트 또는 일부 템플릿 메커니즘과 결합할 수도 있습니다.

답변2

나는 비슷한 일을했고 다른 설정으로 다른 지점을 사용했습니다. 그렇게 하면 특정 컴퓨터에서 원하는 파일을 얻기 위해 다음과 같은 git checkout config-laptop작업 을 수행할 수 있습니다.git checkout config-htpc

또한 한 브랜치의 파일을 변경하고 이를 다른 브랜치에 전파하려는 경우 여러 브랜치에 병합할 수 있습니다. 다음과 같은 도구를 사용하세요.힘내 크라켄원하는 부분(블록)만 병합하거나 심지어 한 줄만 병합할 수도 있습니다.

관련 정보