2 분 소요



1. Git 초기 설정

커밋 작성자(author) 설정

  • 최초 1회 설정
  • 만약 설정을 하지 않고 진행하면 commit 메시지를 남기는 상황에서 아래와 같은 에러 발생
$ git commit -m "Initial commit"
Author identity unknown # 이거 누가 쓴지 모르겠다는 의미 

*** Please tell me who you are. # 님이 누군지 좀 알려줘..!

Run # 아래 이거 그냥 따라하셈
 
  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'poeun@DESKTOP-21K4HL.(none)')
  • 이 설정은 인증(로그인) 정보와는 전혀 상관없음



author 설정

$ git config --global user.email "rjsdudans@naver.com"
$ git config --global user.name "ingu627"



설정 확인

$ git config --global --list # -l(소문자)

filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
user.name=ingu627
user.email=rjsdudans@naver.com
init.defaultbranch=master



(추가 설정) 커밋 편집기 변경

  • 해당 명령어는 반드시 vscode가 설치되어 있어야 함

  • 기본 텍스트 편집기를 vim에서 vscode 로 변경하는 것

$ git config --global core.editor "code --wait"



로컬 저장소의 git 히스토리 삭제

$ rm -rf .git



2. 파일 생성

폴더 생성

$ mkdir 폴더명

파일 생성

$ touch 파일명

파일 열기

$ vi 파일명



3. Git Basic

로컬 저장소 설정

# git 초기화 -> master 표시가 뜰 것!
# 결과적으로 해당 폴더에 숨기 폴더로 .git/이라는 폴더가 생김
$ git init
Initialized empty Git repository in F:/test/.git/

$ touch a.txt # a.txt 파일 생성

$ touch b.txt # b.txt 파일 생성 

로컬 저장소의 git 삭제할 때

$ rm -rf .git

확인

$ ls -a

./  ../  .git/  a.txt  b.txt
  • a.txt와 b.txt를 touch로 만들어 놨다.

주의 사항!!

.git 폴더가 또 다른 폴더 내부에 있으면 안됨! (git 속 git은 절대 금지!!!)

image-20210705144804835



status

현재 git이 관리하는 폴더의 파일과 폴더 상태를 알려주는 명령어(working directory & staging area를 확인하는 명령어)

$ git status # WD & SA를 확인하는 명령어!! 정말 정말 중요하기 때문에 습관적으로 사용해야 한다.
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        a.txt
        b.txt

nothing added to commit but untracked files present (use "git add" to track)



add

WD -> SA로 올리는 과정

$ git add a.txt

$ git status
On branch master

No commits yet

Changes to be committed: # 커밋 되어질 변경 사항들 
  (use "git rm --cached <file>..." to unstage)
        new file:   a.txt

Untracked files: # git이 아직 변경 사항을 추적하고 있지 않은 친구들
  (use "git add <file>..." to include in what will be committed)
        b.txt

image-20210705150947301

# 기본 -> commit을 위한 폴더 & 파일을 추가!
$ git add 파일/폴더이름

$ git add a.txt # 특정 파일을 WD -> SA 
$ git add . # 해당 디렉토리(하위 디렉토리 모두 포함)의 모든 폴더 & 파일을 SA 
$ git add my-folder/ # 특정 디렉토리를 WD -> SA



윈도우 git 에서 한글 파일이 깨져 나올 때 해결 방법

$ git config core.quotepath false



터미널 입력 시 파일명에 공백이 있을 경우 문제

  • 터미널에서 명렁어 입력 시 파일명, 폴더명에 공백이 있으면 제대로 인식이 안된다. 이럴 때는 공백 앞에 역슬래시()를 넣으면 해결된다.



에러 - 공백일 있을 경우 에러가 난다.

$ git add useful_code/한글 파일 깨짐 방지 코드.ipynb
fatal: pathspec 'useful_code/한글' did not match any files



해결법 - 역슬래시를 붙이면 제대로 된다.

$ git add useful_code/한글\ 파일\ 깨짐\ 방지\ 코드.ipynb



수정되거나 삭제된 파일 반영

git add -u

또한 git commit 에서 -a옵션을 붙여주게 되면 수정되거나 삭제된 파일만 commit하게 해준다.

git commit -a -m'message'

=> push까지 하면 github에 제대로 반영이 된다.



commit

  • commit을 통해서 하나의 버전으로 기록됨
  • commit 메시지는 현재의 변경 사항을 잘 나타내도록 ‘잘’ 써야함
  • commit 내역은 $ git log라는 명령어로 확인할 수 있음



commit 메시지의 기본 구조

# -m(message)
$ git commit -m "남기고 싶은 메시지"
$ git commit -m "Initial commit"
[master (root-commit) acf00f0] Initial commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a.txt



commit 내역 확인

# 
$ git log

commit acf00f0792da06e949f21997a4f4226dc64a3ea7 (HEAD -> master)
Author: ingu627 <rjsdudans@naver.com>
Date:   Sun Nov 21 14:36:03 2021 +0900

    Initial commit



commit 이력을 더 짧게 보기

$ git log --oneline
acf00f0 (HEAD -> master) Initial commit



git 로그 정지 탈출 방법

: Q를 누른다.

퀴즈! 만약 status를 여기서 찍으면 어떤 결과가 나올까?

  • 현재 b.txt가 WD에 위치해있기 때문에 빨간색으로 표시된다.
  • a.txt 는 commit 명령어를 통해 하나의 버전으로 기록됨
$ git status

On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        b.txt

nothing added to commit but untracked files present (use "git add" to track)

image-20210705153111460



References

태그:

카테고리:

업데이트:

댓글남기기