Achievement Goals
- 상황에 따라 Github의 기능과 Git 명령어를 사용할 수 있다.
- Fork
- clone
- status
- restore
- add
- commit
- reset
- log
- pull
- push
- init
- remote add
- remote -v
- Git의 세 가지 영역 및 상태를 이해할 수 있다. (Committed, modified, staged)
- Remote Repository를 페어와 공유하며 협업을 할 수 있다.
- 충돌이 발생했을 경우 해결할 수 있다.
Advanced Challenge (optional)
- Git Repository의 commit되지 않은 변경 사항을 취소할 수 있다.
- reset HEAD <file>
- checkout -- <file>
- 협업을 위한 git 개념을 이해할 수 있다.
- branch, merge의 개념
- remote repository에서 origin과 upstream의 차이점
- Git repository
- Git으로 관리되는 폴더
- 작업할 때는 Local Repository에서 할 수 있고 내가 작업한 코드를 공유하려면 Remote Repository에 업로드해 여러 사람과 공유할 수 있음
- 다른 사람이 Remote Repository에 올려놓은 코드를 내 Local Repository에 가져올 수도 있음
- Fork
- 공유 리모트 레파지토리를 내 리모트 레파지토리로 가지고 오는 작업
- Clone
- 내 리모트 레파지토리에서 내 컴퓨터로 가지고 오는 작업
- Push
- 로컬 레파지토리에서 기록해 놓은 커밋을 리모트 레파지토리에 업로드하는 작업
- Pull
- 리모트 레파지토리에서 변경 사항이 있을 때 로컬 레파지토리로 가지고 오는 작업
혼자 작업 workflow
- Git의 영역 및 상태
- Untracked area: Git이 관리하고 있지 않은 영역
- Tracked area: Git의 관리를 받는 영역
- Unmodified: 기존에 커밋했던 파일을 수정하지 않은 상태
- Modified: 기존에 커밋했던 파일을 수정한 상태
- Staged: 커밋이 가능한 상태
- git init
- 작업 중인 폴더를 로컬 레파지토리로 설정
- git status
- 로컬의 staging area, untracked files을 확인할 수 있음
- 어떤 파일이 어떤 상태에 있는지, 해당 파일에 대해 어떤 행동을 할 수 있는지 알 수 있음
- git restore <파일명>
- commit되지 않은 로컬 레파지토리의 변경사항을 취소 및 폐기
- git add <파일명 or .>
- commit을 하기 위해 로컬의 파일들을 staging area로 옮기는 작업
- . 을 사용하여 모든 파일을 한 번에 추가할 수 있음
- git commit -m ‘커밋 메시지’
- 커밋 기록에는 날짜, 커밋한 사람, 커밋 메시지가 모두 출력됨
- git reset HEAD^
- 리모트 레파지토리에 업로드 되지 않고 로컬 레파지토리에만 커밋한 상태에서, 커밋한 내용을 취소
- ^은 1을 의미 즉, HEAD~1도 가능, HEAD3은 HEAD^^^을 의미
- git push <origin> <branch>
- 아래의 명령어 3줄을 터미널에 따라 입력하면 푸시할 수 있음
- git remote add origin http://~
- 로컬 레파지토리에 링크의 origin 원격 레파지토리를 추가한다
- git branch -M main
- branch 이름을 main으로 변경
- git push -u origin main
- origin 원격 레파지토리의 main branch로 현재 로컬 레파지토리를 푸시
- git remote add origin http://~
- 리모트에 있는 origin의 master 브랜치에 로컬 레파지토리의 변경사항을 업로드하기 위해서는 <branch> 자리에 master 입력
- git log
- 현재까지 커밋된 내여들을 터미널 창에서 확인할 수 있음
- Fork
- 다른 계정의 리모트 레파지토리를 내 계정으로 가지고 올 때 사용
- git clone <레파지토리 주소>
- 리모트 레파지토리를 내 로컬에서 이용할 수 있도록 복사
- git remote -v
- 연결된 레파지토리들 확인 가능
- Pull Request
- 내가 Push한 변경 사항에 대해서 다른 사람들에게 알리는 것
함께 작업 workflow
- git remote add origin <리모트 레파지토리 주소>
- 로컬 레파지토리에 리모트 레파지토리 연결
- git remote add <상대 이름> <리모트 레파지토리 주소>
- 로컬 레파지토리에 상대의 리모트 레파지토리 연결
- git pull <상대 이름> <branch>
- 리모트 레파지토리의 해당 브랜치 내용을 로컬 레파지토리로 가져옴
- 받아오는 내용은 자동으로 병합됨
- 같은 부분을 변경한 내용이 존재해 자동으로 병합할 수 없는 경우
- git status 명령어를 통해 어떤 파일이 충돌하고 있는지 확인할 수 있음
- 저장 옵션을 선택해서 파일 수정 반영
- 수정을 마치면 병합 커밋을 생성해주기 위해서 파일을 staging area로 추가해야함
깃허브와 깃을 들어만 보고 사용해보진 않았다
가끔 소스 코드 검색을 할 때 깃허브에 올라와있으면 어떻게 쓰는지 몰라 버벅거리며 포기했는데 이제는 사용할 수 있을 것 같다
처음 해보는 것이라 제대로 되고 있는진 잘 모르겠지만..
내일 실습을 통해 깃의 작동 원리를 제대로 이해해야겠다
실습 전에 미리 실습 내용을 한번 확인해보고 정리해보아야 할 듯
'Code States > TIL' 카테고리의 다른 글
[0321] (페어) Git과 버전 관리 시스템 - Simple Git Workflow (0) | 2023.03.21 |
---|---|
[0321] Git과 버전 관리 시스템 - Git Branch (0) | 2023.03.21 |
[0320] Git과 버전 관리 시스템 - 개발자 도구 Git 설치 (0) | 2023.03.20 |
[0317] 웹서비스 개발 기초 - Message States (0) | 2023.03.17 |
[0316] 웹서비스 개발 기초 - HTTP 기초 (0) | 2023.03.16 |