프론트엔드/Javascript

git 새로운 시작

코더 장군 2022. 1. 13. 00:41

 

첫직장에서 git이 뭔지도 모를때 처음 git를 깃크라켄을 사용 해서 배웠는데 여태까지 깃크라켄으로 작업 했다. 그래서인지 처음 부터 편리한 에디터로 git를 관리하니깐 깃이 관리하는데 깃크라켄에 의지하게 되는거 같아서 이번에 항해 시작 하면서 깃크라켄을 과감하게 포기 할려고 한다. 

깃이란? 

패러렐 월드 평행우주라고 해서 내 선택 외에 다른 선택에 같은 시간대가 우주가 발생한다는 이론이다. 왜 패러렐 월드를 설명 하는 이유는 깃이 패러렐 월드를 착안한 버전 관리 시스템이기 때문이다. 개발 중에 여러명이 한가지 파일을 관리하면 서로 충돌이 생긴다. 그렇게 때문에 같은 파일을 여러 명이 동시에 작업하는 병렬 개발이 가능하게 해야한다. 깃은 메인이되는 프로그램에 여러 브랜치를 통해 개발한 뒤, 본 프로그램에 합치는 방식(Merge)으로 개발을 진행할 수 있다. 이렇게 되면 충돌이 덜하고 더 좋은 코드를 생산 하게 해준다. 

 

 

깃의 개념과 명령어 

 

Git 영역

(1) Working Directory (Local)

    : 개인 코드 작성

(2) Staging 영역

    :​ git add 를 통해서 수정된 코드를 올리는 영역

(3) Repository

    : ​ git commit 을 통해서 최종 수정본을 제출

 

mac git  설치  - mac은 brew 패키지에서 git를 설치해야한다. 

brew install git

window은 공식 사이트에 들어가서 깃셋업한다. 

https://git-scm.com/downloads

 

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp

git-scm.com

 

git 저장소 생성

git init

// git hub 저장소에 레포지토리를 복제 
git clone (git 저장소의 URL)

 

git  코드 생성

echo "Hello, Git!" > README.md

//확인

$ cat README.md
Hello, Git!

 

git Staging 영역에 추가 commit 하기 전에 Staging 영역해야 커밋이 가능하다.

//현재 디렉토리에 있는 업데이트 된 파일을 전부 스테이징 영역으로 추가합니다.
$ git add .

//수정된 파일 전부를 스테이징 영역에 추가합니다.
$ git add -A

// 현재 add 내역을 확인할 수 있습니다.
$ git status

 

 

Repository에 commit

$ git commit -m "feat: README.md update"

-m 은 메세지의 약자이고, 뒤에 ""안에 공유할 메시지 내용을 적어주시면 됩니다.

 

 

원격 저장소에 push 업데이트 된 내용 pull

 

origin은 remote repository의 이름이며, 다른 이름으로 설정해도 무방합니다.

 

push

$ git push origin master

$ git branch -M main
$ git push origin main

origin이라는 원격저장소의 master 브랜치 (브랜치는 뒤에서 설명)에 푸쉬합니다.

 

pull

$ git pull

 

 

 

 commit 정리

여러개의 commit을 하나의 commit으로 정리

$ git rebase -i

직전과 금번 커밋을 하나로 정리

git commit --amend

 

그외

//커밋 이력 확인
$ git log

//한 줄로 요약해서 보고 싶은 경우

$ git log --oneline


//파일변경시 (Working drectory → Staging) 내역 확인 및 취소
echo "update test" >> README.md
 
 //변경 내용 확인

$ git diff

//staging 취소 (unstage)

$ git reset

$ git reset --hard

//여러개의 commit을 하나의 commit으로 정리

$ git rebase -i
//직전과 금번 커밋을 하나로 정리

$ git commit --amend

// branch 확인
$  git branch

$ git branch mybranch

$ git checkout mybranch

$ git push origin mybranch

 

깃크라켄을 사용하다가 처음으로 터미널에서 git를 사용해봤다.  커밋만 하고 푸시를 안해다 폴더 오류가 나서 폴더 새로 클론 했는데 오전에 작업 한게 다 날라간다. 깃크라켄에서는 push 버튼이 바로 위에 있어서 그냥 누르기만 했는데 git push를 따로 명령어를 주어야 했지만 아직 많이 익숙지 않다. 

 

느낀 점

너무 편리함만 추가하다가 기본에서 멀어진 느낌이지만 앞으로 불편함을 견뎌내고 기본기를 완벽하고 코드도 기본기 중심으로 공부해야겠다.