Let's GIT it...

Andy Oh Sae Ha·2022년 6월 30일
0

[Git] Git & Github

목록 보기
1/4
post-thumbnail

Git이 그래서 뭔데요

  • VCS (distribtued Version Control System)
    • 버전을 - 컨트롤하는 - 시스템

즉,
여러 사람들이 협업하는 환경 내에서
파일, 폴더, 애플리케이션 등 모든 시스템 내에서 일어나는
변경 사항 (ex. 삭제, 추가 등)을 기록하는 시스템


CONFIGURATION 세팅하기

>>> 비유를 하자면, 게임을 하기 위해 캐릭터를 생성하는 단계

git config --global user.name "이름"
git config --global user.email "이메일"

위는 사용자 (나)의 configuration을 세팅하는 방법이다.

  • 변동 사항을 만들거나 확인해야 할 때 그 변경이 누구에 의해 생겨난 것인지를 확인하기 위해 사용자 (나)에 대한 정보를 기입하는 단계로 "이름"과 "이메일"의 사용자(나)의 정보를 기입하면 된다
  • git config --global user.name "andy"
  • git config --global user.name "andy@gmail.com"

REPOSITORY 생성하기

>>> 비유를 하자면, 캐릭터를 생성할 게임 서버를 생성하는 단계

git init

"작은 게 더 소중..?"

이 작고 귀여운 명령어는 사실 모든 git 작업 환경을 시작하게 해주는 가장 중요한 역할을 한다

그 이유는 initialize (v. 시작하다)를 줄인 명령어로 init을 사용하여 Repository를 생성하는 역할을 하기 때문이다

여기서 잠깐, 그럼 Repository는 뭔가요?

  • Repository
    • git을 저장하는 저장 장소의 역할을 한다고 생각하면 된다
      • Local Repository : local 단위에서 작업할 수 있도록 생성된 환경
      • Remote Repository : 주로 원격 서버에 생성되며 협업할 때 사용하는 환경


정리를 해보면
[ git init은 혼자 혹은 여럿이 일을 하기위해 필요한 git의 저장 장소를 생성하는 명령어 ]
라고 생각하면 되고 명령문을 실행하면 아래와 비슷하게 출력될 것이다

Initialized empty Git Repository in /___/___/___/.git/
  • git init : 현재 디렉토리 내 repository 생성
  • git init 이름 : 현재 디렉토리 내 이름폴더 생성

REPOSITORY 환경 체크하기

>>> 비유를 하자면, 서버 환경이 어떤 상태인지 체크하는 단계

git status
  • 위 명령문을 실행하면 최근에 일어난 변경 사항부터 현재 상황 등 모두 확인할 수 있다

STAGING & COMMIT 실행하기

>>> 비유를 하자면, 게임 캐릭터를 꾸미고 마지막 생성을 선택하기까지의 단계

git add 
git commit 

위에서도 말했지만 이 단계는 R&B 게임을 처음 시작할 때 캐릭터를 생성하기 위해 머리색깔, 얼굴형 등을 자유롭게 변경하고 1차적인 선택을 한 후에(Staging), 생성하기버튼을 눌러 최종적으로 게임 캐릭터를 생성한다고 생각하면 된다.

  • 그래서 항상 2개의 단계로 진행이 된다고 생각하면 된다.

Staging ---> Commit

STAGING 해보기

git add 파일이름.확장자 파일이름.확장자 파일이름.확장자....
git add . // 모두 staging area로 이동

ex. git add index.html

  • 위와 같이 index.html이라는 파일을 git add명령어로 실행해주고 다시 git status 명력어를 실행해주면 아래와 비슷한 화면을 볼 수 있을 것이다

  • No commits yet = 아직 commi된 파일이 없음을 명시한다
  • Changes to be committed: = commit시킬 수 있는 상태의 파일을 보여주는 인트로(?) 설명 문구
  • (use "git rm --cached ..." to unstage) = staging된 파일 목록을 stanging area에서 내려주기 위한 명령문
  • 초록색 문구: 어떤 파일이 어떤 상태인지 표기 (ex. new file: index.html = index.html이라는 파일이 새로 추가되었다)

COMMIT 해보기

git commit -m "커밋 메세지"

"커밋 메세지"는 간략하게 지금 처리시킬 Commit에 대한 설명을 적어 놓는 것이라고 생각하면 된다

위 명령문을 실행하고 나면 아래와 비슷하게 보일 것이다

  • nothing to commit, working tree clean = 새롭게 commit 시킬 파일이 없음을 명시한다

  • 커밋 메세지 변경하기

    • git commit --amend 을 누르면 text-editor가 나오는 데 여기서 새로 반영시킬 커밋 메세지를 적어주면 된다

LOG 확인하기

>>> 비유를 하자면, 게임에서 경험치, 아이템 습득 등 새로운 변화가 있을 때 그 기록을 볼 수 있다

git log

최근에 일어난 변경 사항들을 확인을 하기 위해 위 명령문을 실행하면

commit 5cb35131jb135jkn34jjb135kb135kb135kb (HEAD -> master)
Author : andy <andy@gmail.com>
date: Thu Jun 30 13:19:20 2022 -0700
  
  	create index.html


천천히 읽어보면

  • "58f73e54199c7fcbf74f8806650bc72f3744653 라는 것이 (HEAD -> master) 단계로 Commit완료 되었다"
  • "실행시킨 사람 : 이름 (이메일) 이다"
  • "실행시킨 날짜는 : 날짜 날짜 날짜.... 이다"
  • "commit시킨 행동 : create index.html (커밋 메세지) 이다"

정도로 이해할 수 있다

  • 가장 최근에 실행된 내역부터 위에서 아래로 표기해서 보여준다

COMMIT 수정하기

>>> 비유를 하자면, 공지나 단체 알림 등으로 시끄러워진 게임 채팅 창을 다시 깨끗하게 지운다

git checkout <commit-hash>
  • 만약 Commit시킨 내용 중 수정 사항이 생긴다면 LOG를 통해 해당 Commit이 발생한 지점을 찾고 수정할 수 있다
git check 58f73e54199c7fcbf74f8806650bc72f3744653
  • 58f73e54199c7fcbf74f8806650bc72f3744653은 위 git log를 통해 확인된 commit-hash 이다
    • 혹시라도 헷갈리는 사람이 있다면, commit-hash는 commit이 발생한 뒤 자동 생성된다

  • "당신은 '머리를 뺀' 상태입니다. 주위를 둘러보고 실험적인 변경을 하고 커밋을 해보세요. 이 상태에서는 어떤 커밋도 다른 나뭇가지에 영향을 주지 않고 실행가능 합니다.

    새로운 나뭇가지를 생성하여 커밋을 유지하려면 -b 를 사용해서 checkout 커맨드를 다시 입력하면 된다

    ----예시----

    머리는 이제 에 있고 커밋 메세지는 "add basic style"이다".


TERMINAL 정리하기

>>> 비유를 하자면, 공지나 단체 알림 등으로 시끄러워진 게임 채팅 창을 다시 깨끗하게 지운다

git clear
  • 너무 많은 명령문을 실행해서 tracking이 점점 어려워질 때 위 명령문을 실행하면 다시 초기 화면 상태로 돌려준다

BRANCH 요..?

>>> 비유를 하자면, 공지나 단체 알림 등으로 시끄러워진 게임 채팅 창을 다시 깨끗하게 지운다

git을 사용하다 보면 branch라는 말을 들을텐데 이는

  • 새로운 아이디어를 적용해보기 위해서 모두가 활용하는 타임라인이 아닌 다른 곳에서 실행해볼 수 있는 환경을 의미한다
git branch 
  • 위 명령어는 현재 내가 사용하고 있는 branch를 효기해준다
    • log 내용에서 잠깐 보았을 HEAD -> master 라는 말이 이 뜻이다
      • master는 모두가 활용하는 환경
git branch <new-branch-name>
  • 위 명령어는 새로운 branch를 생성할 때 사용한다
git checkout <branch-name>
  • 위 명령어는 다른 branch로 변경하기 위해 사용한다
git merge <branch-name>
  • 위 명령어는 실험용으로 만들었던 branch를 master branch에 적용하기 위해 사용한다
    • merge할 대상이 되는 branch에 접속한 후 git merge를 사용하면 된다
profile
데이터 분석가

0개의 댓글