본문 바로가기
DevOps/Github

[Github] 기초

by Haengsin 2022. 9. 5.

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 파일에 추가하고 싶지 않은 파일들을 쓴다.

(예시)

.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