본문 바로가기

Linux

[Git] 한번도 사용하지 않는 자의 Github에 commit 하기

반응형

0. 들어가기 전

내가 느끼기에 세상은 하나하나 직접 확인하고 작업하는 것을 좋아하지 않는다.

자동화가 당연시되고 필요로 되는 그리고 그걸 만들 줄 아는 사람을 필요로 한다.

그렇기에 Infra 쪽을 공부하고 있는 나에겐 Code는 선택이 아닌 필수라 느껴지고

Code를 많이 다루는 사람들은 Git라는 것을 많이 사용한다고 하더라..

그래서 IaC(Infrasturcutre as Code) 중 하나인 Terraform 을 연습하려 하고 해당 코드를 관리하기 위해

Git이라는 것을 사용해 보려 하니 이게 뭔소리고.. 했다.

그래서 내가 직접 정리를 해야만 잘 다룰 줄 알기위해 해당 포스팅을 시작한다.

( Uubuntu 18.04 환경에서 진행 )

1. Git 이란? 

Git 은 간단히 말해 버전관리 시스템 이다.

또한 변경 사항을 추적이 가능하며 필요한 경우 특정 버전으로 되돌릴 수 있다.공동작업을 더 쉽게 만들어 여러사람이 변경한 사항을 모두 하나의 소스로 병합 할 수 있다.

 

2. Git CLI 설치

apt install update
apt install git

그 외 OS 환경 http://git-scm.com/download/linux

https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98

 

3. Git 계정 설정

Git 설치 후 Github ( https://github.com/ ) 라는 곳에 저장을 하기 위해서는 
git config 에 설정을 해야 한다.

초기 한번만 세팅하면 유지된다.

 

---

/etc/gitconfig
git 관련 모든 옵션이 전체 사용자, 저장소에 적용된다.
git config --system 으로 파일을 읽고 쓸 수있다.

~/.gitconfig or ~/.config/git/config 
특정 사용자에만 적용된다.

git config --global 명령어로 설정하며 특정 사용자의 모든 저장소에 적용된다.

.git/config

git directory 에 있고 특정 저장소에만 적용 ( git directory 관해서는 이어서 설명)

---

 

그렇다면 초기 설정을 어떻게 해야할까

git config --global user.name "MaJJangjjang"
git config --global user.email "test@gmail.com"

이런식으로 한번 설정해 놓으면 Github에 commit 할 때마다 기록된다.

한번 commit을 하게되면 정보를 변경할 수없다.

--global 은 모든프로젝트에 동일하게 적용되기에 만약 프로젝트마다 다르게 설정하려면 --global없이 해당 디렉토리에서 명령어를 실행하면 된다.

 

---

git config --list

설정된 모든것 을 보여준다.

git config user.name

이렇게 사용하게 되면 특정 Key에 대한 Value만 보여준다

---

4. Git Repository 생성

작업을 하다보면 다양한 파일들이 생성 될텐데 이를 하나의 Directory로 관리가 필요하다.

또한 지금 생성하는 것은 '로컬저장소' 라고 부르며 Github를 '외부저장소' 로 부른다.

먼저 최종 Github에 올리기 전 로컬저장소에서 작업을 한 후 외부저장소로 작업하게된다.

 

먼저 로컬저장소 설정이 필요하다. 

 

먼저 Directory를 생성 후 진입

mkdir terraform-practice
cd terraform-practice

 

진입 후에 git init 명령어 실행

하여 .git 폴더가 생겼는지 확인

git init

 

(번외) 기존 Github Repository에 있는걸 참여하거나 복사 할 경우

git clone [Repository URL]
git clone https://github.com/MaJJangJJang/msw_terraform.git

이렇게 하면 MaJJangJJang 의 msw_terraform repository를 가져올 수 있다;

 

5. Git의 파일 관리 방법

윗 목차에서 말했듯이

'로컬저장소'에서 작업을 해야하는데 할때도 순서가 있다.

기존 파일을 add 하는작업 그리고 다음 하는 commit 으로 한다.

 

이 말을 내가 이해한데로 말하자면

코드를 작성하고 디렉터리에 넣으면 Git으로 지정한 디렉터리여도 등록되지 않는 상태

git add [File Name] or git add * 을 통해 Git으로 등록할 것을 지정

git commit -m [Description] 을 통해 완료

라고 이해 했다.

이렇게 하면 이제 '로컬저장소'에 된 것이지 '원격저장소' 에는 등록되지 않았다.

 

6. 원격저장소 Github

그렇다면 원격저장소 Github 계정을 생성하고 로그인한다.

* Git라는걸 검색하면서 한다는 것은 Github가 무엇인지 안다고 생각한다.

좌측 상단에 Repositories -> New 클릭

 

원격저장소 이름을 적고 Public 으로 설정 그리고 생성한다.

(Private로 한다는 것은 이미 이 글을 읽을 필요가 없다고 생각한다.)

 

생성된거 확인

 

그렇다면 이제 파일을 만들어서 보내보자

 

7. Push 

Push는 이제 한글로 '밀다' 

즉 로컬저장소에서 원격저장소로 밀어주다, 업로드하다 라고 이해하면 되겠다.

그러기위해선 당연히 로컬PC에서 원격저장소를 위치를 설정 해줘야한다

git remote add [NickName] [Github Repository URL]
git remote add origin https://github.com/MaJJangJJang/msw_terraform.git

 

이렇게 위치도 설정했으니 이제 테스트를 위해 파일 생성

git init 했던 Directory에 파일생성

이제 위에 설명대로 이제 해보자

add 및 status 확인

ADD작업 후 Status를 통해 어떤 것이 commit 될지 파일을 확인 할 수 있다.

 

이제 어떤게 commit 될지 확인했으니

Commit 완료사진

commit 완료

 

이제 원격저장소로 보내보자

git push [NickName] [Branch]
git push origin master

Branch는 다음 포스팅에 이어서 설명하겠습니다.

본인이 따로 설정하지 않았더라면 branch의 deafult 값인 master로 되어있습니다.

Push 완료사진
Github에 Push 확인

 

만약 수정하게 된다면 어떻게 될까?

 

빨간네모 region -> zone 수정

 

다시 git add 를 해주고 status를 확인하면

이젠 modified 라고 뜬다.

 

commit을 해주고

 

원격저장소로 push를 해주면

Description 부분 클릭 시 어떤 것이 수정됐고 지워졌는지 알 수 있다.

Commit Description 내용 반영되면서 안에 내용도 바뀐다.

 

99. 글을 마치며

이정도면 일단 당장 아무생각 없이 쓸 수 있다고 생각이 된다.

다음 포스팅에는 Branch라는 개념도 사용 해봐야 겠다.

 

반응형