마짱짱의 지식창고
[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
이렇게 위치도 설정했으니 이제 테스트를 위해 파일 생성
이제 위에 설명대로 이제 해보자
ADD작업 후 Status를 통해 어떤 것이 commit 될지 파일을 확인 할 수 있다.
이제 어떤게 commit 될지 확인했으니
commit 완료
이제 원격저장소로 보내보자
git push [NickName] [Branch]
git push origin master
Branch는 다음 포스팅에 이어서 설명하겠습니다.
본인이 따로 설정하지 않았더라면 branch의 deafult 값인 master로 되어있습니다.
만약 수정하게 된다면 어떻게 될까?
다시 git add 를 해주고 status를 확인하면
이젠 modified 라고 뜬다.
commit을 해주고
원격저장소로 push를 해주면
Commit Description 내용 반영되면서 안에 내용도 바뀐다.
99. 글을 마치며
이정도면 일단 당장 아무생각 없이 쓸 수 있다고 생각이 된다.
다음 포스팅에는 Branch라는 개념도 사용 해봐야 겠다.
'Linux' 카테고리의 다른 글
SSH Key-gen을 통해 Server-Client 접속테스트 (0) | 2022.12.02 |
---|---|
Debian locale ko_KR.UTF-8 한글팩 적용 안될때 (0) | 2022.06.28 |
ZFS 의 주요기능(cow, checksum, RAID-Z..등등) (0) | 2021.01.13 |
ZFS 개요 및 구조 (0) | 2021.01.13 |
Apache vs NginX (0) | 2020.09.17 |