-
1. 시작하기
-
2. Git의 기초
- 2.1 Git 저장소 만들기
- 2.2 수정하고 저장소에 저장하기
- 2.3 커밋 히스토리 조회하기
- 2.4 되돌리기
- 2.5 리모트 저장소
- 2.6 태그
- 2.7 Git Alias
- 2.8 요약
-
3. Git 브랜치
-
4. Git 서버
- 4.1 프로토콜
- 4.2 서버에 Git 설치하기
- 4.3 SSH 공개키 만들기
- 4.4 서버 설정하기
- 4.5 Git 데몬
- 4.6 스마트 HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 또 다른 선택지, 호스팅
- 4.10 요약
-
5. 분산 환경에서의 Git
- 5.1 분산 환경에서의 워크플로
- 5.2 프로젝트에 기여하기
- 5.3 프로젝트 관리하기
- 5.4 요약
-
6. GitHub
- 6.1 계정 만들고 설정하기
- 6.2 GitHub 프로젝트에 기여하기
- 6.3 GitHub 프로젝트 관리하기
- 6.4 Organization 관리하기
- 6.5 GitHub 스크립팅
- 6.6 요약
-
7. Git 도구
- 7.1 리비전 조회하기
- 7.2 대화형 명령
- 7.3 Stashing과 Cleaning
- 7.4 내 작업에 서명하기
- 7.5 검색
- 7.6 히스토리 단장하기
- 7.7 Reset 명확히 알고 가기
- 7.8 고급 Merge
- 7.9 Rerere
- 7.10 Git으로 버그 찾기
- 7.11 서브모듈
- 7.12 Bundle
- 7.13 Replace
- 7.14 Credential 저장소
- 7.15 요약
-
8. Git맞춤
- 8.1 Git 설정하기
- 8.2 Git Attributes
- 8.3 Git Hooks
- 8.4 정책 구현하기
- 8.5 요약
-
9. Git과 여타 버전 관리 시스템
- 9.1 Git: 범용 Client
- 9.2 Git으로 옮기기
- 9.3 요약
-
10. Git의 내부
- 10.1 Plumbing 명령과 Porcelain 명령
- 10.2 Git 개체
- 10.3 Git Refs
- 10.4 Packfile
- 10.5 Refspec
- 10.6 데이터 전송 프로토콜
- 10.7 운영 및 데이터 복구
- 10.8 환경변수
- 10.9 요약
-
A1. 부록 A: 다양한 환경에서 Git 사용하기
- A1.1 GUI
- A1.2 Visual Studio
- A1.3 Eclipse
- A1.4 Bash
- A1.5 Zsh
- A1.6 Git in Powershell
- A1.7 요약
-
A2. 부록 B: 애플리케이션에 Git 넣기
-
A3. 부록 C: Git 명령어
- A3.1 설치와 설정
- A3.2 프로젝트 가져오기와 생성하기
- A3.3 스냅샷 다루기
- A3.4 Branch와 Merge
- A3.5 공유하고 업데이트하기
- A3.6 보기와 비교
- A3.7 Debugging
- A3.8 Patch 하기
- A3.9 Email
- A3.10 다른 버전 관리 시스템
- A3.11 관리
- A3.12 Plumbing 명령어
A1.6 부록 A: 다양한 환경에서 Git 사용하기 - Git in Powershell
Git in Powershell
Windows의 표준 CLI 터미널인 cmd.exe
는 Git을 사용하기에 별로 좋지 않다. Powershell을 쓸 줄 안다면 Powershell을 사용하는 것이 낫다.
PowerShell을 Windows가 아닌 Debian 같은 환경에서 사용한다면 이어지는 내용을 동일하게 적용해볼 수 있다.
Posh-Git(https://github.com/dahlbyk/posh-git) 이라는 프로젝트가 있어서 Tab 자동완성과 저장소 상태를 보여주는 프롬프트도 사용할 수 있다.
![Posh-git을 사용 중인 Powershell.](png/posh-git.png)
설치
필요한 것 (Windows 해당)
PowerShell 스크립트가 실행되게 하려면 우선 ExecutionPolicy 정책을 RemoteSigned 값(Undefined 또는 Restricted 제외한 허용)으로 변경해야 한다. RemoteSigned 값이 아닌 AllSigned 값으로 설정하면 스크립트를 실행하기 위해 전자서명 과정이 필요하다. RemoteSigned 값으로 설정하면 ZoneIdentifier가 Internet으로 설정된 경우(주로 웹에서 다운로드한 파일)만 전자서명이 필요하고 나머지 파일에 대해서는 전자서명이 필요하지 않다. Windows 시스템의 관리자 권한이 있다면 모든 사용자가 PowerShell을 사용할 수 있도록 "-Scope LocalMachine" 옵션을 사용할 수 있다. 일반적인 사용자라면 관리자 권한이 없기 때문에 "-Scope CurrentUser" 옵션으로 자신만이 사용가능하도록 설정할 수 있다. PowerShell의 Scope에 대한 자세한 내용은 https://technet.microsoft.com/de-de/library/hh847849.aspx 에서 찾아볼 수 있다. PowerShell의 ExecutionPolicy에 대한 자세한 내용은 https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy 에서 찾아볼 수 있다.
> Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force
PowerShell 갤러리로 설치
PowerShell 버전 5 이상을 사용하거나 PowerShell 4를 PackageManagement 모듈(Cmdlets)을 설치해서 사용한다면 패키지 관리자를 통해서 Posh-Git을 설치할 수 있다.
자세한 요구사항은 https://docs.microsoft.com/en-us/powershell/scripting/gallery/overview 에서 확인할 수 있다.
> Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
> Update-Module PowerShellGet -Force
> Install-Module Posh-Git -Scope AllUsers
Posh-Git을 설치할 모든 사용자에 설치하지 않도 자신만 사용하게 "-Scope CurrentUser" 옵션을 적용한다.
코드의 두 번째 명령을 실행했을 때 Module 'PowerShellGet' was not installed by using Install-Module
같은 오류 메시지가 발생한다면 다음 명령을 먼저 실행해보기 바란다.
> Install-Module PowerShellGet -Force -SkipPublisherCheck
이 명령을 실행한 후에 앞서 실패한 명령을 다시 실행해본다. 이 오류는 Windows Powershell에 이미 포함되어 배포한 모듈의 인증서가 일치하지 않기 때문이다.
PowerShell 프롬프트에 Git 정보 표시
PowerShell 프롬프트에 Git 정보를 표시하려면 posh-git을 Import 해야 한다. 이를 자동으로 하려면 import 구문을 $profile 스크립트에 추가하면 된다. 이 스크립트는 PowerShell 프롬프트가 나타날 때 마다 실행된다. 염두해 둘 부분은 $profile 스크립트가 여럿일 수 있다는 점이다. console을 위한 스크립트와 ISE(통합 스크립팅 환경)를 위한 스크립트가 분리되어 있을 수 있다.
> New-Item -Name $(Split-Path -Path $profile) -ItemType Directory -Force
> 'Import-Module Posh-Git' | Out-File -Append -Encoding default -FilePath $profile
소스로 설치
https://github.com/dahlbyk/posh-git 에서 Posh-Git을 내려받아 WindowsPowershell
디렉토리에 압축을 풀어 놓는다.
그리고 관리자 권한으로 Powershell 프롬프트를 열고 아래와 같이 실행한다.
> cd ~\Documents\WindowsPowerShell\Module\posh-git
> .\install.ps1
이렇게 profile.ps1
파일에 추가한 posh-git
은 프롬프트를 새로 열 때 부터 적용된다.