잉?

[Git] Git이란? Git 사용법? Git과 Github의 차이? 본문

깃(GIT)

[Git] Git이란? Git 사용법? Git과 Github의 차이?

Jye_647 2023. 5. 15. 23:47

Git(깃) 이란?

- CLI(명령어 기반 인터페이스)

- 버전 관리를 위한 도구

- 로컬 저장소를 사용한다. ( 작업을 공유하기 어려움)

 

Github(깃허브)란?

- 개발자들의 SNS이기도 하다.

- 클라우드 서버를 통해 로컬 저장소의 코드를 업로드할 수 있다.

- 원격 저장소 호스팅 서비스.

- 즉, 서버 컴퓨터의 전체 또는 일정 공간을 이용할 수 있도록 임대해 주는 서비스


왜 Git(깃)을 배워야 할까?

만약 깃을 사용하지 않는다면?

- 변경 내역 확인이 어렵다.

- 작업을 되돌리기 어렵다. (버전 관리)

- 협력하기 어렵다.

 

버전이란?

유의미한 변화가 결과물로 나온 것.(삭제, 변경, 추가 등)

필요하다면 작업을 되돌릴 수 있다.

여러 명의 코드를 쉽게 나누고 합칠 수 있다.


깃을 관리하는 세 개의 공간

작업 디렉터리(workingtree)

- 버전 관리의 대상이 위치하는 공간(.git이 있는 디렉터리)

- 실제 작업하고 있는 대상이 위치한 공간(폴더)

 

스테이지(index)

- 가상공간

- 다음 버전이 될 후보가 올라가는 공간

- 작업 디렉터리에서 저장소로 완전히 올리기 전에 후보로 올려두는 공간

 

저장소

- 최종 가상공간

- 버전이 만들어지고 관리되는 공간

- 저장소에는 두 가지 저장소가 있다.

로컬 저장소 내 컴퓨터 속에서만 저장되고 관리
원격 저장소 서버측, 인터넷 속에서 저장되고 관리

↓깃 최초 설정 시 사용자 이름과 이메일을 입력해줘야 한다.

$ git config --global user.name "이름 이름은 가급적 영어로 작성
$ git config --global user.email 이메일 이메일 작성
$ git config -l 현재 설정되어 있는 정보 확인

본격적으로 git을 사용해보자.깃에 올리려는 폴더를 우클릭한 후 git bash를 켜준다.

 

1. 로컬 저장소 만들기

$ git init

2. 작업 디렉터리(폴더) 상태 확인하기

$ git status

3. 파일 올리기. 모든 변경사항을 스테이지에 올리기

$ git add .
$ git add <스테이지에 추가할 대상 a.txt> // 추가할 대상을 지정해서 올리기
$ git rm --cached 파일이름 // 스테이지에 올린 파일을 내릴 때

4. 커밋 메시지와 함께 커밋하기 (수정한 파일에 대한 간략한 메시지를 함께 작성 후 올린다.)

$ git commit -m "커밋 메시지"
$ git commit --amend -m "수정한 커밋 메시지" // 커밋 메시지를 수정한 커밋 메시지로 덮어쓰기

5. 원격 저장소와 연결 (내가 만든 깃허브 레퍼지토리 주소랑 연결)

$ git remote add origin 주소

6. 원격 레퍼지토리에 올리기 

$ git push -u origin master

*추가로 수정된 파일 업로드(해당 폴더 우클릭 git bash에서 실행)

$ git pull
$ git add .
$ git commit -m "메시지"
$ git push

*커밋 목록 조회하기

$ git log
$ git log --oneline // 커밋 목록 한 줄로 조회하기
$ git log -p // 커밋별 변경사항 목록 조회하기

*커밋과 비교하기

$ git diff // 최근 커밋과 작업 디렉터리 비교하기
$ git diff --staged // 최근 커밋과 스테이지 비교하기
$ git diff <커밋1> <커밋2> // 커밋끼리 비교하기, 순서 중요. 즉, 커밋1에 비해 커밋2는 뭐가 달라?

기본 명령어

pwd : 현재 경로 확인하기

 

<두 가지 경로>

절대 경로 root 부터 해당 파일까지의 경로(URL)
  어느 곳에서든 접근 가능. 하지만 경로가 바뀐다면 일일히 수정해야 한다.
상대 경로 현재 부터 파일의 경로까지 (../src/file/logo.jpg)
  자기 자신이 기준이기 때문에 자신의 경로가 바뀌는 점에 취약

ls : 현재 경로의 파일 및 폴더 조회하기

ls -a : 현재 경로의 숨김 파일 및 폴더(".파일이름"으로 나타남)까지 모두 목록으로 조회하기

ls -al : 현재 경로의 숨김 파일 및 폴더(".파일이름"으로 나타남)까지 모두 리스트의 형태로 조회하기

cd <경로> : <경로>로 이동하기

cd .. : 상위 디렉터리로 이동하기

cd .  현재 디렉터리로 이동하기

cd ~ : 홈 디렉터리로 이동하기(창을 열었을 때 기본으로 나와있는 디렉터리)

touch <abc.txt> : 빈 텍스트 파일을 만들어라

cat <파일명> : 파일 내용 확인

vi <파일명> : <파일명> 편집하기

- 편집하기(입력모드)로 진입하기 위해서는 a 혹은 i 누르고 엔터키 누르면 밑에 --INSERT-- 모드로 전환

- 입력이 끝났다면 esc (맨 밑에 --INSERT-- 사라짐)

- vi 창을 닫고 싶다면 :w(저장) 입력 후 :q(닫기) 누른 후 enter

 

- 한 번에 ::wq(저장 후 닫기) 가능

rm <파일명> : 파일 삭제

mkdir <디렉터리 이름> : 비어있는 디렉터리(폴더) 생성

rmdir <디렉터리 이름> : 비어있는 디렉터리 삭제

rm -rf <디렉터리 이름> : 비어있지 않은 디렉터리를 강제로 삭제

Comments