[Git] 기초

김예인·2023년 4월 16일

백엔드 공부일지

목록 보기
4/43
post-thumbnail

| 버전 관리 시스템 - Git

효율적인 소스 코드 기록 관리를 위해 로컬에서 버전을 관리해주는 ‘분산형 버전 관리 시스템’

  • 버전관리 기능
  • 백업 기능
  • 협업 기능
스냅샷 (snapshot) : 특정 시점에 생성된 백업 복사본 / 커밋 (commit) : 스냅샷을 만들어주는 작업

| Github

Git Repository를 관리할 수 있는 클라우드 기반 서비스

1. Fork : Other Remote Repository를 나의 Remote Repository로 가지고 오는 작업
2. Clone: 나의 Remote Repository에 옮겨온 코드를 수정을 위해 내 컴퓨터로 가져오는 작업
3. Push : Local Repository에 기록해 놓은 commit을 Remote Repository로 업로드
4. Pull : Remote Repository에서 변경 사항이 있을 때 Local Repository 로 가져오는 작업
5. Pull request : 내가 제안한 코드 변경사항에 대해 반영 여부를 요청
6. merge : 상대방의 작업물과 나의 작업물을 취합하는 과정

| Git Workflow

Git 의 영역

  • 온라인 : Remote repository(원격 저장소)
  • 로컬 : Work space(작업 공간), Staging area(스테이징 영역), Local repository(지역 저장소)

Git 의 관리 파일 상태

  • Untracked : Git에 의해 파일의 상태가 추적되고 있지 않은 상태 (파일의 변경 내용을 감지)
  • Tracked : 파일의 상태가 추적되고 있음을 의미 (파일의 내용 변경을 감지 불가)
    • Unmodified : 파일의 수정이 Git에 의해 감지되지 않은 상태
    • Modified : 파일의 수정이 Git에 의해 감지된 상태
    • Staged : 파일이 Staging area에 존재하는 상태, commit 이 가능한 상태
<git init> : 현재 디렉토리를 Git 저장소로 초기화하는 명령어
Git이 관리하길 원하는 파일이 존재하는 위치에서 입력하면 해당 위치의 모든 파일들이 Git의 관리를 받는다.

<git status> : Git으로 관리되고 있는 파일들의 상태를 확인하는 명령어

<git add> + 파일명: 특정 파일을 Staging area로 이동시키는 명령어 (‘파일을 스테이징한다’**)**

<git add .> : 현재 디렉토리 내의 모든 파일이 스테이징

<git commit -m> + 커밋 메시지 : Local repository에 파일을 저장하는 명령어

<git log> : Commit 내역(커밋 해시, 브랜치 정보, 커밋 메시지) 을 확인하는 명령어

<git remote --v> : 명령어를 입력한 위치의 Local Repository와 연결된 Remote repository가 있는지 확인하는 명령어

<git remote add> + 원격 저장소 별칭 + 원격 저장소 URL : Remote repository를 연결하라는 명령어 

<git remote rm> + 원격 저장소 별칭 : Remote repository를 다시 연결 해제하는 명령어 

<git push> + 원격 저장소 별칭(origin) + 브랜치 이름 : 작업물을 Remote repository에 업로드하는 명령어

<git pull> + 원격 저장소 별칭 + 브랜치 이름

<git clone> : Remote Repository의 코드를 로컬로 복사해 오는 명령어

<git restore> : commit 되지 않은 Local Repository의 변경 사항을 폐기하는 명령어

<git reset> + HEAD^ : 바로 직전의 commit 취소

| 4일차 회고 |

오늘은 떨리는 마음으로 첫 페어 학습을 진행했다. 내가 먼저 디엠을 했고 미팅 방식을 리드했고 줌 회의실도 잡아 공유했다. 또 주어진 90분을 어떤 구성으로 사용할지 리드하여 페어의 의견을 묻고 정하였다.
그런데, 페어는 학습을 50% 가량 진행했고 나는 모두 진행은 했지만 내용 숙지가 부족했던 상황이라 절반의 시간을 각자 학습하는데 사용했고 다시 만나 페어를 진행했다.
나의 페어는 원래도 개발자셨다...! 그래서 나보다는 이해를 좀 더 잘하신 듯 했지만, 깃을 이용해보신 적은 잘 없어 나랑 비슷하기도 했다. 그러다보니 서로 말이 없는 시간이 많았고...ㅋㅋ 각자 이해하고 해보느라 말없이 한참 시간을 보냈다...ㅋㅋ 결국 6시 넘어서까지 추가로 진행해서 끝을 내긴 했다만... 나는 페어 학습이 끝난 뒤에야 어느정도 이해했다 허허 ㅎㅎㅎㅎ
내가 이해 속도가? 학습 속도가? 페어 학습을 진행하기에는 살짝 느리다는 생각이 들었다. 예습을 하는게 좋지 않을까? 아니면, 페어 학습 전 내가 충분히 이해할 수 있도록 시간 분배를 잘 해야겠다.. 그렇다면 그건 어떻게 할 수 있지....?
이번에는 어느정도 비슷한 페어를 만나서 서로 헤메느라 어영부영 진행되었지만, 잘하는 페어를 만나면 정말 식은땀 날 것 같다. 시간내에 둘이서 완성해야 하는데, 내가 느려서 폐를 끼친다는 느낌이 들 것 같다.
벌써 첫 한주가 마무리되었다. 첫 주는 워밍업 시간이랬는데, 앞으로 또 얼마나 촉박할지, 얼마나 더 많은 내용을 소화해야할지 두렵다 ㅎㅎ 본 과정 시간에는 내가 조금 느린 편이니, 전날 시간 여유가 된다면 예습을 해두면 좋을 것 같다. 다음주도 화이팅 하자!!!
profile
백엔드 개발자 김예인입니다.

0개의 댓글