-
[Git & Github] Git 다시 공부하기 (드림코딩 엘리)Environment(개발환경)/Git & Github 2020. 12. 6. 19:05반응형
🙀 다시 공부해보는 Git 과 Github!
Git 명령어를 통해 직접 Github로 push까지 해보았지만, 아직 사용하는데 있어 익숙치가 않았다.
또한, branch나 commit 등 갈 길이 멀기에, 심화를 들어가기 전 드림코딩 엘리님 영상으로 복습했다.
출처: Youtube 드림코딩 엘리님 영상(youtu.be/Z9dvM7qgN9s)
📕 Git 공부 준비하기
- Git 설치하기(공식사이트) : git-scm.com/git-scm.com/download/
- Git GUI 설정: 프롬프트(터미널) 명령어 기반 프로그램으로 UI 권장. (git-scm.com/download/gui/mac)
* 엘리님은 Github Desktop 보다는, Source Tree(by 아틀라시안) 혹은 GitKraken 추천했다.
-> Source Tree는 UI가 simple하나 유용한 기능 지원, GitKraken은 UI가 매우 화려함. 우선 기본공부는 Terminal로!
- Git 설치확인 : 버전이 반환되면 정상적으로 설치된 것이다.
git --version
📕 Git 초기 환경설정
- git config : Git의 환경설정 확인 및 변경
git config --list // 텍스트 형태 git config --global -e // 파일 형태
Code Editor와의 연동도 가능하다.
code . // 연동된 에디터 확인(vscode) git config --global core.editor "code --wait"
code는 vscode 에디터를, --wait은 에디터가 켜진 동안 프롬프트(터미널)이 대기상태 설정하는 명령어이다.
- 기본 환경설정
// 설정 git config --global user.name "Taeng" git config --global user.email "dyek72731@gmail.com" git config --global core.autocrlf true // mac은 input // 출력 git config user.name git config user.email
* autocrlf 는 줄바꿈 관련 설정. Windows는 \r\n, Mac은 \n으로 줄바꿈이 되는데, \n로 통일시키는 명령어.
- 명령어 간소화 환경설정
git status // status git config --global alias.st status git st // status
alias.<간소화> <명령어> 를 통해서, 자주 쓰이는 명령어를 간소화 할 수 있다.
- git init : Git 프로젝트 초기화
// cd로 디렉토리에 접근한 뒤.. git init rm -rf .git
디렉토리를 Git 프로젝트로 초기화한다. .git 숨겨진 폴더가 생성되며, 기본 설정은 master branch이다.
.git 폴더를 지우려면, rm -rf .git 명령어를 사용하면 된다. * Source Tree 같은 GUI로도 만들 수 있다.
📕 Git Basics
- Git 작업환경
Git은 개인 컴퓨터의 히스토리인 Local 저장소와 Github 서버에 저장하기 위한 Remote 저장소로 나뉜다.
또한, Local 저장소는 다시 3가지 디렉토리로 구분된다. (Working directory / Staging area / .git directory)
- Git 명령어 구성
git <명령어> -<옵션>
Git 명령어 구성은 위와 같다. 명령어와 옵션은 공식사이트의 Documentation > Reference에 잘 나와있다.
* 참고(공식사이트) : git-scm.com/docs
1) git status : Git 프로젝트 디렉토리 파일 상태 확인
해당 디렉토리(git tut)의 파일상태를 보여준다. Branch는 master, commit은 없으며, Untracked 파일 3개를 의미한다.
git add를 통해 tracked 상태로 설정할 수 있다. (-> Staging area)
[git status 옵션들]
- -h : 도움말(옵션들 확인가능)
- -s, --short : 짧게 설명 (--long이 default)
- -b, --branch : 브랜치 관련 정보
2) gid add : 디렉토리 내 파일을 tracked 및 Staging area로 보냄
git add <파일명> 을 통해 tracked 상태로 만든다. tracked의 의의는 파일의 수정 및 삭제여부 추적인 것 같다.
Staging area의 파일들은 unmodified(초록색 글씨, commit 가능)상태, 수정된다면 modified(빨간색 글씨) 상태가 된다.
// add 특수문법 git add *.txt // 특정 확장자만 보냄 git add * // 모든 파일 보냄(rm 된 파일은 제외) git add . // 모든 파일 보냄(rm 된 파일도 포함)
3) git diff : 디렉토리 내 파일의 변경내용 비교
--- a(전버전)/c.txt 와 +++ b(신버전)/c.txt 를 비교한다. +는 추가된 부분, -는 삭제된 부분을 의미한다.
기본적으론, Working Directory만 비교하기 때문에 a는 commit 혹은 Staging area의 수정된 파일일 확률이 높다.
git diff --staged 는 Staging area 기준 비교로, 맨 처음 확인한다면 원래 /dev/null 과 추가된 b/파일명 이 나올 것이다.
git diff --cached 는 위와 같은 역할을 한다. (cache = Staging area)
git difftool 은 설정된 툴(vscode 등)을 활용하여 diff 비교상태를 보여준다.
4) git commit : Staging area 파일들을 Local Repository로 보냄(버전화)
commit 만 사용하면 템플릿이 팝업되고, 버전에 대한 Title과 Description을 적은 뒤 저장한다.
commit 된 파일들은, Local(.git Repository)에 저장되며 master branch에서 하나의 버전이 된다.
통상, git commit -m "메세지" 를 통해서 수정이력을 간단하게 적는 방법으로 사용한다.
git commit -am "메세지" 를 사용해서, Staging area를 안 거치고 Working에서 바로 commit 할 수도 있다.
5) git log : commit history 확인
commit된 이력과 저자, 날짜, Title, Description 등 정보를 확인할 수 있다.
commit 룰은, 동사 + 수정사항이 일반적이다. 또한, 수정 기능별로 업데이트하며 해당내용 외 수정을 추가하면 안된다.
* gitignore : 디렉토리 내에서 Git 업로드를 제외하는 파일목록
// .gitignore 파일 내 <파일명> *.<확장자> <디렉토리>/ <디렉토리>/*.<확장자>
git을 이해해야 할 부분이 참 많다. Local Repository의 구분과 각 상태, 적합한 명령어까지...
github와 이어지면서 Remote Repository 개념도 생기고, branch에 대해 이해해야하는 심화학습 전의 복습이었다.
엘리님 강의는 항상 예제와 함께 설명해주셔서 이해하기 좋으며, 이 강의는 git에 많이 치중된 거 같다.
(github와 Remote 저장소에 대한 내용이 없었음)
다음엔, git 및 github의 심화개념들을 공부해서 포스팅하도록 하겠다.
출처: Youtube 드림코딩 by 엘리 (https://www.youtube.com/watch?v=Z9dvM7qgN9s)
반응형'Environment(개발환경) > Git & Github' 카테고리의 다른 글
[Github] Branch 병합(Merge, Squash, Rebase) (0) 2022.02.18 [Git & Github] 기본개념 및 명령어 (0) 2020.12.03