IT STUDY LOG
[Git과 버전 관리 시스템] 01. 개발자 도구 Git 설치 본문
# 학습 목표
- Git의 환경설정을 할 수 있다.
- 버전 관리 시스템의 필요성을 이해할 수 있다.
- Github과 Git의 관계에 대해 이해할 수 있다.
- Repository에 대해 이해할 수 있다.
- Local Repository와 Remote Repository의 차이를 이해할 수 있다.
- 자신이 사용하는 OS에 git 설치하는 방법을 익히고 실습한다.
- git --version 명령어로 터미널에서 git이 설치되었는지 확인할 수 있다.
- CLI 환경에서 git 명령어를 입력할 수 있다.
- 터미널로 원격 서버에 접속하고 git을 설치하고 삭제 후 다시 설치할 수 있다.
# 학습 내용
1. Git 설치 - Ubuntu
roheerumi@devops:~$ sudo apt install git
roheerumi@devops:~$ git --version
git version 2.25.1
2. Git 환경설정
# 사용자 정보 설정
roheerumi@devops:~$ git config --global user.name "roheerumi"
roheerumi@devops:~$ git config --global user.email "******@gmail.com"
# 에디터 설정
roheerumi@devops:~$ git config --global core.editor nano
# 설정 내용 확인
roheerumi@devops:~$ git config --list
user.name=roheerumi
user.email=******@gmail.com
- Git 명령어 사용법 : 사용법: git [--version] [--help] <명령> [<인자>]
- 작업 공간 시작 관련 명령어
깃 명령 설명 clone 저장소 복제해 새 디렉터리로 가져옴 init 빈 깃 저장소를 만들거나 기존 저장소 초기화 - 변경 사항에 대한 작업 관련 명령어
깃 명령 설명 add 파일 내용을 인덱스에 추가 mv 파일 , 디렉토리, 심볼릭 링크 이동 혹은 이름 변경 restore 작업 트리 파일을 복구 rm 파일을 작업 폴더에서 제거하고 인덱스에서도 제거 sparse-checkout 저장소 일부만을 초기화하거나 수정 - 커밋 내역과 상태 보기 관련 명령어
깃 명령 설명 bisect 이진 탐색으로 버그를 만들어낸 커밋 색출 diff 커밋과 커밋 사이, 커밋과 작업 내용 사이 등 바뀐점 확인 grep 패턴과 일치하는 줄 표시 log 커밋 기록 표시 show 여러가지 종류 오브젝트 표시 status 작업 폴더 상태 표시 - 커밋 내역을 표시, 생성, 조작 관련 명령어
깃 명령 설명 branch 브랜치를 만들거나, 삭제하거나, 목록을 출력 commit 바뀐 사항을 저장소에 기록 merge 여러 개의 개발 내역을 하나로 합병 reabse 커밋을 다른 베이스 끝의 최상위에서 적용 reset 현재 HEAD를 지정한 상태로 재설정화 switch 브랜치를 이동 tag 태그를 만들거나, 표시하거나, 삭제하거나, GPG 서명을 검증 - 협업 관련 명령어
깃 명령 설명 fetch 다른 저장소에서 오브젝트와 레퍼런스를 다운로드 pull 다른 저장소 또는 다른 로컬 브랜치에서 가져오거나 통합 push 원격 레퍼런스 및 그와 관련된 오브젝트를 업데이트
- 작업 공간 시작 관련 명령어
- 참고할 레퍼런스 : https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%B5%9C%EC%B4%88-%EC%84%A4%EC%A0%95
3. SSH 등록
- 개요
- github 정책 : https로 git을 사용할 경우 토큰 발행 후 접속해야함
- 서버에서 SSH 공개키, 비밀키 생성 후 공개키를 Gighub에 등록하고 ssh를 통해 git clone 가능
- SSH 키 생성
# SSH 키쌍 생성
# 입력값 없이 enter시 키 생성
roheerumi@devops:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/roheerumi/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/roheerumi/.ssh/id_rsa
Your public key has been saved in /home/roheerumi/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:ehNRBJtISc1gj+g8nEHJ95+a+XIuCC/Wq4HbtzRXjhI roheerumi@devops
The keys randomart image is:
+---[RSA 3072]----+
| ..o==.oo |
| .o+o+o+ |
| o.o.= |
| + o .. |
| * E S... |
| ... o =o |
| . .+=.=+. |
| ooo==*.. |
| ..o+oo *o |
+----[SHA256]-----+
# 홈 디렉토리에 숨겨진 디렉토리로 ssh 생성
roheerumi@devops:~$ ll -a
합계 120
... 상략 ...
drwx------ 2 roheerumi roheerumi 4096 3월 20 10:31 .ssh/
... 하략 ...
# ssh 디렉토리에서 키 조회
roheerumi@devops:~$ cd .ssh/
roheerumi@devops:~/.ssh$ ll
합계 20
drwx------ 2 roheerumi roheerumi 4096 3월 20 10:31 ./
drwxr-xr-x 16 roheerumi roheerumi 4096 3월 20 10:07 ../
-rw------- 1 roheerumi roheerumi 2602 3월 20 10:31 id_rsa # 비밀키 - 공개해서는 안됨
-rw-r--r-- 1 roheerumi roheerumi 570 3월 20 10:31 id_rsa.pub # 공개키
-rw-r--r-- 1 roheerumi roheerumi 222 3월 13 16:18 known_hosts
roheerumi@devops:~/.ssh$ cat id_rsa.pub
#공개키 내용 출력#
- Git에 공개키 등록
- 공개키 내용 복사
- Git SSH 테스트 하기
# ssh 소스코드를 복사하여 git clone
roheerumi@devops:~/.ssh$ git clone git@github.com:cs-devops-bootcamp/sprint-simple-git-workflow.git
'sprint-simple-git-workflow'에 복제합니다...
The authenticity of host 'github.com (20.200.245.247)' can't be established.
ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
Are you sure you want to continue connecting (yes/no/[fingerprint])? y
Please type 'yes', 'no' or the fingerprint: yes
Warning: Permanently added 'github.com,20.200.245.247' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 9 (delta 0), reused 0 (delta 0), pack-reused 8
오브젝트를 받는 중: 100% (9/9), 완료.
# 정상적으로 clone 되었는지 확인
roheerumi@devops:~/.ssh$ ls
id_rsa id_rsa.pub known_hosts sprint-simple-git-workflow
- 정상적으로 동작하지 않는 경우
- 1. Github - Settings - SSH keys 에 등록한 공개키 삭제
- 2. 프롬프트에 cat ~/.ssh/id_rsa.pub 명령어를 입력하여 나타나는 공개키 복사
- 3. Github - Settings - SSH keys 에서 New SSH key 버튼 클릭
- 4. Title을 입력하고, 복사한 공개키를 Key에 붙여넣고 Enter 키를 입력해 한 줄을 추가(개행)
- 5. Add SSH key 버튼을 클릭하고, 승인하여 공개키를 등록
4. (Optional) CLI 사용을 위한 인증 과정
- Github CLI를 사용하기 위한 인증 - OAuth (Device Authorization)
- 설치 과정
1. GitHub CLI 설치
# macOS: homebrew 설치 후 다음 명령을 이용하여 CLI를 설치
$ brew install gh
# 우분투 : 다음 명령어 실행
$ type -p curl >/dev/null || sudo apt install curl -y
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
&& sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y
gpg: failed to start the dirmngr '/usr/bin/dirmngr': No such file or directory 에러가 난다면? sudo apt-get install dirmngr 를 통해 설치 후 재시도
2. gh auth login 명령어를 통해 로그인을 시도 > 화살표 키를 이용해 다음 항목들을 선택 후 Enter
? What accout do you want to log into? GitHub.com
? What is your preferred protocol for Git Operations? HTTPS
? Authenticate Git with your GitHub credentials? Yes
? How would you like to authenticate GitHub CLI? Login with a web browser
3. Login with a web browser 옵션을 선택하면, 다음과 같이 one-time code 가 등장합니다. Enter 키를 누르면, Device Activation을 가능하게 하는 창이 등장합니다.
위 화면을 실수로 닫았다면, https://github.com/login/device 에 접속시 확인 가능
4. 모든 인증 과정이 성공적으로 끝나면 터미널 화면에서도 Logged in as 사용자이름 과 같이 인증이 완료됨
'devops bootcamp 4 > 개발 및 배포' 카테고리의 다른 글
[Git과 버전 관리 시스템] 03. Git Branch (0) | 2023.03.21 |
---|---|
[Git과 버전 관리 시스템] 02. Git (0) | 2023.03.20 |
[웹서비스 개발 기초] 04. HTTP 요청 실습 (Postman) (0) | 2023.03.17 |
[웹서비스 개발 기초] 03. HTTP 기초 (0) | 2023.03.16 |
[웹서비스 개발 기초] 02. 웹서비스 접근하기 (0) | 2023.03.15 |
Comments