본문 바로가기

TIL

git/git hub 기초.(feat. Linux)

개발을한다면 사실 깃을 모르면 할 수 없을것이다.

뭐 물론 내가 혼자서 개발하는사람이고 혼자 A-Z까지 다 한다고 하면..

어림도없지 그래도 깃은 필요하다.

예를 들어서 내가 html 파일을 수정했다고 생각하자. 음~ 좋아 완전 수정잘했어~

(3일뒤..)

어 근데 저번에 내가 작성하고 지웠던 코드가...뭐였지 분명 수정된 사항중에 필요한 부분이있던거같은데..하면서 이전 버전으로 되돌 릴 수가없습니다.

혹은 "찐최종그누가와도사장님하나님이와도바꿀수없으셈(1)" 이런거 만들고 있어야합니다.

그래서 일단 내컴퓨터에서 버전을 쉽게 관리 할 수 있게 해주는게 깃이고,

이걸 다른 사람들과 협업해서 같은 버전의 코드를 쉽게 관리 할수있는것이 깃허브사이트다.

(git bash 설치나 인텔리제이 설치 등은 다양한 블로그에서 쉽게 접할 수 있으므로 생략)

 

WorkingTree

해당 영역들을 워킹트리라고 부르며, git으로 저장서 관리를 위해 추적하는 파일과 그렇지 않은 파일을 나누고,상태를 구분짓는 영역을 말한다.

- working directory : 우리가 코딩을 작성하는 영역이고 쉽게 생각해서 인텔리제이에서 코딩하고 깃에 추가하고 env에서 깃에 안올라가게 막고 하는 그 영역이 다 해당영역이다.

- staging area : 우리가 작성한 코드를 가상의 저장공간에 잠깐 머무르게 되는데, 왜 굳이 여기서 나누냐면 변경된 모든 파일을 올리는게 아니라 선택해서 올릴 수 있도록 하는공간이라고 생각하면 편할거같습니다.

커밋할 파일을 선택 할 수 있다.

- .git directory : commit이 이루어지는 장소

 

간단 용어

commit 선택한 파일이 .git directory에 기록되는 행위, 주로 hash값이 저장되고 이값을 통해 코드의 특정 시점으로 롤백가능
snapshot 커밋이 만들어 질때마다 프로젝트의 상태를 사진처럼 저장, 필요시 해당 시점으로 마찬가지로 롤백가능
Head 현재 작업중인 위치, 가장 최신의 커밋이 가르키는곳
Branch 개발 범위나 기능별 코드 분리를 위해 사용, dev feature stage 등으로 나누어 사용한다
Merge 개발된 코드를 하나로 합치는 과정.

git --help 를 통해 필요한 명령어들을 확인이 가능

 

Linux

리눅스? 기본적으로 OS라고 생각하면 될거같다.기본적으로 프로그램은 OS위에서 실행이 되며 맥이나 윈도우같은os프로그램이다. 그럼 이걸 왜 갑자기 배우냐?

깃이나 맥 터미널등이 리눅스 기반 작업들을 지원하기 때문이다. 그리고 사실 모든 개발자들이 사용하기때문에 필수적으로 알아두어야 한다.

ls 파일 리스트 확인
cd 파일 이동
pwd 내가 위치한 디엑토리 확인
mkdir 폴더 생성
touch 파일생성
rm -rf | 파일 삭제
mv mv <이동할 파일 이름> <이동할 파일 경로> | 파일 이동
cp cp <복사할 파일 이름> <복사할 파일 위치> | 파일 복제

 

cat 텍스트 파일을 읽는다. grep 과 묶어서 원하는 키워드를 찾는데 많이쓴다.
less 한번에 보여지는 만큼만 텍스트 파일을 연다
head -n {number} | 텍스트 파일의 앞부분 내용일 읽는다
tail -n {number} | 텍스트 파일의 끝 내용일 읽는다
nano 텍스트 에디터
vim 텍스트 에디터이며 i 를 눌러 수정 가능 esc/ :wq 입력후 엔터를 쳐서 저장할 수있고 :q!하면 걍 나올 수있다.
clear cmd창 깨끗하게 정리
history 내가 입력한 커멘트 조회
echo 텍스트를 출력하거나 변수를 출력 ex $PATH
df -h | 디스크들의 경로와 용량 조회
du -sh | 개별 디렉토리의 사용용량을 볼 수 있다.
whoami 현재 터미널을 사용하는 유저 정보를 보여준다.

 

git 명령어

git init

명령어를 통해 저장소를 초기화 하고

git add

명령어를 통해 파일들을 깃에 추가해주고 status로 현재 진행중인 상태를 확인 할 수있습니다.

git status
git status --short

아래 명령어로 깃을 커밋한다.
git commit -m "test"