개발 소스코드 관리
2. Git을 설치하고 덤으로 얻는 리눅스 환경
3. GitHub 사용하기 - 1) 계정생성, Token 발행
4. GitHub 사용하기 - 2) VSCode 연결, 해제
1. Git과 MinGW
Git은 현재 가장 많이 사용되고 있는 Version Control 소프트웨어이다. 가장 많은 오픈소스 프로젝트가 호스팅 되고 있는 곳이 GitHub이고 당연히 오픈소스를 받는 대표적인 방법이 Git이다. 이전에는 SourceForge가 가장 많았는데 내가 아는 많은 프로젝트들이 GitHub으로 이전했다. Source Forge는 CVS (Concurrent Version System)나 SVN (이건 약자가 아니라 Subversion에서 사용하는 명령어 이름인데 명칭으로 사용한다.)과 다른 Version Control도 지원했는데 이제는 GitHub이 대세이어서 많은 사람들이 git을 사용한다.
윈도우에 Git을 설치하면 덤으로 얻는 기능이 있다. 바로 MinGW (Minimalistic GNU for Windows)이다. 윈도우에 설치되는 Git은 원래 xNIX (UNIX, Linux 등 UNIX계열 OS의 통칭)에서 개발된 프로그램이다. 많은 xNIX 기능처럼 Git의 기능들도 다른 xNIX 명령을 사용해서 동작한다. 예를 들면 default editor가 vi이고, git을 접속할 때 사용하는 방법이 ssh인 것처럼. MinGW는 이렇게 xNIX에서 개발된 프로그램을 Windows에서 쉽게 컴파일할 수 있게 해주는 개발환경이면서 다른 xNIX명령어를 사용할 수 있도록 해 준다. 그래서 Git을 설치하면 MinGW를 같이 설치하는 것이다.
2. 윈도우 Git 설치
이런 이유 때문에 Git을 설치하면 물어보는 것이 많다. 하지만 대부분의 경우 Default를 선택하면 되는데, 이제부터 따라가면서 하나씩 알아보자.
- 먼저 공식 Git홈페이지에서 윈도우 Git을 다운로드한다.
Git - Downloading Package (git-scm.com)
- 설치한 컴포넌트를 선택한다.
다운로드한 프로그램을 실행하면 GPL v2라이센스에 대해 동의하는 페이지가 나오고 Next를 누르면 설치할 위치를 묻는데 위치를 입력하거나 그대로 두고 Next를 누르면 설치할 컴포넌트를 묻는 화면이 나온다. "Additional icon"을 선택해서 바탕화면에 아이콘을 만드는 것만 선택하는데, Git Bash Profile을 윈도우 터미널에도 적용할 수 있는 기능도 한번 선택해 봤다.
- Git명령어와 함께 사용할 Editor를 고른다
Next를 누르면 시작프로그램 폴더 이름을 선택하는 화면에서 원하는 이름을 정하고 Next를 다시 누르면 Default Editor를 선택하는 화면이 나온다. 나는 학교 다닐 때 아시는 분이 vi를 써야 머리가 좋아진다고 해서 배웠는데, 기능도 많고 GUI가 없는 서버에서도 개발을 쉽게 할 수 있지만, 사용법이 직관적이지 않아 다른 에디터를 선택하는 것을 권한다. 아무런 기능이 없는 Notepad보다는 Notepad++ 나 Sublime이 동작이 빠르고 VSCode를 주로 사용한다면 VSCode도 괜찮은 선택이다.
- Git에서 사용할 default branch를 고른다.
Git에서는 branch라는 강력한 기능이 있다. 예를 들어 프로그램을 짤 때 새로운 기능이 되는지 한번 테스트해 보려면 코드를 수정해야 하는데 이때 수정할 코드를 새로운 branch에 두고 작업하고 성공하면 merger를 하고 실패하면 버리면 수정하기 전 상태로 돌아가게 할 수 있도록 하는데 많이 사용한다. 또 main이나 master branch는 배포용으로 만들어서 보호할 때 사용한다. 내가 선호하는 이름을 선택하면 된다. GitHub을 사용할 때는 설정하지 않으면 default이름이 main이니 이름을 main으로 선택하면 GitHub에 repository를 만들 때 이름을 변경하지 않아도 된다.
- Git명령어를 사용할 수 있는 환경을 선택한다.
윈도우 Git을 설치할 때 같이 설치한 1. Git Bash에서만 사용할 것인지, 2. Git명령어만 윈도우의 CMD와 PowerShell에서도 사용할 것인지, 3. 아니면 MinGW를 통해 설치한 다른 프로그램들도 윈도우에서 사용할 것인지를 묻는 것인데, 대부분은 Git 명령어만 CMD나 PowerShell에서도 사용할 수 있는 것을 선택한다.
- Git명령어로 서버에 저장할 때 어느 ssh프로그램을 사용할지 선택한다.
Git을 사용해서 서버에 프로그램을 저장하는 방법에는 ssh와 http(s)가 많이 사용되는데, 이때 사용할 ssh를 Git을 설치할 때 같이 설치한 MinGW의 openSSH를 사용할 것인지 묻는 것인데, 회사에서 사용으로 따로 쓰고 있는 SSH가 없다면 default값을 선택하면 된다.
- 보안 인증서를 저장할 방법을 선택한다.
HTTPS를 사용해서 서버에 접속하려면 Certificate, 즉 인증서를 사용해야 하는데 이것을 저장하고 관리하는 방법을 선택하는 화면이다. 이것도 회사에서 마이크로소프트의 Active Directory나 유사한 인증서버를 사용하여 서버에 접속하고 있지 않는 한 OpenSSL의 ca-bundle.crt파일 하나로 관리하면 된다.
- 줄의 마지막을 어떻게 끝낼 것인지 선택한다.
내가 사용하는 모든 서버가 동일한 OS기반이면 고민하지 않아도 되지만, 윈도우에서 작업하는 개발자의 경우 작업은 윈도우 형식으로 저장과 배포는 리눅스 방식으로 하는 경우가 많다. 이때, 1. Checkout 할 때 줄의 마지막을 윈도우 형식 CR + LF로 하고 서버로 저장할 때 자동으로 LF로 바꾸거가, 2. Checkout 할 때 그대로 뒀다고 저장할 때 LF로 바꾸거나, 3. Checkout도 저장도 내 컴퓨터 환경에 맞추거나를 선택할 수 있다. 1. 의 경우는 작업자가 윈도우와 서버에 모두 있는 경우, 2. 의 경우는 서버 프로그램은 받기만 하고 작업은 모두 윈도우에서 할 경우, 3. 의 경우는 서버 작업자가 없는 경우 선택하면 된다.
- Git Bash에서 사용할 터미널 타입을 선택한다.
윈도우 Git을 설치하면 Git Bash터미널이 만들어지는데, 이때 터미널을 cmd.exe를 그대로 사용할 것인지, MSYS에서 제공하는 리눅스형 터미널을 사용할 것인지를 선택한다. 개인적으로는 리눅스 터미널이 기능도 많고 더 이쁘기 때문에 선호한다.
- git pull명령을 했을 때 할 행동을 선택한다.
git pull명령을 했을 때 rebase (merge 하면서 작업 버전은 지운다)를 같이 실행할 것인지, fast-forward (최신 버전으로 바꾼다)를 실행할 것인지, 아니면 git이 알아서 merge를 하거나 fast-forward를 하거 할 것인지를 선택하는 것인데, rebase가 일반적으로 merge보다 branch에 더 많은 영향을 주기 때문에 default인 git이 알아서 하도록 선택하는 방법을 선택했다.
나머지는 인증서 관리를 Git Credential Manager를 사용할 것인지, 테스트 중인 개발 기능을 사용할 것인지를 선택할 것인지에 대한 부분인데, 모두 default로 두고 Next를 누르면 Git설치가 끝난다.
3. 윈도우 + 리눅스 = Git Bash
이제 Git Bash를 실행하고 ls /bin를 입력해 본다. c:드라이브는 /c 에 d드라이브틑 /d의 경로부터 시작하므로 d:\works에 가려면
cd /d/works
를 사용하여 이동하면 된다.
Git Bash에는 minGW에서 지원하는 많은 리눅스 프로그램들이 기본적으로 설치되어 있다. grep이나 find를 사용해서 현재 폴더 아래의 모든 .jsx 파일에서 Main이 포함되어 있는 것을 찾는 것도 간단한 리눅스 명령으로 가능하다.
find ./ -name *.jsx | grep Main
이밖에도 awk, curl, vi, tail, less 등 다양한 리눅스 명령어들을 Git Bash를 통해 실행할 수 있는데, 더 좋은 것은 윈도우 명령을 함께 사용할 수 있다는 것이다. 왜냐하면 MinGW는 윈도우상의 리눅스 환경이기 때문이다. 앞에서 설치한 VSCode를 실행하기 위해서는
code .
라고 입력하면 된다. MSYS를 사용해서 MinGW를 설치하게 되면 더 많은 기능을 얻을 수 있지만, Git Bash로 얻는 기능만으로도 많은 것을 할 수 있다.
만일 Git Bash에서 사용하는 명령어를 늘리고 싶거나, zsh나 bash-it을 사용해서 좀 더 편리하게 사용하고 싶으면 pacman을 설치해야 한다. 자세한 방법은 아래 링크를 참조하면 된다.
내가 하는 개발이 대부분 우분투 서버에서 돌아가기 때문에 윈도우의 WSL 2 기능을 사용해서 우분투에 설치하는 방법을 많이 사용하지만 Git Bash 또한 리눅스 명령어들을 리눅스에서 사용할 수 있게 해 주는 좋은 환경이다. 윈도우에 우분투를 설치하는 방법은 아래 링크를 참고하면 된다.
'윈도우 개발환경' 카테고리의 다른 글
개발 소스코드 관리; 4. GitHub 사용하기 - 2) VSCode 연결, 해제 (0) | 2023.04.03 |
---|---|
개발 소스코드 관리; 3. GitHub 사용하기 - 1) 계정생성, Token 발행 (0) | 2023.04.01 |
개발 소스코드 관리; 1. 형상관리, CI/CD (Continuous Integration, Continuous Delivery) (2) | 2023.03.29 |
VirtualBox와 Vagrant로 윈도우에 우분투와 Docker설치하기 (0) | 2023.03.08 |
윈도우에 만드는 리눅스 개발 환경; 5. Docker로 MySQL시작하기 (1) | 2023.02.18 |