본문 바로가기
Git과 관리 시스템

DevOps Day 10 (3.20) Git 과 버전 관리 시스템

by Jackykim 2023. 3. 20.

개발자 도구 GIT 설치

Git 환경설정
git
을 설치하면 가장 먼저, 사용자 이름과 이메일 주소를 설정합니다.
$ git config –global user.name “user name”
$ git config –global user.email “email name”

‘git config’라는 도구로 설정 내용을 확인하고 변경할 수 있습니다.
/etc/gitconfig
파일 : 시스템의 모든 사용자와 모든 저장소에 적응되는 설정임. Git config –system 옵션으로 이 파일을 읽고 쓸 수 있음.
~/.gitconfig, ~/.config/git/config
파일 : 특정 사용자에게만 적용되는 성정임
.git/config :
이 파일은 git 디렉토리에 있고 특정 저장소에만 적용됨

설정 확인 : git config --list

에디터
git 에서 커밋 메시지를 기록할 때, 특히 merge commit 확인 메시지가 나올 때 텍스트 에디터가 열립니다. 기본값은 vi 이지만 nano로 변경이 가능합니다.
$ git config –global core.editor nano

 

SSH 등록
HTTPS
git을 사용할 때에는 토큰을 발행하여 접속해야 합니다. CLI 환경에서 다른 PC에 접속하접속 요청할 때 사용하며, 비대칭키를 이용해 사용자를 인증합니다.

SSH 키 생성
ssh-keygen
명령어 -> id_rsa id_rsa.pub 를 생성합니다. 이 두 파일은 ssh 키 페어라고 하며, 이중 id_rsa.pub는 누구에게나 공개해도 되는 공개키 (public key) 입니다. Id_rsa 는 개인키 (private key) 또는 비밀키 (secret key) 입니다.

공개키 (Public Key) 복사
cat ~/.ssh/id_rsa.pub

Github에 공개키 등록
github
페이즈 -> settings -> SSH & GPG keys -> New SSH key -> 기입

 

(optional) CLI 사용을 위한 인증 과정
github CLI를 사용하기 위해서는 인증 과정이 필요합니다.
우분투 리눅스에서는 아래 명령어를 기입 합니다.
1. $ 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

2. Sudo apt -get install dirmngr 설치
3. gh auth login
명령어를 통해 로그인을 시도합니다
4. Login with a web browser
옵션을 선택하면, 다음과 같이 one time code가 등장합니다. -> device activation 을 가능하게 하는 창이 등장합니다. -> code 기입하면 완료입니다.

 

Chapter Git
Git이란 개발자의 코드를 효율적으로 관리하기 위해서 개발된분산형 버전 관리 시스템입니다.
두 가지를 비교해 보자면 Git은 소스 코드 기록을 관리하고 추적할 수 있는 버전 관리 시스템입니다. Github Git Repository를 관리할 수 있는 클라우드 기반 서비스입니다.
Git repository Remote Repository Local Repository 두 종류의 저장소를 제공합니다.
작업할 때는 Local Repository에서 할 수 있고 내가 작업한 코드를 공유하려면 Remote Repository에 업로드해 여러 사람이 함께 공유할 수 있습니다.

 

나만의 오픈소스 제작하기 Workflow overview
1. Local Git repository 로 만듭니다. (git init)
2.
코드를 작성하고 저장하는 공간, 작업 공간의 파일 및 디렉토리를 생성 (Staging area)
3. Staging area
의 파일은 commit이 가능합니다.
4. Local repository -> remote
하여 다른 사람들이 개선하기 위해 clone / fork 할 수 있음
5. Git status
명령어로 내용 파악
6. Git add – staging area
에 모든 파일을 한번에 추가할 수 있습니다. Commit 가능
7. Commit
통해 변경 사항을 저장할 수 있고 간단한 메모를 통해서 버전의 변경 기록들을 관리할 수 있습니다. Commit 메시지를 작성하기 위해서는 -m 옵션을 통해 코멘트를 작성할 수 있습니다. -> git commit -m “ “
8. Git add
해서 staged area에서 추가 수정할 경우 git add 명령어 추가 (Restore 명령어로 내용 변경 사항 폐기 하고 git status으로 현제 내용 확인)
9. Local repository
Untracked area Git이 관리하고 있지 않은 영역입니다. Tracked area에 들어온 파일들만 Git의 관리를 받을 수 있으며, Tracked area 내부에서도 세 가지 상태로 나누어 집니다. 그 세 가지 상태가 바로 Unmodified, Modified, Staged입니다.
Unmodified :
기존에 Commit했던 파일을 수정하지 않은 상태입니다.
Modified :
기존에 Commit했던 파일을 수정한 상태입니다.
Staged : commit
이 가능한 상태입니다. 수정한 파일을 commit 하기 위해서는 staged area add 하는 작업이 필요합니다.
10. Reset
명령어로 방금 commit 한 기록을 취소하고 수정이 가능합니다. (Local)
11. git reset HEAD^
이라는 명령어로 가장 최신의 commit 을 취소할 수 있습니다.
12. Github new repositories
생성
12.
터미널로 자신의 Git repository로 이동하고, “push an existing repository from the command line” 코드를 한 줄씩 터미널에 입력하면 성공적으로 push 할 수 있습니다.
13. Git log
으로 남긴 commit들이 잘 기입되었는지 확인 가능합니다.

함께 작업 Workflow
1.
내 컴퓨터에서 생성한 디렉토리를 init 명령어를 통해 Git의 관리하에 들어가게 만들어 줍니다.
2.
내 컴퓨터의 Git 디렉토리를 Remote Repository와 연결시켜 줍니다.
3. pair
의 변경 사항과 나의 변경 사항을 Remote Repository를 통해서 공유합니다
- Repository
주소를 git remote add origin 명령어 뒤에 입력함으로써 해당 Remote Repository와의 연결이 완료되었습니다
- git remote add pair ‘
주소를 입력해 상대방의 Repository와 연결했습니다.
- git remote -v
명령어를 통해 현재의 Local Repository와 연결된 모든 Remote Repository 목록을 확인할 수 있습니다.
- git pull pair master
명령어를 통해 페어의 Remote Repository에 있는 작업 내용을 받아올 수 있습니다.
Accept Current Change
를 클릭해서 내가 수정한 내용으로 파일에 반영할 수 있습니다.
Accept Incoming Change
를 클릭해서 Remote Repository의 내용으로 파일에 반영할 수도 있습니다.
Accept Both Changes
는 변경 사항 모두를 반영합니다.

혼자 작업 실습
1. Repository
가져오기 -> git clone “URL”
2.
상태 확인 -> git status
3. Staging area :
버전 관리하에 둠 1 -> git add 파일
4. Commit 1 -> git commit -m “commit
내용
5. Commit
취소 -> git reset HEAD^
6. Staging area :
버전 관리하에 둠 2 -> git add 파일
7. Commit 2 -> git commit -m “commit
내용
8. Push -> git push origin main
9.
로그 보기 -> git log

함께 작업 실습
1. Git
연결 -> git init
2.
리모트 연결 (origin) -> git remote add origin ‘url’
3. Push 1 (origin) -> git push origin main
4.
리모트 연결 (pair) -> git remote add pair ‘url’
5.
리모트 확인 -> git remote -v
6. Pull 1 -> git pull pair main
7. Push 2 (
개인 repositorypush) -> git push origin main
8. Staging Area -> git add ‘
파일
9. Commit 1 -> git commit -m 'footer
수정'
10. Pull 2 -> git pull pair main
11.
충돌 해결하기 -> Enter
12. Staging Area 2 -> git add footer.html
13. Commit 2 -> git commit
14. Push 3 (
개인 repository) -> git push origin main
15.
완료

 

브랜치 실습
1.
브랜치 생성 1 -> git checkout -b feat/signup
2.
브랜치 목록 (확인) -> git branch
3.
브랜치 생성 2 -> git checkout -b feat/signup-oauth
4.
브랜치 이동 -> git checkout feat/signup
5.
브랜치 병합 -> feat/signup-oauth 브랜치의 내용을 feat/signup 브랜치로 병합 -> git merge feat/signup-oauth
6. Push -> git push origin feat/signup
7.
작업 임시 저장 -> git stash