1. 터미널용 어플리케이션 추천
- CUI
- Mac OS -> iTerm2
- Windows OS -> Cmder
- GUI
- Sourcetree
2. Git 관련 설정 확인
(1) git 설정
$ git config --list
(2) git 설정(global) 파일 열기.
git config --global -e // 글로벌로 설정된 것을 edit 모드로 열기
(3) 터미널에서 Visual Studio 열기
$ code .
(4) git Config 설정하기
- git config --global user.name "이름"
- git config --global user.email "이메일"
- git config --global core.autocrlf true
- windows OS
- git config --global core.autocrlf input
- mac OS
※ core.autocrlf 옵션
운영체제마다 새로운 줄바꿈을 할 때 들어가는 문자열이 달라진다.
Windows 의 경우, "\r\n"
mac OS의 경우, "\n"
3. Git Workflow
(1) 작업 환경
working directory
: 프로젝트의 파일들을 수정하는, 작업하고 있는 working directory
staging area
: 작업 후 버전 히스토리에 저장할 준비가 되어 있는 파일들을 옮겨놓는 staging area
.git directory(git repository)
: 버전의 히스토리를 갖고 있는 .git directory(git repository)
(2) workflow
(3) 각각의 버전(Commit )
각각의 버전에는 스냅샷된 정보들을 기반으로 고유한 해쉬코드.
- hash 값
- ID
- Version 에 관련된 message
- author : 누가 작성하였는 지.
- date / time
(4) working directory
- untracked
- 새로 만들어진 파일이거나 기존에 존재하던 프로젝트에서 git을 초기화하게 되면 git이 파일에 대한 정보가 전혀 없는, 아직 tracking 하고 있지 않은 파일.
: 새로 만들어진 파일이거나 기존에 존재하던 프로젝트에서 git을 초기화하게 되면 git이 파일에 대한 정보가 전혀 없는, 아직 tracking 하고 있지 않은 파일.
- tracked
- git 이 이미 알고 있는 즉, tracking 하고 있는 파일.
- 해당 시점에서 수정이 되었는 지 유무에 따라,
- unmodified : 이전 버전과 비교해서 수정이 되지 않음.
- modified : 이전 버전과 비교해서 수정이 됨.
tracking 하고 있는 파일 중(tracked)에서도 수정이 된 (modified) 파일만 staging area 로 옮겨갈 수 있다.
4. Git 명령어
$ git [명령어] [옵션]
(1) git 초기화
$ mkdir git
$ cd git
$ git init // git 초기화
ls -al 명령어로 확인해보면 .git 이라는 파일이 생성되어 있음.
$ cd .git
$ ls -al
git 에 관련된 모든 정보들이 해당 폴더에 저장된다.
(master) branch 가 생성된 것을 볼 수 있는데, 우리가 기본적으로 commit 해서 버전을 관리하는 branch 이다.
git 을 제거하고 싶다면 .git 파일을 삭제하면 된다.
$ rm -rf .git
(2) git 상태 확인.
$ git status
5. 실습
(1) 텍스트 파일 생성.
$ echo hello world! > a.txt
$ echo hello world! > b.txt
$ echo hello world! > c.txt
- master 의 색이 빨간색으로 된 것은 working directory 에 변경 사항이 발생된 것을 의미.
(2) git status : 상태 확인
$ git status
- master branch 위에서 작업하고 있음.
- Initial commit (commit 없음)
- untracked 된 파일들
- commit 한 것들은 없지만, untracked 파일들이 존재한다. (add 로 track 해주어라.)
(3) git add [파일명]
: git commit 을 하기 위하여 stagin area 에 옮기려면 git add 를 실행해야 한다.
$ git add a.txt
$ git add a.txt b.txt
$ git add *.txt
$ git jaewon >> a.txt // a.txt 파일에 내용 추가.
- a.txt b.txt c.txt 파일이 commit 할 준비가 되어 있음.
- a.txt 파일에 수정이 있었음. ( git add 를 통해 업데이트 가 필요함.)
- commit 된 파일에서 checkout 을 통해 가져와서 변화된 a.txt 를 없애버릴 수 있음.
- sourcetree 에서도 확인 가능함.
$ git add a.txt
$ git status
(3) git rm --cached [파일명]
: tracked 파일(들)을 untracked 상태로 바꿈.
$ git rm --cached *
(4) git add .
: 현재 디렉토리에 있는 파일들을 add
(5) git ignore
: 추가하고 싶지 않은 파일이 있다면 .gitignore 이라는 파일을 생성하여 안에 파일명 입력.
$ echo *.tt > .gitignore
$ ls
$ build/*.log >> .gitignore
- .gitignore 파일에 추가하고 싶지 않은 파일들을 쓴다.
(예시)
(6) git status -s
: git 상태를 간략하게 확인 가능.
$ git status -s
(7) git diff
: 어떤 파일의 내용이 수정되었는 지 확인.
$ git diff // 옵션이 없으면 working directory 에서 변경 사항 확인.
$ git diff --staged // staging area 와 비교.
$ git diff --cached // staged = cached
- 아래 두 개를 비교
- --- a/c.txt : 이전 버전 a/c.txt
- +++ b/c.txt : 수정된 버전 b/c.txt
- @@ -1 +1,2 @@ : 아래에 있는 변경 사항을 어떻게 이해하면 좋을지 알려줌.
- -는 이전파일 1 첫번째 줄 = hello world!
- +는 수정된 현재 파일 1,2 첫번째 줄에서 두 줄까지 : hello world! 하고 다음 줄
- +{내용} : add 가 추가됨.
* 설정 파일 수정하여 vscode 에서 diff 사용하여 확인하는 방법. ( $LOCAL 과 $REMOTE 를 비교 )
(8) git commit
: staging area 에 있는 변경 사항을 git repository 에 옮겨줌.
$ git commit
$ git commit -m
$ git commit -am // git add 와 commit 을 같이
Reference
- https://www.youtube.com/watch?v=Z9dvM7qgN9s
'DevOps > Github' 카테고리의 다른 글
[Github] 기초(2) (0) | 2022.09.06 |
---|