TIL
TIL_20220829
번잔중
2022. 8. 29. 23:47
오늘 할 일
- 코드스테이츠 7일차
- Git
- 버전 관리 시스템 - Git
- Git의 탄생 배경과 Git이 제공하는 유용한 기능을 이해함으로써, Git이 무엇인지 이해한다.
- Git과 Github의 차이를 설명할 수 있다.
- Git 설치
- Git을 설치하고, 환경 설정을 할 수 있다.
- SSH 키를 생성하여 Github에 등록할 수 있다.
- Git Workflow
- 혼자 작업하는 경우의 workflow를 이해한다.
- 함께 작업하는 경우의 workflow를 이해한다.
- 상황에 따라 Github의 기능과 Git 명령어를 사용할 수 있다. (Fork, clone, status, add, commit, push, restore, reset, log, pull, init, remote add, remote -v)
- Git의 세 가지 영역 및 상태를 이해한다. (Committed, modified, staged)
- Remote Repository를 페어와 공유하며 협업을 할 수 있다.
- 충돌이 발생했을 경우 해결할 수 있다.
- Git Repository의 commit되지 않은 변경 사항을 취소할 수 있다.
- reset HEAD <file>
- checkout -- <file>
- 협업을 위한 git 개념을 이해할 수 있다.
- branch, merge의 개념
- remote repository에서 origin과 upstream의 차이점
- 버전 관리 시스템 - Git
- Git
오늘 배운 것
🔱 Git
Git은 개발자의 코드를 효율적으로 관리하기 위해서 개발된 소스 코드 기록을 관리하고 추적할 수 있는 ‘분산형 버전 관리 시스템’이다.
Git의 특징
- 파일의 변경 사항을 추적하며, 사용자가 각 파일의 버전을 관리할 수 있게 도와준다. 이를 이용하면 이전 버전으로 쉽게 되돌아갈 수 있다.
- 예상치 못한 상황에 대비해 파일을 백업할 수 있게 해준다.
- 협업자들과 함께 파일을 공유하고, 각자의 작업물을 취합할 수 있게 해준다.
GitHub
Git은 로컬에서 버전을 관리해주는 프로그램이며, Github은 Git을 클라우드 방식으로 구현한 서비스이다.
Github는 Git이 설치된 클라우드 저장소이다. 따라서, 로컬에서 Git이 관리하는 파일을 Github의 원격 저장소에 업로드하면, 업로드된 파일들에 대해 Git의 핵심 기능인 버전 관리 기능을 사용할 수 있으며, 온라인 저장소이므로 백업 및 다른 협업자들과 공유가 가능하다.
- add, commit, push : 온라인 원격 저장소에 업로드하는 과정
- fork, clone : 협업자의 작업물을 나의 로컬에 다운로드 받는 과정
- pull request : 상대 협업자에게 나의 작업 완성물을 취합해달라고 요청하는 과정
- merge : 상대방의 작업물과 나의 작업물을 취합하는 과정
Git 환경설정
사용자 정보
Git을 설치하면 가장 먼저, 사용자 이름과 이메일 주소를 설정한다. 설정에 기록된 사용자 이름과 메일 주소를 앞으로 진행할 Git 커밋 내역에 기록한다.
$ git config --global user.name "나의 사용자 이름"
$ git config --global user.email "내 이메일 주소"
프로젝트마다 다른 사용자 이름과 이메일 주소를 사용하고 싶으면 --global 옵션을 빼고 명령을 실행할 수 있다.
에디터
Git에서 커밋 메시지를 기록할 때, 특히 merge commit 확인 메시지가 나올 때 텍스트 에디터가 열린다. 기본값으로 텍스트 에디터 vi가 열리는데, vi 에 익숙하지 않다면, nano로 변경하는 편이 좋다.
$ git config --global core.editor nano
Git 기능
Fork
다른 계정의 Remote Repository를 내 Remote Repository로 가지고 올 때 사용한다.
clone
내 Remote Repository를 내 로컬 환경에서 사용할 수 있도록 복사한다.
git clone <Repository 주소>
status
내 로컬로 복사해 온 디렉토리의 commit이 되기 전까지의 상태를 표시한다.
git status
restore
commit 혹은 staged 되지 않은 로컬 저장소의 변경 사항을 폐기한다. add만 되어 있는 상태에서 사용하는 것이다. 이것을 사용하면 처음 clone 받아온 상태로 돌아간다.
git restore <파일명>
add
untracked files를 staging area로 추가해서 Git의 관리하에 둔다. commit을 하기 전에 한다.
# 특정 파일만 추가
git add <파일명>
# 모든 파일을 한번에 추가
git add .
commit
수정 작업이 끝났을 때, 변경 사항을 저장한다. 어떤 사항이 변경됐는지 간단한 메모를 통해서 버전의 변경 기록들을 관리할 수 있다. 스냅샷을 찍듯이 변경된 이력을 언제, 누가, 어떻게 변경이 되었는지 저장할 수 있다.
# -m 옵션을 통한 commit message 작성
git commit -m "메시지 작성"
# git에서 add와 commit 한번에 할 수 있는 명령어
git commit -am "second"
staging area
commit 하기 전 내용을 기록하는 장소
reset
Local Repository에서 commit한 내용을 취소할 때 사용한다. 아직 Remote Repository에 올라가지 않은 commit이면 취소할 수 있다.
# 바로 직전의 commit을 취소한다. ^의 개수 또는 ~숫자로 파일을 선택할 수 있다.
git reset HEAD^
push
Local Repository에 저장되어 있는 commit 기록들을 내 Remote Repository 에 업로드 한다.
git push <origin> <branch>
log
현재까지 commit된 내역들을 터미널 창에서 확인할 수 있다. 터미널 창을 종료하려면 q를 누른다.
git log
Pull Request
내가 push한 변경 사항에 대헤서 다른 사람들에게 알리는 것이다.
init
기존 디렉토리를 Git Repository로 변환하거나 새로운 Repository를 초기화하는데 사용한다.
git init
remote add origin
Local Repository를 나의 Remote Repository와 연결하는 작업이다.
git remote add origin <Repository 주소>
remote add pair
Local Repository를 pair의 Remote Repository와 연결하는 작업이다.
git remote add pair <Repository 주소>
remote -v
현재의 Local Repository와 연결된 모든 Remote Repository 목록을 확인한다.
git remote -v
Pull
Remote Repository의 해당 branch 내용을 Local Repository로 가져온다. 이 때, 받아온 내용은 자동으로 병합(merge)된다.
git pull <shortname> <branch>
느낀점
- Git을 항상 어려워서 미뤄왔다. 수업으로라도 시작하게 된 것이 얼마나 다행인지 모른다. Git을 잘 활용할 줄 아는 사람이 부러운 나였지만 나도 그렇게 되면 되는 것이다.
- 페어분과 함께 했었는데, 모든 스텝마다 함정이 있는 것인지 엄청 헤메면서 했다. 페어분도 나도 지치고 힘든 시간이었지만 둘 다 오기가 발동해서 기존 페어시간을 넘기고서까지 해당 세션을 완료했다. 🪖전우애 그런게 느껴졌다...
- 앞으로 Git과 더 친해지고 싶다.
내일 할 일
🫧 코드스테이츠 8일차
- 자바 이론
- 변수와 타입
- 문자열
- 스터디 규칙 정하기(놀랍지만 내가 조장ㅋ)