Git Portable 설치 및 설정

Git Portable 설치나 윈도우 설치판을 사용해도 큰 차이는 없지만, 개인적으로 윈도우 VM이 여러 개 있어서 윈도우마다 설치하는 것보다는 공유 폴더에 설치하고 각 VM 윈도우에서 환경 변수를 편집해서 사용하는 것이 더 편리합니다.
또한, 윈도우 설치 과정에서 항상 찌꺼기가 남고, uninstall 시 레지스트리에 키 값이 제대로 삭제되지 않는 등 시스템 통합 운영 관리에 대한 불신이 있어 가능한 Portable 버전을 사용하는 것이 개인적인 취향입니다.

 

Git Portable 설치

1.다운로드

2.압축풀기

3.환경변수 편집

1.다운로드 : https://git-scm.com/  

자신의 윈도우 비트를 고려해서 32비트 또는 64비트를 다운 받습니다

Git Portable 다운로드
Git Portable 다운로드

2. 압축풀기

7zip으로된 압축 파일을 받게될텐데 대부분 압축 프로그램하고도 호환이 됩니다.

압축읋 해제하면 다운받은 파일 이름으로 폴더가 생성 됩니다.

저는 폴더명을 Git-2으로 바꾸고 여러 VM 들이 같이 사용하기 위해 네트워크 공유 폴더 Z:\utils\Git-2\ 으로 설정 했습니다

이부분은 사용자 취향이니 동일하게 하실 필요는 없습니다

Git Portable 압축풀기
Git Portable 압축풀기

3. 환경변수 편집

Git 명령어를 어디서든 사용할 수 있도록 환경 변수를 설정합니다.
C:\PortableGit\bin과 C:\PortableGit\cmd 경로를 시스템 환경 변수 PATH에 추가합니다.

윈도우 실행 단축키 "윈도우키 + R" 누르면 실행 창이 뜨고
실행창에 "sysdm.cpl"을 입력하고 엔터를 누릅니다

윈도우 실행화면
윈도우 실행화면



탭에서 고급 을 선택후 환경변수를 클릭

윈도우 시스템 속성
윈도우 시스템 속성

고급 > 환경변수 선택 >  Path 선택후 편집

윈도우 환경변수 설정 창
윈도우 환경변수 설정 창

새로 만들기
Git 설치 경로,  bin, cmd 위치 추가

환경변수 추가 편집
환경변수 추가 편집 시

윈도우의 시스템창을 모두 확인 합니다
확인 안하면 환경변수 설정이 적용되지 않습니다

또한 적용되지 않는다면 재시작 하거나

cmd 창에서  taskkill /f /im explorer.exe  실행 시켜 준후 explorer.exe 실행으로 작업표시줄을 다시 활성화 해줍니다 

주의하실것은 taskkill /f /im explorer.exe 명령후에 작업 표시줄의 창들이 모두 사라질것입니다

 

환경변수 설정이 완료 되었습니다 


Git Portable 설정

설치를 마친후에 git 사용자 이름과 이메일을 등록 합니다 

윈도우 + R 키를 누른후

CMD 또는 Powershell 또는 git-bash 명령을 하면 커맨드라인 창이 띄웁니다.

 

일반적으로 Git을 설치후에 사용자명과 사용자 이메일 설정을 하게되는데 

보통은 아래와 같이 등록 합니다

git config --global user.name "사용자 이름 영문" 
git config --global user.email "이메일 주소"

 

사용자 설정에 대해서는 각 다른 범위의 설정 옵션들이 있습니다

  1. git config --system
    시스템의 모든 사용자와 모든 저장소에 적용됩니다. 관리자 권한이 필요할 수 있습니다.
    적용 범위: 시스템 전체
    설정 파일: Git 설치 디렉토리의 etc/gitconfig 파일
    사용예
    git config --system user.name "nuleongdung"
    git config --system user.email "nuleongdung@gmail.com"
    확인
    git config --system --get user.name
    git config --system --get user.email
  2. git config --global
    사용자의 모든 저장소에 적용됩니다
    적용 범위: 사용자 전체
    설정 파일: 사용자 홈 디렉토리의 ~/.gitconfig 파일 (Windows에서는 C:\Users\윈도우계정\.gitconfig)
    사용예
    git config --global user.name "nuleongdung"
    git config --global user.email "nuleongdung@gmail.com"
    확인
    git config --global --get user.name
    git config --global --get user.email

  3. git config --local
    현재 작업 중인 특정 저장소에만 적용됩니다. 로컬 설정이 글로벌 및 시스템 설정을 덮어씁니다.
    적용 범위: 특정 저장소
    설정 파일: 해당 저장소의 .git/config 파일
    사용예
    git config --local user.name "nuleongdung"
    git config --local user.email "nuleongdung@gmail.com"
    확인
    git config --local --get user.name
    git config --local --get user.email

설정 우선순위
1. 로컬 설정 (--local)
2. 글로벌 설정 (--global)
3. 시스템 설정 (--system)
동일한 설정이 여러 범위에서 정의된 경우, 가장 좁은 범위의 설정이 우선 적용됩니다.

예를 들어, 특정 저장소에서 로컬 설정이 글로벌 설정을 덮어씁니다.

프로젝트 단위별로 설정이 가능하며 따로 설정 하지 않는다면 다음 하위 설정이 우선 적용됩니다

 

--global  옵션은 윈도우 계정 C:\Users\윈도우 사용자명 위치에 .gitconfig파일을 생성 합니다 

윈도우 환경이 지저분 해지는것이 싫어 --system  옵션으로 git 설치경로의 etc/gitconfig 파일에 기본으로 셋팅 하려고합니다 

개인적인 작업이나 프로젝트등에서는 --local로 사용하면 됩니다

개인적으로는 옵션은 --global 없이 --system과 --local만 설정해도 됩니다.

 

초기 gitconfig 파일 내용 설명

# core 설정
[core]
    # 심볼릭 링크를 무시합니다. 주로 Windows 환경에서 사용됩니다.
    # 사용 예시: core.symlinks = false
    # 옵션 종류: true, false
    symlinks = false
    
    # 체크아웃 시 CRLF(Line Feed)를 LF로 변환하고, 커밋 시 LF를 CRLF로 변환합니다.
    # 사용 예시: core.autocrlf = true
    # 옵션 종류: true, false, input
    autocrlf = true
    
    # 파일 시스템 캐시를 사용하여 성능을 향상시킵니다.
    # 사용 예시: core.fscache = true
    # 옵션 종류: true, false
    fscache = true

# 색상 설정
[color]
    # 대화형 명령어(예: git add -i)에서 색상을 사용합니다.
    # 사용 예시: color.interactive = true
    # 옵션 종류: true, false
    interactive = true
    
    # 터미널이 색상을 지원하는 경우 자동으로 색상을 사용합니다.
    # 사용 예시: color.ui = auto
    # 옵션 종류: true, false, always, never
    ui = auto

# 도움말 형식 설정
[help]
    # git help 명령어의 출력 형식을 HTML로 설정합니다.
    # 사용 예시: help.format = html
    # 옵션 종류: man, info, web, html
    format = html

# diff 설정
[diff "astextplain"]
    # astextplain 변환기를 사용하여 텍스트 파일을 변환합니다.
    # 주로 바이너리 파일을 텍스트로 변환할 때 사용됩니다.
    # 사용 예시: diff.astextplain.textconv = astextplain
    # 옵션 종류: 변환기 명령어
    textconv = astextplain

# rebase 설정
[rebase]
    # rebase 시 자동으로 fixup 및 squash 커밋을 처리합니다.
    # 사용 예시: rebase.autosquash = true
    # 옵션 종류: true, false
    autosquash = true

[filter "lfs"]
    # Git LFS를 사용하여 파일을 클린합니다.
    # 사용 예시: filter.lfs.clean = git-lfs clean -- %f
    # 옵션 종류: 명령어
    clean = git-lfs clean -- %f
    
    # Git LFS를 사용하여 파일을 스머지합니다.
    # 사용 예시: filter.lfs.smudge = git-lfs smudge -- %f
    # 옵션 종류: 명령어
    smudge = git-lfs smudge -- %f
    
    # Git LFS 필터 프로세스를 사용합니다.
    # 사용 예시: filter.lfs.process = git-lfs filter-process
    # 옵션 종류: 명령어
    process = git-lfs filter-process
    
    # Git LFS 필터가 필수임을 지정합니다.
    # 사용 예시: filter.lfs.required = true
    # 옵션 종류: true, false
    required = true

# 자격 증명 헬퍼 설정
[credential]
    # 자격 증명 헬퍼를 선택합니다. 자격 증명 저장소를 관리하는 데 사용됩니다.
    # 사용 예시: credential.helper = helper-selector
    # 옵션 종류: 헬퍼 명령어
    helper = helper-selector
# 사용자 --system 등록 
[user]
	name = 사용자 이름
	email = 이메일주소

 

 

Git 설정을 확인하는 명령어

  1. 로컬 설정 확인:
    git config --local --list
  2. 전역 설정 확인
    git config --global --list
  3. 시스템 설정 확인
    git config --system --list

Git 설정 파일에 현재 디렉토리를 안전한 디렉토리로 추가

git config --local --add safe.directory C:/Users/your_user/my_project