diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 6ba6f76..29bf9b0 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -2,13 +2,14 @@ [Introduction](README.md) -# Install and Setting +# Background and Setting -- [설치](install/README.md) - - [패키지 관리자를 사용하여 설치](install/package-manager.md) - - [바이너리 파일을 받아 설치](install/binary.md) +- [배경]() + - [버전 관리 시스템이란?]() + - [Git의 기초]() - [세팅](setting/README.md) - [터미널 세팅](setting/terminal.md) + - [Git 설치](setting/install-git.md) - [계정 아이덴티티 설정](setting/identity.md) - [SSH 키 생성 및 GitHub에 등록](setting/ssh.md) @@ -40,4 +41,4 @@ - [Git 사용하기](practice/use-git.md) - [풀 리퀘스트(PR) 날리기](practice/create-pr.md) - [풀 리퀘스트(PR) 리뷰 및 승인하기](practice/review-pr.md) - - [마무리](practice/end.md) \ No newline at end of file + - [마무리](practice/end.md) diff --git a/src/background/README.md b/src/background/README.md new file mode 100644 index 0000000..e69de29 diff --git a/src/background/about-git.md b/src/background/about-git.md new file mode 100644 index 0000000..e69de29 diff --git a/src/background/about-version-control-system.md b/src/background/about-version-control-system.md new file mode 100644 index 0000000..e69de29 diff --git a/src/images/GitBashHere.PNG b/src/images/GitBashHere.PNG deleted file mode 100644 index 6457c62..0000000 Binary files a/src/images/GitBashHere.PNG and /dev/null differ diff --git a/src/images/SSH1.PNG b/src/images/SSH1.PNG deleted file mode 100644 index fe45be2..0000000 Binary files a/src/images/SSH1.PNG and /dev/null differ diff --git a/src/images/SSH2.PNG b/src/images/SSH2.PNG deleted file mode 100644 index dd7759a..0000000 Binary files a/src/images/SSH2.PNG and /dev/null differ diff --git a/src/images/SSH3.PNG b/src/images/github-ssh-configure-0.png similarity index 100% rename from src/images/SSH3.PNG rename to src/images/github-ssh-configure-0.png diff --git a/src/images/SSH4.PNG b/src/images/github-ssh-configure-1.png similarity index 100% rename from src/images/SSH4.PNG rename to src/images/github-ssh-configure-1.png diff --git a/src/images/SSH5.PNG b/src/images/github-ssh-configure-2.png similarity index 100% rename from src/images/SSH5.PNG rename to src/images/github-ssh-configure-2.png diff --git a/src/images/WindowsTerminal1.PNG b/src/images/windows-terminal-0.png similarity index 100% rename from src/images/WindowsTerminal1.PNG rename to src/images/windows-terminal-0.png diff --git a/src/images/WindowsTerminal2.PNG b/src/images/windows-terminal-1.png similarity index 100% rename from src/images/WindowsTerminal2.PNG rename to src/images/windows-terminal-1.png diff --git a/src/images/WindowsTerminal3.PNG b/src/images/windows-terminal-2.png similarity index 100% rename from src/images/WindowsTerminal3.PNG rename to src/images/windows-terminal-2.png diff --git "a/src/images/\354\204\244\354\271\2301.PNG" "b/src/images/\354\204\244\354\271\2301.PNG" deleted file mode 100644 index cb47d98..0000000 Binary files "a/src/images/\354\204\244\354\271\2301.PNG" and /dev/null differ diff --git "a/src/images/\354\204\244\354\271\23010-1.PNG" "b/src/images/\354\204\244\354\271\23010-1.PNG" deleted file mode 100644 index d6eed90..0000000 Binary files "a/src/images/\354\204\244\354\271\23010-1.PNG" and /dev/null differ diff --git "a/src/images/\354\204\244\354\271\23010.PNG" "b/src/images/\354\204\244\354\271\23010.PNG" deleted file mode 100644 index b7dc483..0000000 Binary files "a/src/images/\354\204\244\354\271\23010.PNG" and /dev/null differ diff --git "a/src/images/\354\204\244\354\271\23011.PNG" "b/src/images/\354\204\244\354\271\23011.PNG" deleted file mode 100644 index ecc16c7..0000000 Binary files "a/src/images/\354\204\244\354\271\23011.PNG" and /dev/null differ diff --git "a/src/images/\354\204\244\354\271\23012.PNG" "b/src/images/\354\204\244\354\271\23012.PNG" deleted file mode 100644 index fbbcb31..0000000 Binary files "a/src/images/\354\204\244\354\271\23012.PNG" and /dev/null differ diff --git "a/src/images/\354\204\244\354\271\23013.PNG" "b/src/images/\354\204\244\354\271\23013.PNG" deleted file mode 100644 index 6f84e81..0000000 Binary files "a/src/images/\354\204\244\354\271\23013.PNG" and /dev/null differ diff --git "a/src/images/\354\204\244\354\271\2302-1.PNG" "b/src/images/\354\204\244\354\271\2302-1.PNG" deleted file mode 100644 index 85d32ca..0000000 Binary files "a/src/images/\354\204\244\354\271\2302-1.PNG" and /dev/null differ diff --git "a/src/images/\354\204\244\354\271\2302.PNG" "b/src/images/\354\204\244\354\271\2302.PNG" deleted file mode 100644 index e6be9b6..0000000 Binary files "a/src/images/\354\204\244\354\271\2302.PNG" and /dev/null differ diff --git "a/src/images/\354\204\244\354\271\2303.PNG" "b/src/images/\354\204\244\354\271\2303.PNG" deleted file mode 100644 index 3c55c2c..0000000 Binary files "a/src/images/\354\204\244\354\271\2303.PNG" and /dev/null differ diff --git "a/src/images/\354\204\244\354\271\2304.PNG" "b/src/images/\354\204\244\354\271\2304.PNG" deleted file mode 100644 index e8acbf9..0000000 Binary files "a/src/images/\354\204\244\354\271\2304.PNG" and /dev/null differ diff --git "a/src/images/\354\204\244\354\271\2305.PNG" "b/src/images/\354\204\244\354\271\2305.PNG" deleted file mode 100644 index 4658f76..0000000 Binary files "a/src/images/\354\204\244\354\271\2305.PNG" and /dev/null differ diff --git "a/src/images/\354\204\244\354\271\2306.PNG" "b/src/images/\354\204\244\354\271\2306.PNG" deleted file mode 100644 index 09c230a..0000000 Binary files "a/src/images/\354\204\244\354\271\2306.PNG" and /dev/null differ diff --git "a/src/images/\354\204\244\354\271\2307.PNG" "b/src/images/\354\204\244\354\271\2307.PNG" deleted file mode 100644 index 4b3aba5..0000000 Binary files "a/src/images/\354\204\244\354\271\2307.PNG" and /dev/null differ diff --git "a/src/images/\354\204\244\354\271\2308.PNG" "b/src/images/\354\204\244\354\271\2308.PNG" deleted file mode 100644 index 266e3d2..0000000 Binary files "a/src/images/\354\204\244\354\271\2308.PNG" and /dev/null differ diff --git "a/src/images/\354\204\244\354\271\2309.PNG" "b/src/images/\354\204\244\354\271\2309.PNG" deleted file mode 100644 index dcf673c..0000000 Binary files "a/src/images/\354\204\244\354\271\2309.PNG" and /dev/null differ diff --git a/src/install/README.md b/src/install/README.md deleted file mode 100644 index 7725a1a..0000000 --- a/src/install/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# 설치 - -Git을 사용하려면 우선 설치할 필요가 있다. 크게 3가지 방법으로 설치 가능하다. - -* [패키지 관리자를 사용하여 설치](./package-manager.md) -* [별도의 바이너리 인스톨러를 받아 설치](./binary.md) -* 직접 소스코드를 내려받아서 컴파일 - -패키지 관리자를 사용하여 설치하는 것은 가장 간편하고 보편적인 방법이다. -이 방법을 사용하여 설치하는 것을 권장한다. - -바이너리 인스톨러를 받아 설치하는 방법은 Windows에서 주로 사용하였던 방법이다. - -가장 최신 버전이 필요하다면 직접 소스 코드를 받은 후 컴파일하여 사용할 수도 있다. -이 방법은 여기서 다루지 않는다. diff --git a/src/install/binary.md b/src/install/binary.md deleted file mode 100644 index 3117346..0000000 --- a/src/install/binary.md +++ /dev/null @@ -1,36 +0,0 @@ -# 바이너리 파일을 받아 설치 -Git 홈페이지에서 바이너리 파일을 받아 설치할 수도 있다. 이 경우 인스톨러에서 몇 가지 기본 설정을 도와준다. -여기서는 Windows 를 기준으로 설명하며, 작성 시 사용한 버전은 `2.35.1.2-64-bit` 및 `2.36.1-64-bit` 버전이다. -만약 최신 버전이 있다면 최신 버전을 받으면 된다. - -## Windows -1. [여기](http://git-scm.com/download/win)에서 "Click here to download" 링크 클릭 -2. 다운로드한 파일 실행 -3. "Only show new options"를 체크하지 **않고** "Next" 클릭 - ![설치1](../images/%EC%84%A4%EC%B9%981.PNG) -4. 설치 경로 지정 -5. 필요한 옵션을 체크한 후 "Next" 를 클릭한다. 다음은 그 예시이다. - ![설치2](../images/%EC%84%A4%EC%B9%982-1.PNG) -6. 시작 메뉴에 폴더 만들 것인지 묻는 창이 뜬다면, "Next" 클릭 -7. 사용할 에디터를 등록한다. - **Visual Studio Code**가 설치되어 있는 경우 위 사진처럼 Code를 사용할 수 있고, 아니면 메모장(Notepad)이나 본인이 편한 에디터(Vim 등)로 설정하면 된다. - 나중에 커밋 메시지를 작성하거나 머지 커밋이 발생할 때 여기서 설정했던 에디터가 열린다. - ![설치3](../images/%EC%84%A4%EC%B9%983.PNG) -8. 초기 브랜치 이름을 `main`[^note] 으로 변경한 후 "Next" 클릭 - ![설치4](../images/%EC%84%A4%EC%B9%984.PNG) -9. 다음 사진들처럼 잘 선택한 후 "Next" 클릭 - ![설치5](../images/%EC%84%A4%EC%B9%985.PNG) - ![설치6](../images/%EC%84%A4%EC%B9%986.PNG) - ![설치7](../images/%EC%84%A4%EC%B9%987.PNG) - ![설치8](../images/%EC%84%A4%EC%B9%988.PNG) - ![설치9](../images/%EC%84%A4%EC%B9%989.PNG) -10. `git pull` 명령어의 기본 동작을 설정한다. - 여러 이유로 기본값을 사용하는 것은 추천하지 않으며 2번 또는 3번을 체크하는 것을 권장한다. - 여기서는 2번을 체크한다. 이는 `git pull` 입력 시 `git pull --rebase` 명령을 사용한 것과 동일하게 처리한다. - ![설치10](../images/%EC%84%A4%EC%B9%9810-1.PNG) -11. 다음 사진들처럼 잘 체크한 후 설치를 진행한다. - ![설치11](../images/%EC%84%A4%EC%B9%9811.PNG) - ![설치12](../images/%EC%84%A4%EC%B9%9812.PNG) - ![설치13](../images/%EC%84%A4%EC%B9%9813.PNG) - -[^note]: 예전에는 리포지토리의 기본 브랜치 이름이 `master` 였으나, 지금은 `main` 을 사용하는 추세이다. diff --git a/src/install/package-manager.md b/src/install/package-manager.md deleted file mode 100644 index 25f82d1..0000000 --- a/src/install/package-manager.md +++ /dev/null @@ -1,25 +0,0 @@ -# 패키지 관리자를 사용하여 설치 -Git은 운영체제에서 제공하는 패키지 관리자를 이용하여 설치할 수 있다. - -## Windows -윈도우는 Windows 10 버전 1709부터 공식 패키지 관리자인 `winget` 을 지원한다. - -``` -winget install -e --id Git.Git -``` - -## Linux -각 리눅스 배포판에서 제공하는 패키지 관리자를 사용하면 된다. -예를 들어 Ubuntu/Debian 의 경우 `apt` 을 이용한다. - -``` -sudo apt install git -``` - -## macOS -Mac은 기본적으로 개발을 하기 위해서는 Xcode를 설치해야 하는데, 이 때 Git이 자동으로 설치된다. -필요한 경우 macOS 용 패키지 관리자인 `brew` 를 이용하여 설치할 수도 있다. - -``` -brew install git -``` diff --git a/src/setting/README.md b/src/setting/README.md index 2bc39f1..4532a70 100644 --- a/src/setting/README.md +++ b/src/setting/README.md @@ -1,10 +1,4 @@ # 세팅 -Git을 설치하였다고 바로 Git을 사용할 수는 없다. 실제 Git을 사용하려면 몇 가지 세팅을 더 해줘야 한다. -명령어를 입력하기 위하여 터미널을 세팅 및 실행하여야 하며, Git 자체의 최초 설정도 진행하여야 한다. -그리고 GitHub을 이용하기 위한 인증 설정 역시 필요하다. - - -* [터미널 세팅](./terminal.md) -* [계정 아이덴티티 설정](./identity.md) -* [SSH 키 생성 및 GitHub에 등록](./ssh.md) +이 챕터에서는 Git을 사용하는데 필요한 작업에 대하여 알아본다. 우선 명령어를 입력할 수 있도록 터미널을 세팅하고 실행하는 +방법에 대해 알아본다. 그리고 Git을 사용하기 위하여 설치 및 최초 설정을 진행한다. 마지막으로 GitHub을 이용하기 위한 인증 설정에 대해 설명한다. diff --git a/src/setting/identity.md b/src/setting/identity.md index 9d6fdfd..ef684b3 100644 --- a/src/setting/identity.md +++ b/src/setting/identity.md @@ -1,33 +1,56 @@ -# 계정 아이덴티티 설정 -Git을 설치한 후 터미널을 세팅하였으면 이제 Git 명령어를 칠 준비가 된 것이다. -하지만 Git을 사용하려면 몇 가지 환경 설정을 더 할 필요가 있다. +# Git 설정 +터미널을 세팅한 후 Git을 설치하였으면 이제 Git 명령어를 칠 준비가 된 것이다. +하지만 실제로 Git을 사용하려면 사용자 정보나 몇 가지 환경 설정을 더 할 필요가 있다. -`git config` 로 설정 내용을 확인하고 변경할 수 있는데, 이는 다음 두 설정 파일에서 값을 읽어 가져온다. +기본적으로 Git의 설정은 다음 두 파일에서 값을 읽고 수정하여 진행할 수 있다. * 현재 사용자에게 적용되는 설정인 `~/.gitconfig` -* 현재 작업 중인 프로젝트에만 적용되는 설정인 `.git/config` +* 현재 디렉토리에만 적용되는 설정인 `.git/config` 설정 파일은 `.git/config` 파일이 `~.gitconfig` 파일보다 우선시 된다. -## 사용자 정보 -Git을 설치한 후 가장 먼저 할 일은 사용자 이름과 이메일 주소를 설정하는 것이다. +## Git 설정하기 + +앞에서 언급한 파일을 수정하여도 무방하지만, 여기서는 `git config` 명령어를 사용하여 설정을 진행한다. +터미널을 실행한 후 다음 과정을 진행한다. -터미널을 실행한 후, 다음을 입력한다. -`[your_name]` 및 `[you@example.com]` 부분에 자신의 이름과 이메일을 적으면 된다. +### 사용자 정보 + +Git을 설치한 후 가장 먼저 할 일은 사용자 이름과 이메일 주소를 설정하는 것이다. +다음과 같이 입력하여 사용자의 정보를 설정한다. `[your_name]` 및 `[you@example.com]` 부분에 자신의 이름과 이메일을 적으면 된다. +```console +$ git config --global user.name "[your_name]" +$ git config --global user.email "[you@example.com]" ``` -git config --global user.name "[your_name]" -git config --global user.email "[you@example.com]" + +> `--global` 옵션은 현재 사용자의 모든 리포지토리에 같은 아이덴티티를 적용하겠다는 의미이다. +> 만약 작업 중인 리포지토리에만 이 아이덴티티를 적용하고 싶다면 `--global` 대신 `--local` 옵션을 적어 실행한다. + +### 기본 브랜치 이름 + +Git은 원래 기본 브랜치 이름으로 `master`라는 이름을 사용하였으나, 현재의 Git 생태계는 `main`이라는 이름을 사용하는 것을 +권장한다. 따라서 다음과 같이 기본 브랜치 이름을 `main`으로 지정한다. + +```console +$ git config --global init.defaultBranch main ``` -`--global` 옵션은 현재 사용자의 모든 레포지토리에 같은 아이덴티티를 적용하겠다는 의미이다. -만약 작업 중인 프로젝트에만 이 아이덴티티를 적용하고 싶다면 `--global` 대신 `--local` 옵션을 적어 실행한다. +### Git Pull 기본 동작 변경 -## 설정 확인 -`git config --list` 명령을 실행하면 설정한 모든 것이 보여진다. -설치법이나 세팅에 따라 다음 예시보다 추가적인 항목이 더 있을 수 있다. +Git에서는 원격에서 업데이트가 된 데이터를 로컬에 반영할 때 `git pull` 명령어를 사용한다. 하지만 이 명령어의 기본 동작은 +Pull의 동작을 정확히 이해하지 못한 채 사용해서는 안된다. 정석은 `ff-only` 모드를 사용하는 것이지만, 여기서는 편의상 +`rebase` 모드를 사용한다. +```console +$ git config --global pull.rebase true ``` + +## 설정 확인 + +`git config --list` 명령을 실행하면 설정한 모든 것이 보여진다. 이는 설치법이나 세팅에 따라 다음 예시보다 추가적인 항목이 더 있을 수 있다. + +```console $ git config --list user.email=[REDACTED] user.name=[REDACTED] diff --git a/src/setting/install-git.md b/src/setting/install-git.md new file mode 100644 index 0000000..4e72f81 --- /dev/null +++ b/src/setting/install-git.md @@ -0,0 +1,53 @@ +# 설치 + +Git을 사용하려면 우선 설치를 하여야 한다. 이는 다음과 같이 크게 3가지 방법으로 설치할 수 있다. + +* 패키지 관리자를 사용하여 설치 +* 별도의 바이너리 인스톨러를 받아 설치 +* 직접 소스코드를 내려받아서 컴파일 + +패키지 관리자를 사용하여 설치하는 것이 가장 간편하고 보편적인 방법이다. 따라서 여기에서는 이 방법을 사용하여 설명을 +진행한다. 나머지 두 방법의 경우 여기서 다루지 않으니 필요한 경우 직접 알아볼 것을 추천한다. + +## Windows +윈도우는 Windows 10 버전 1709부터 공식 패키지 관리자인 `winget` 을 지원한다. + +```console +$ winget install -e --id Git.Git +``` + +## Linux +각 리눅스 배포판에서 제공하는 패키지 관리자를 사용하면 된다. 다음은 그 예시이다. + +### Debian/Ubuntu + +```console +$ apt install git +``` + +### Arch Linux + +```console +$ pacman -S git +``` + +### Nix/NixOS + +```console +$ nix-env -i git +``` + +### Alpine + +```console +$ apk add git +``` + +## macOS + +macOS의 경우 기본적으로 개발 환경 구성을 위해 Command Line Tools for Xcode를 설치하여야 하는데, 이 때 Git이 자동으로 +설치가 된다. 이는 다음과 같이 입력하여 설치할 수 있다. 이 과정은 macOS 버전을 업데이트 시 다시 진행할 필요가 있다. + +```console +$ xcode-select --install +``` diff --git a/src/setting/ssh.md b/src/setting/ssh.md index 87b4fbc..5e312fe 100644 --- a/src/setting/ssh.md +++ b/src/setting/ssh.md @@ -1,10 +1,10 @@ # SSH 키 생성 및 GitHub에 등록 -GitHub을 이용하려면 적절한 방법으로 GitHub과 인증 과정을 거쳐야 한다. -여기서는 SSH 키를 생성하여 GitHub에 등록하는 과정을 설명한다. -더 자세한 매뉴얼은 [여기](https://docs.github.com/en/authentication/connecting-to-github-with-ssh)에서 확인 가능하다. +GitHub을 이용하려면 적절한 방법으로 GitHub과 인증 과정을 거쳐야 한다. 여기서는 SSH 키를 생성하여 GitHub에 등록하는 과정을 설명한다. +더 자세한 매뉴얼은 [GitHub 공식 문서][connecting-github-by-using-ssh]를 참고하라. ## SSH 키 생성 + 우선 할 일은 기존에 만든 SSH 키가 있는지 확인하는 작업이다. 터미널을 열고, `ls ~/.ssh` 를 입력한 후 `id_ed25519` 또는 `id_rsa` 가 있는지 확인한다. @@ -15,79 +15,104 @@ GitHub을 이용하려면 적절한 방법으로 GitHub과 인증 과정을 거 1. 다음을 입력하여 새로운 키를 생성한다. 첫번째 줄은 Ed25519 알고리즘을, 두번째 줄은 RSA 알고리즘을 이용하는 SSH 키를 생성하는 방법이다. 두 가지 방법 중 하나만 수행하면 되며, Ed25519 방식을 권장한다. - ``` - ssh-keygen -t ed25519 -C "[your_email@example.com]" - ssh-keygen -t rsa -b 4096 -C "[your_email@example.com]" + ```console + $ ssh-keygen -t ed25519 -C "[your_email@example.com]" + $ ssh-keygen -t rsa -b 4096 -C "[your_email@example.com]" ``` 2. 키 생성을 시도하면 먼저 어느 위치에 저장할 것인지 물어보는데, enter 키를 입력하면 기본값으로 설정되어 넘어간다. - ``` + ```console > Generating public/private algorithm key pair. > Enter file in which to save the key (/path/to/home/.ssh/algorithm): ``` -3. 다음은 비밀번호(passphrase)를 입력하는 과정이다. - 그냥 enter 키를 입력하여 비밀번호 없이 사용 가능하다. 하지만 GitHub 공식 문서에서는 **비밀번호를 설정하는 것을 권장**한다. - ``` +3. 다음은 비밀번호(passphrase)를 입력하는 과정이다. 원하는 비밀번호를 입력한 후 enter 키를 입력하여 설정 가능하다. + 만약 비밀번호 없이 사용하고 싶은 경우 빈 칸으로 넘어가면 된다. + ```console > Enter passphrase (empty for no passphrase): ``` 4. 한번 더 비밀번호를 입력한다. 같은 비밀번호를 입력하되, 이전에 빈 비밀번호로 넘어갔다면 또 enter 키를 누르면 된다. - ``` + ```console > Enter same passphrase again: ``` -5. 이제 다음 사진처럼 출력되면서 `~/.ssh/` 폴더 안에 SSH 키가 생성되었다. - Ed25519 방식의 경우 `id_ed25519` 와 `id_ed25519.pub` 파일이 생성된다. 만약 RSA라면 `id_rsa`, `id_rsa.pub` 파일이 생성된다. - - ![SSH2](../images/SSH2.PNG) +5. 이제 다음과 같이 유사한 출력이 나오면 SSH 키가 생성이 된 것이다. + 생성한 키는 기본적으로 `~/.ssh/` 폴더 안에 생성되며, Ed25519 방식의 경우 `id_ed25519` 와 `id_ed25519.pub` 파일이 생성된다. + 만약 RSA라면 `id_rsa`, `id_rsa.pub` 파일이 생성된다. + ```console + Your identification has been saved in /home/user/.ssh/id_ed25519 + Your public key has been saved in /home/user/.ssh/id_ed25519.pub + The key fingerprint is: + SHA256:ST4YSAYHqCufkOFQPmAy9snp96U+AsUu5wh+BulN/Ak your_email@example.com + The key's randomart image is: + +--[ED25519 256]--+ + | .oo+ | + |=o.+ . | + |==o = . . | + |+ o= o = . | + |o++.o . S | + |== E + o | + |+o=.X o o | + | oo= = + | + | o o.. | + +----[SHA256]-----+ + ``` -참고로 `.pub` 확장자가 붙은 파일은 public key, 그렇지 않은 파일은 private key라고 부른다. -public key는 다른 사람들에게 공개하는 키지만, private key는 **절대 다른 사람에게 공개되어서는 안 된다.** -이는 패스워드를 다른 사람에게 알려주는 것과 동일한 행동이다. 절대 유출되지 않도록 하자. +> 참고로 `.pub` 확장자가 붙은 파일은 public key, 그렇지 않은 파일은 private key라고 부른다. +> public key는 다른 사람들에게 공개하는 키지만, private key는 **절대 다른 사람에게 공개되어서는 안 된다.** +> 이는 패스워드를 다른 사람에게 알려주는 것과 동일한 행동이다. 절대 유출되지 않도록 하자. ## GitHub에 SSH 키 등록 + 이제 앞에서 생성한 SSH 키의 public key를 GitHub에 등록하면 된다. 1. 먼저 public key를 출력한 후 내용물을 복사한다. Windows에서는 `cat ~/.ssh/id_ed25519.pub | clip.exe`, macOS 에서는 `cat ~/.ssh/id_ed25519.pub | pbcopy` 를 입력하여 복사 가능하다. -2. [GitHub]에 접속한 후 Sign in을 한다. +2. [GitHub][github]에 접속한 후 Sign in을 한다. 만약 계정이 없다면 계정을 만든 후 진행한다. 3. 아래 사진처럼 오른쪽에 있는 자신의 초상화를 클릭하고 "Settings"를 클릭한다. - ![SSH3](../images/SSH3.PNG) + ![github-ssh-configure-0](../images/github-ssh-configure-0.png) 4. 아래 사진처럼 "SSH and GPG keys" 메뉴로 들어간다. 그리고 오른쪽 위에 있는 초록색 "New SSH key" 버튼을 클릭한다. - ![SSH4](../images/SSH4.PNG) + ![github-ssh-configure-1](../images/github-ssh-configure-1.png) 5. 아래 사진처럼 "Title"에는 자신이 알아볼 수 있도록 제목을 넣고, "Key"에는 위에서 복사한 public key의 내용물을 붙여넣는다. - 필자는 개인적으로 "Title"에 컴퓨터 종류를 적는다. - ![SSH5](../images/SSH5.PNG) + Title을 채우기 어렵다면 지금 등록하는 컴퓨터의 정보를 입력하자. + ![github-ssh-configure-2](../images/github-ssh-configure-2.png) 6. 마지막으로 아래에 있는 초록색 "Add SSH key" 버튼을 클릭한다. 위 과정을 마친 후에는 이제 생성한 SSH 키를 이용하여 GitHub 접근이 가능하다! ## SSH 테스트 + 실제로 SSH 키가 잘 등록되었는 지 확인하고 싶다면 다음을 수행한다. 1. 터미널을 열고 다음을 입력한다. - ``` - ssh -T git@github.com + ```console + $ ssh -T git@github.com ``` 2. `ssh`를 통해 처음으로 GitHub에 접속한다면 다음과 같은 경고 메시지가 뜰 것이다. - [GitHub의 public key fingerprint]랑 일치하는 지 확인한 후, 맞다면 `yes`를 입력한다. - ![SSH1](../images/SSH1.PNG) + [GitHub의 public key fingerprint][github-public-key-fingerprint]랑 일치하는 지 확인한 후, 맞다면 `yes`를 입력한다. + ```console + The authenticity of host 'github.com (20.200.245.247)' can't be established. + ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU. + This key is not known by any other names + Are you sure you want to continue connecting (yes/no/[fingerprint])? + ``` 3. 특별한 에러 없이 다음과 같은 메시지가 뜬다면 SSH 키 등록이 잘 완료된 것이다. - ``` - > Hi username! You've successfully authenticated, but GitHub does not - > provide shell access. + ```console + Hi username! You've successfully authenticated, but GitHub does not + provide shell access. ``` -[GitHub]: https://github.com -[GitHub의 public key fingerprint]: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints +[connecting-github-by-using-ssh]: https://docs.github.com/en/authentication/connecting-to-github-with-ssh +[github]: https://github.com +[github-public-key-fingerprint]: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints diff --git a/src/setting/terminal.md b/src/setting/terminal.md index b1d4bfa..0093f42 100644 --- a/src/setting/terminal.md +++ b/src/setting/terminal.md @@ -1,34 +1,30 @@ # 터미널 세팅 -Git 명령어를 입력하려면 우선 터미널을 실행하여야 한다. -## Windows -Windows 에는 크게 2가지 방법이 있다. - -### Git Bash 이용 -Windows 에서는 Git 설치 시 Git Bash가 기본으로 설치가 된다. -프로젝트 루트 폴더에서 파일 탐색기의 빈 공간을 마우스 우클릭을 한 다음, "Git Bash Here" 를 클릭한다. +Git을 설치하고 필요한 명령어를 입력하기 위해서는 우선 터미널을 실행하여야 한다. -![Git bash here](../images/GitBashHere.PNG) +## Windows +Windows 에서 제공하는 차세대 터미널인 [Windows Terminal]을 사용한다. +이는 Microsoft Store를 실행한 후, "Windows Terminal"을 검색하여 설치하여 사용할 수 있다. -### Windows Terminal (PowerShell) 이용 -Windows 에서 제공하는 차세대 터미널인 [Windows Terminal] 을 사용한다. -이는 Microsoft Store를 실행한 후, "Windows Terminal" 을 검색하여 설치하여 사용할 수 있다. +![microsoft-store](../images/windows-terminal-0.png) +![windows-terminal](../images/windows-terminal-1.png) -실행 시 기본값으로 Windows PowerShell 이 열린다. -만약 다른 것이 열린다면 아래 화살표 버튼을 누르고 Windows PowerShell 을 실행한다. +실행 시 기본값으로 Windows PowerShell이 열린다. +만약 다른 것이 열린다면 아래 화살표 버튼을 누르고 Windows PowerShell을 실행한다. -![Microsoft-Store](../images/WindowsTerminal1.PNG) -![Windows-Terminal](../images/WindowsTerminal2.PNG) -![Windows-PowerShell](../images/WindowsTerminal3.PNG) +![windows-powershell](../images/windows-terminal-2.png) ## Linux 각 리눅스 배포판에서 기본으로 제공하는 터미널을 사용한다. ## macOS -기본 터미널을 이용하거나, [iTerm2] 터미널을 사용한다. +기본 터미널을 사용하여도 좋지만, [iTerm2] 터미널을 사용할 것을 권장한다. +다음과 같이 macOS 용 패키지 관리자인 [Homebrew]를 사용하여 쉽게 설치할 수 있다. -터미널 세팅이 끝났다면, `cd` 명령어를 이용해 프로젝트의 루트 폴더로 이동한다. -이제 Git 명령어를 상황에 맞게 입력하면 된다. +```console +$ brew install --cask iterm2 +``` [Windows Terminal]: https://github.com/microsoft/terminal [iTerm2]: https://iterm2.com +[Homebrew]: https://brew.sh