본문 바로가기
프론트엔드/Git & GitHub

Git & GitHub | 깃(Git)과 깃허브(GitHub)

by YUNI Heo 2023. 3. 10.
반응형

 

✅ 깃 Git

분산형 버전 관리 시스템(DVCS, Distributed Version Control System)이다.

  • 파일의 변화를 추적하고, 변경 내용을 기록한다.
  • 여러 명이 함께 작업할 때 파일의 충돌을 방지할 수 있다.
  • 이전에 작성한 코드나 파일 버전으로 돌아갈 수 있다.

 

✅ 깃허브 GitHub

깃(Git)을 기반으로한 프로젝트를 호스팅(저장)하는 웹 기반 호스팅 서비스이다.

  • 깃(Git)으로 관리하는 코드나 파일을 클라우드 상에 저장하고, 다른 사람과 협업한다.
  • 이슈 관리, 프로젝트 관리, 코드 리뷰 등의 기능을 제공하여 소프트웨어 개발 과정을 보다 효율적으로 관리한다.

깃(Git)은 버전 관리 도구이고, 깃허브(GitHub)는 깃을 이용한 프로젝트 관리 플랫폼이다.

형상 관리 시스템(Verson Control System) 의 한 종류입니다. 주로 개발자들이 프로그램과 관련된 파일들을 저장하는 데 사용합니다. 게임의 세이브 포인트와 유사한데, 언제든지 저장 시점으로 되돌아 갈 수 있습니

 


github에 소스 업로드하고 다른 사람과 공유하기
업로드할 파일 선택하고 add -> commit -> push

 

✅ 깃허브 작업

💡 클론

Source Tree를 통해서 저장소 클론
이제 소스 트리를 실행해 봅시다. 소스트리의 'Clone' 또는 '복제 / 생성' 메뉴를 통해 github 에서 생성한 저장소를 클론해 올 수 있습니다. 앞 단계에서 메모장에 붙여 넣었던 저장소 주소를 넣어주면 됩니다. 보통 "내문서" 아래에 저장소 이름과 같은 새로운 폴더가 만들어

clone: 원격 저장소 (github) 을 내 컴퓨터에 복사해 온다.

 

💡 스테이지에 올린다 (add)

앞에서 커밋하기 전에 저장을 원하는 파일들을 묶는 일을 해야 한다고 했습니다. 이 작업을 스테이지에 파일을 올린다라고 합니다. 혹은 줄여서 간단히 'add'라고도 합니다.

add: 내 컴퓨터에서 작업한 파일들을 스테이지에 추가

💡 커밋 (commit)

게임의 세이브에 해당하는 행동을 git에서는 커밋이라고 합니다. 다시 말해서 여러분은 언제든지 커밋한 시점으로 되돌아 갈 수 있습니다 . 커밋을 하려면 저장을 원하는 파일들을 묶어서 커밋 명령을 수행하면 됩니다.

 

커밋 주의사항
커밋에는 주의사항이 있습니다.
반드시 한 번에 하나의 논리적 작업만을 커밋합니다.
커밋 메시지를 잘 적어야 합니다.
특히 커밋 메시지는 미래의 여러분과 다른 개발자를 위해서 꼼꼼히 적어야 합니다.

 

 

커밋 메시지 작성법
첫 줄에 간단하지만 명확하게 내용을 씁니다.
한 줄 비우고
자세한 내용을 적습니다.

 

commit: 스테이지에 올라온 파일들을 가지고 내 컴퓨터에 저장 (세이브와 같다.)

 

코드 뭉치 버리기: 마지막 커밋으로 되돌아가고 싶을 때 사용

 

💡 github에 업로드 (push)

커밋을 하면 이제 현재 작업 내용의 세이브 데이터가 내 컴퓨터에 저장됩니다. 이걸 github에 업로드하면 마치 요즘 유행하는 스팀이나 PS4, 각종 모바일 게임의 원격 저장과 비슷한 일을 합니다. 다른 사람이랑 공유할 수도 있고, 내 컴퓨터의 데이터가 날아가도 안전하게 다시 복구할 수 있습니다. github에 업로드하는 걸 git에서는 "push"라고 합니다.

 

push: 커밋들을 원격 저장소에 업로드

 

✅ 깃허브 변경

💡 브랜치 (branch)

브랜치 (branch): 기능 변경을 하고 싶을 때 생성 및 사용

체크아웃 (checkout): 저장소에서 특정 커밋이나 브랜치로 돌아가고 싶을 때 사용

 

깃에서는 한 번에 하나의 브랜치에서만 작업이 가능한데 이를 헤드(HEAD) 브랜치라고 부릅니다.
현재 작업 중인 브랜치 = 헤드 브랜치

 

💡 머지 (merge)

머지 (merge): 한 브랜치의 내용을 다른 브랜치에 반영

 

✅ git pull

서버의 내용이 최신일 경우 pull을 적용한다.
충돌이 날 수 있지만 놀라지 말자.
pull = fetch + merge

반응형