독학/[책] git, github

[Git/GitHub🐱] 팀 개발을 위한 Git, GitHub 시작하기 DAY1

최연재 2023. 2. 6. 01:10

교재 : 팀 개발을 위한 Git, GitHub 시작하기 (한빛미디어)
 
git 자체는 웹프로그래밍기초 수업을 들으면서 써본 적이 있는데, gitHub desktop으로 push, gitHub에서 교수님의 레포지토리를 fork하는 정도로만 해본 것 같다. 수업에서는 GUI로 버전관리를 했는데, 교수님께서 꼭 CLI로도 버전관리를 학습해보라고 하셨다. 그래서 2022년 초에 책을 샀는데, 토익 등과 같은 여러 일로 미뤄지다가 이번 방학에는 꼭 책을 한 번 제대로 공부하자는 생각에 공부를 2월 3일에 시작했다. 책에서는 일주일 완성 로드맵을 제시하고 있고 이를 그대로 따라서 책을 한 번 끝까지 본 뒤에는 인프런에서 진유림 선생님의 강의를 들으며 한 번 더 공부할 생각이다. (이미 강의 결제까지 했다.)
 

교재 실습하기

🔭 챕터 0은 git을 설치하고, Git Bash로 명령어를 몇 가지 사용해보는 내용이다. git은 이미 설치가 되어 있어서 바로 실습을 시작했다.
 

📌 로컬저장소 만들고 Git에 연결하기

로컬저장소 :  Git을 통해 버전 관리가 이루어질 내 컴퓨터에 있는 폴더
① 폴더를 만들고, 그 안에 README.txt 파일을 만들어 저장하기.
② 폴더에서 마우스 우클릭 후 Git Bash Here 클릭하기.

git init 명령어를 실행하면 폴더 내에 .git이라는 폴더(로컬저장소)가 생성된다

 

📌 버전 관리를 위해 내 정보 등록하기

git config --global user.email "(GitHub 계정정보 이메일)" , git config --global user.name "(GitHub 계정정보 닉네임)"

 

📌 파일 추가 및 상세 설명 적기

git add 추가할 파일명 , git commit -m "상세 설명"

 

📌 내가 지금까지 만든 커밋 확인하기

git log ; 아래가 더 과거이다.

 

📌 커밋 되돌리기

git checkout 앞 7자리 커밋 아이디(혹은 전체 커밋 아이디)

 

📌 최신 커밋으로 돌아가기

git checkout -

 

📌 원격저장소 만들기

; GitHub에서는 원격저장소를 레포지토리라고 한다.

원격저장소를 성공적으로 만들었다.

 

📌 원격저장소에 커밋 올리기 -> 원격저장소에서 로컬저장소에서 만든 커밋들을 볼 수 있다. (push)

① git remote add origin "원격저장소 주소" (바로 위 그림에서 옆의 버튼으로 복사 가능!) 
② git push origin master

 

📌 원격저장소의 커밋을 로컬저장소에 내려받기

① 내려받은 것을 저장하기 위한 폴더 만들기

초록 버튼을 눌러서 원격저장소 주소 복사하기

② ①에서 만든 폴더를 우클릭해 Git Bash Here 클릭

git clone "복사한 주소" .

❗ "주소" 뒤에 한 칸 띄고 마침표를 넣으면 폴더 내에 바로 .git 폴더와 파일들이 생긴다.
❗"주소" 뒤에 바로 마침표를 넣으면 폴더 내에 원격저장소 이름의 폴더가 생기고 그 안에 .git 폴더와 파일들이 생겨 구조가 복잡해진다.
 

📌 원격저장소의 새로운 커밋을 로컬저장소에 갱신하기

git pull origin master , pull은 원격저장소에 새로운 커밋이 있을 경우 그것을 내 로컬저장소로 받아오라는 명령어.

 


 
🔭 챕터 1은 GUI를 위한 버전 관리 환경을 구축하는 내용이다. 여기서는 소스트리와 vscode를 설치한다. 나는 이미 vscode를 깔아서 사용해봤기 때문에 vscode 파트는 빠르게 훑었다. 
 

📌 소스트리 설치 

 


 
🔭 챕터 2는 소스트리를 사용해보는 내용이다.
 

📌 로컬저장소를 소스트리에 불러오기

❗소스트리에 저장소 추가하기

  • Clone : 원격저장소를 내 저장소로 받아오고 소스트리에 추가 (로컬저장소가 자동 생성됨)
  • Add : 내 컴퓨터에서 이미 만든 로컬저장소를 소스트리에 추가
  • Create :  내 컴퓨터의 폴더에 새로운 로컬저장소 생성 (==git init)

 

📌 소스트리로 커밋 만들고 푸시하기

책의 스크린샷에서는 orgin/HEAD도 있는데, 내 화면에서는 master, origin/master만 떴다.  왜일까? 뭘 놓친걸까

인터넷에 검색해보다가 https://www.inflearn.com/questions/198498/%ED%98%91%EC%97%85-%EC%97%B0%EC%8A%B5%ED%95%98%EB%8B%A4%EA%B0%80-%EB%AC%B8%EC%9D%98%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4

협업 연습하다가 문의드립니다 - 인프런 | 질문 & 답변

컴 두대로 각각 계정 하나씩 물려서 초대하고 수락하고 테스트 해보고 있는데.. 소스트리 왼쪽 밑에쪽에 원격 이라는 부분에 HEAD라는게 있어서 그냥 지웠는데요.. 뭐라고 오류나면서 완료됐는데

www.inflearn.com

이 글을 발견했다. 내가 다음에 들으려고 사둔 강의라서 놀랐고, 답변해주신 내용대로 하니 바로 origin/HEAD가 생겼다!!
 

위의 사진에서 + 버튼을 눌러서 스테이지에 올리고, 커밋 메세지를 적어서 커밋한다.

 

📌 커밋을 원격저장소에 푸시하기

푸시 체크박스를 클릭하고 푸시한다. 책에서는 추적 박스가 검은색인데 내가 그 푸시했다....

 

완료 화면! 참고로 내가 origin/HEAD가 보이게 명령어를 쓴 건 2월 6일이라서 캡쳐본에는 origin/HEAD가 없다. 이때까지는 별 문제가 없어서 책의 개념에 더 집중했었다.

 
 

배운 내용 정리

⭐ Git : 버전 관리 시스템
⭐ GitHub : Git으로 관리하는 프로젝트를 올릴 수 있는 사이트
⭐ GUI : 그래픽 유저 인터페이스, 마우스로 클릭해 사용하는 방식
⭐ CLI : 커맨드 라인 인터페이스, 명령어를 입력해 사용하는 방식
⭐ Git Bash : CLI 방식으로 Git을 사용할 수 있다.
⭐ 커밋 : 버전 관리를 위해 생성된 파일이나 행위
⭐ log 명령어 :  지금까지 만든 명령어를 모두 확인한다.
⭐ 체크아웃한다 : checkout으로 원하는 지점으로 파일을 되돌릴 수 있다. 
⭐ 로컬저장소 :  Git으로 버전 관리하는 내 컴퓨터 안의 폴더
⭐ 원격저장소(==레포지토리) : GitHub에서 협업하는 공간(폴더) 
⭐ 푸시 : 로컬저장소의 커밋(버전 관리한 파일)을 원격저장소에 올리기
⭐ 풀 : 원격저장소의 커밋을 로컬저장소에 내려받기
⭐ 마크다운 문서 : .md 확장자를 가지는 문서로 문법이 있어서 내용이 보기 좋게 보여진다.
⭐커밋은 차이점이 아니라 스냅사진이다.
: Git은 전체를 저장한다. 버전을 보여줄 때 이전 커밋과 현재 커밋을 비교하는 연산만을 진행해서 용량도 적고 계산 속도도 빠르다.
 
 

배운 명령어 정리

⭐ git init : Git 초기화 과정을통해 로컬저장소를 생성
⭐ git config --global user.email "(내 이메일)", git config --global user.name "(내 닉네임)" : 버전관리를 위해 내 정보 등록
⭐ git add 파일명.확장자 : 커밋에 파일 추가하기
⭐ git commit -m "상세 설명" : 커밋에 상세 설명 적기 (-m은 메세지의 약자)
⭐ git log : 지금까지 만든 커밋 확인하기
⭐ git checkout 커밋아이디(앞 7자리 혹은 전체) : 해당 커밋으로 코드 되돌리기
⭐ git checkout - : 최신 커밋으로 돌아가기
⭐ git remote add origin "원격저장소 주소" : 로컬저장소에 원격저장소의 주소를 알려줌
⭐ git push origin master : 로컬저장소의 커밋을 원격저장소에 올리기
⭐ git clone "원격저장소 주소" : 원격저장소에 있던 내용을 로컬저장소로 받아오기
⭐ git pull origin master : 원격저장소의 새로운 커밋을 로컬저장소에 받아오기