source

Windows에서 .gitconfig 위치 변경

myloves 2023. 4. 8. 10:18

Windows에서 .gitconfig 위치 변경

Git에서는 .는 Windows Git의 .gitconfig에 .c:\documents and settings\user\

.가 .gitconfig에 이 해야 ?c:\my_configuration_files\

할 수 있는 일이 있습니까?

「 」를 설정했을 HOME로로 합니다.c:\my_configuration_files\그러면 git이 .syslogconfig를 찾습니다.여기에서는 환경변수 편집에 대해 설명합니다.HOME 변수를 설정한 후 cmd를 다시 열어야 합니다.exe 창."set" 명령을 사용하여 HOME이 실제로 올바른 값을 가리키는지 확인합니다.

물론 HOME을 변경하면 다른 애플리케이션에도 영향을 미칩니다.그러나 git의 소스 코드를 읽어보면 명령줄을 조정할 필요 없이 파일 위치를 변경할 수 있는 유일한 방법인 것 같습니다.스테판GIT_CONFIG를 사용합니다. , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,--global모든 git 호출에 플래그를 붙입니다(또한 로컬 .timeout/config 파일은 무시됩니다).

이에 대한 HOME 디렉토리 변경이 잘못되었습니다.Gitconfig를 위한 심볼릭 링크를 HOME 디렉토리에 작성하는 것이 좋습니다.

  1. 사용자 홈 디렉토리에서 원하는 디렉토리로 .gitconfig를 이동합니다.
  2. Administrator로 명령줄 실행
  3. 사용자의 홈 디렉토리로 이동합니다.
  4. mklink .gitconfig \PathForNewLocationOfConfig.gitconfig 라고 입력합니다.

이 문제는 다른 컨피규레이션파일에 적용되었던 접근법과 약간 다른 방법으로 해결했습니다.Git Config는 다른 위치에 있는 구성 파일을 가리킬 수 있도록 지원합니다.그런 다음 대체 위치를 가져오고 .gitconfig 파일의 일부인 것처럼 확장합니다.이제 .gitconfig에는 엔트리가 하나밖에 없습니다.

[include]
   path = c:\\path\\to\\my.config

Git에 의해 .gitconfig 파일에 작성된 업데이트는 포함 경로를 덮어쓰지 않습니다.즉, 경우에 따라 .gitconfig에서my.config로 값을 이동해야 할 수 있습니다.

의 [파일환경]섹션을 확인합니다.

1 에서는, 「2.34.1」, 「Da」, 「Da」를 설정할 수 .GIT_CONFIG_GLOBAL:.gitconfig자세한 것은, https://git-scm.com/docs/git-config#ENVIRONMENT 를 참조해 주세요.

쉬운 은 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★,C:\Program Files (x86)\Git\etc 수 있습니다.profile스트트편편편편편

if# Set up USER's home directory나는 그 물건을 꺼냈는데if, 파일드라이브상에 을했습니다.gitconfig는 gitconfig 파일을 카피했습니다.

저는 (적어도 git-gui의) Start In Location을 변경해도 .gitconfig를 찾는 장소에는 영향을 주지 않았습니다.직장에서의 셋업은 U:를 자택에 탑재하고 있습니다만, U:를 쓸 수 있는 권한은 없습니다.직접 작성되는 서브 디렉토리만이 내부에 있기 때문에, 이것은 저에게 있어서 딜 브레이커였습니다.

그 어플리케이션만의 HOMEDRIVE와 HOMEPATH env 변수를 덮어쓰는 배치 스크립트를 만들어 문제를 해결했습니다.그런 다음 시작 메뉴 바로 가기를 해당 배치 스크립트를 가리키도록 변경했습니다.

먼저 HOME 설정을 확인한 후 HOME 및 HOMEDRIVE를 기존 dir로 변경합니다.

c:\git>set HOME
HOME=U:\
HOMEDRIVE=U:
HOMEPATH=\

다음으로 홈 및 홈 드라이브 변경

set HOME=c:\tmp
set HOMEDRIVE=C:
  1. 더더 folder 로 변경%PROGRAMFILES%\Git\etc
  2. " " " 편집profile
  3. 줄에 HOME="c:\location_were_you_want_gitconfig"
  4. 다 했어요.

참고: 파일 권한은 일반적으로 제한되어 있으므로 적절히 변경하지 않으면 변경 내용을 저장할 수 없습니다.

또는 환경변수 mklink권한이 부족하기 때문에 문제를 쉽게 해결할 수 있는 방법은 다른 장소에서 git batch를 시작하는 것입니다.

Bash. 후 in Git Bash.exe로 합니다.c:\my_configuration_files\

나도 같은 일을 하고 싶었다.제가 찾은 최고의 솔루션은 @MicTech의 솔루션이었습니다.단, @MotoWilliams가 지적한 바와 같이 Git에 의한 .gitconfig 파일에 대한 업데이트는 지속되지 않습니다.이 파일은 링크를 새로운 설정만 포함하는 새로운 파일로 대체됩니다.

이 문제를 해결하려면 다음 PowerShell 스크립트를 작성하여 프로파일 시작 스크립트로 실행합니다.실행될 때마다 사용자의 .gitconfig에 추가된 모든 설정을 글로벌 설정으로 복사한 다음 .gitconfig 파일의 모든 텍스트를 글로벌파일을 Import하는 [include]헤더로 바꿉니다.

글로벌 .gitconfig 파일은 다른 많은 글로벌스크립트 및 툴과 함께 repo에 보관하고 있습니다.스크립트가 글로벌파일에 추가한 변경을 체크 인하기만 하면 됩니다.

이것은 나에게 꽤 투명하게 작동하는 것 같다.도움이 됐으면 좋겠다!

9월 9일: 컨피규레이션파일에 추가된 새로운 엔트리가 중복되는 것을 검출하여 무시하도록 갱신되었습니다.이것은 Source Tree와 같은 툴에 도움이 됩니다.이 툴은 기존 업데이트를 찾을 수 없고 include를 따르지 않을 경우 새로운 업데이트를 작성합니다.

function git-config-update
{
  $localPath = "$env:USERPROFILE\.gitconfig".replace('\', "\\")
  $globalPath = "C:\src\github\Global\Git\gitconfig".replace('\', "\\")

  $redirectAutoText = "# Generated file. Do not edit!`n[include]`n  path = $globalPath`n`n"
  $localText = get-content $localPath

  $diffs = (compare-object -ref $redirectAutoText.split("`n") -diff ($localText) | 
    measure-object).count

  if ($diffs -eq 0)
  {
    write-output ".gitconfig unchanged."
    return
  }

  $skipLines = 0
  $diffs = (compare-object -ref ($redirectAutoText.split("`n") | 
     select -f 3) -diff ($localText | select -f 3) | measure-object).count
  if ($diffs -eq 0)
  {
    $skipLines = 4
    write-warning "New settings appended to $localPath...`n "
  }
  else
  {
    write-warning "New settings found in $localPath...`n "
  }
  $localLines = (get-content $localPath | select -Skip $skipLines) -join "`n"
  $newSettings = $localLines.Split(@("["), [StringSplitOptions]::RemoveEmptyEntries) | 
    where { ![String]::IsNullOrWhiteSpace($_) } | %{ "[$_".TrimEnd() }

  $globalLines = (get-content  $globalPath) -join "`n"
  $globalSettings =  $globalLines.Split(@("["), [StringSplitOptions]::RemoveEmptyEntries)| 
    where { ![String]::IsNullOrWhiteSpace($_) } | %{ "[$_".TrimEnd() }

  $appendSettings = ($newSettings | %{ $_.Trim() } | 
    where { !($globalSettings -contains $_.Trim()) })
  if ([string]::IsNullOrWhitespace($appendSettings))
  {
    write-output "No new settings found."
  }
  else
  {
    echo $appendSettings
    add-content $globalPath ("`n# Additional settings added from $env:COMPUTERNAME on " + (Get-Date -displayhint date) + "`n" + $appendSettings)
  }
  set-content $localPath $redirectAutoText -force
}

오랫동안 이 문제에 관심을 보여온 사람으로서. 매뉴얼을 참조하십시오.

$XDG_CONFIG_HOME/git/config - 두 번째 사용자 고유의 설정 파일.한다면$XDG_CONFIG_HOME이 설정되지 않았거나 비어 있지 않습니다.$HOME/.config/git/config 。이 파일에 설정된 단일 값 변수는 ~/.gitconfig에 있는 변수에 의해 덮어씁니다.Git의 구버전을 사용하는 경우는, 이 파일의 서포트가 얼마전에 추가되었기 때문에, 이 파일을 작성하지 않는 것이 좋습니다.

최근에 추가된 것입니다.이 덤프는 2.15.0부터입니다.

저는 좋아요.

저에게는 매우 간단하게 동작했습니다.

  1. 이전 디렉토리에서 %USER PROFILE%로 ".gitconfig" 복사 ("c:\users\username"의 표준)
  2. GITGUI 및 GITBASH의 시작 아이콘을 마우스 오른쪽 버튼으로 클릭하고 "실행"을 변경합니다: %HOMEDRIVE%%"HOMEPATH%"에서 "%USER Profile%"로 이동합니다.물론 %USER PROFILE% 대신 다른 디렉토리를 사용할 수 있습니다.

전에 찍은 스크린샷

뒤에 찍힌 스크린샷

HOME 가 없는 Windows HOME 변수
OS: Windows 10
2..1 버 2: 2.27.0.windows.1

Git의 포터블 버전을 사용하고 있기 때문에, 모든 설정 파일은 펜 드라이브(E:)에 격납부탁드립니다.이것이 나에게 효과가 있었다.

  1. https://git-scm.com/에서 휴대용 Git을 다운로드하세요.파일을 실행하여 필요한 위치에 설치합니다.E:\git에 설치했습니다.
  2. E:\git에서 git-bash.exe를 실행합니다.
  3. .gitconfig다른 bash 파일도 E에 있기 때문에 home이라는 폴더를 만들었습니다.
    mkdir home
  4. etc 폴더로 이동하여 profile이라는 파일을 엽니다(이 경우는 E:\git\etc\profile).
  5. 프로파일 파일 끝에 작성한 홈디렉토리(또는 .gitconfig 파일이 있는 디렉토리)에 절대 경로를 추가합니다.
    HOME="E:\git\home"

이제 C:에서 더 이상 검색하지 않습니다.\Users<username> 디렉토리의 .gitconfig는 위의 설정 경로만 검색합니다.

$ git config --global --list
fatal: unable to read config file 'E:/git/home/.gitconfig': No such file or directory

아직 .gitconfig 파일이 없기 때문에 오류가 발생하였습니다.이는 Windows에서 HOME 디렉토리를 변경하지 않고 .gitconfig 파일의 위치를 성공적으로 변경했음을 보여주기 위한 것입니다.

- 열림1 - 열림D:\PortableApps\Git-2.31.1PortableByAmir\etc\profile notepad(메모장)

- 을 2에 합니다.profile 삭제:

HOME="/PortableHome"

- 3개의 슬롯을 만듭니다.PortableHome입니다.D:\PortableApps\Git-2.31.1PortableByAmir\

4 카피

C:\Users\Amir\.gitconfig
C:\Users\Amir\.git-credentials

로.

D:\PortableApps\Git-2.31.1PortableByAmir\PortableHome

★★★★★★D:\PortableApps\Git-2.31.1PortableByAmir\bin\bash.exe 것은 .D:\PortableApps\Git-2.31.1PortableByAmir\git-bash.exe

언급URL : https://stackoverflow.com/questions/4050905/changing-gitconfig-location-on-windows