Etc/git

[Git]Start git!(setting/시간여행/충돌해결)

och 2023. 9. 15. 16:08

-Git을 왜 배워야하는가 -> 시간과 차원을 넘나들어서 version의 오류를 관리한다던가 Test 또는 Test를 업데이트하기 위해서.

 

Setting.

git 자동 설치되어 있으나 git version 으로 버전 확인 후 오래된 버전이면 brew install git으로 새로 깔기.

sourceTree 설치

vscode 설치 : terminal 열고 닫는 법 ctrl + ` 

언어 설정 cmd + shift + p language

 

-CLI vs GUI

명령어는 CLI. 확인할 때는 GUI를 이용할 것이다.

 

-git 설정 

git config --global user.name "coh"

git config --global user.email "och5405@naver.com"

 

폴더를 하나 만들고

git init 으로 .git을 만듦. 

이거 삭제하면 시간여행 차원여행 못하게 된다.

 

-Git에게 맡기지 않을 것들. (gitignore)

.class .DSstore 민감한 보안 파일들 -> .gitignore

 

https://git-scm.com/docs/gitignore

 

Git - gitignore Documentation

The optional configuration variable core.excludesFile indicates a path to a file containing patterns of file names to exclude, similar to $GIT_DIR/info/exclude. Patterns in the exclude file are used in addition to those in $GIT_DIR/info/exclude.

git-scm.com

 

-git 을 통한 시간여행 

commit = version = 시간여행 

 

타임캡슐에 넣기 

git add fileName

git add .

 

타임캡슐 묻기 = commit

git commit 

git commit -m "commit message"

 

TIP : 새로 추가된 파일이 없을경우

git commit -am "commit message"

 

git log # commit log 확인하기. 

 

git의 변화사항을 확인하기

git status
좀더 자세히 보려면 

git diff # 뭐가 삭제되고 추가되었는지 확인 가능. 

 

3-2 시간여행을 하는 방법

reset # 현재 버전의 기록을 지우고 이전 버전으로 되돌린다.

revert # 현재 버전의 기록을 남겨두고 원하는 버전으로 되돌린다. 

+ Revert는 지금 변화는 그대로 두고 오류가 난 부분만 되돌릴 수 있다. 

 

-> 현업은 revert 사용. reset 사용시 현재 버전을 기반으로 작성한 다른 사람 코드가 망함. 

 

Reset 사용. 

git log 로 hash 확인 후

hash의 앞 몇 글자를 복사 -> git reset --hard hash붙여넣기 하면 된다. 

 

Revert 사용 

git revert hash

 

+ revert 는 충돌이 일어날 때가 있다 어떤 파일을 과거 시점으로 되돌리려 하는데 그 시점보다 최근에 그 파일을 만진 적이 있을 때! 

근데 revert를 다시 revert 하면 더러우니 reset을 쓸 수도 있음..

 

그리고 revert를 하면 commit 이 자동으로 되는데 다른 변화까지 넣고 싶을 때는 

git revert --no-commit hash 후 수정하고 commit 하면 된다. 

근데 이 상태에서 commit 되지 않은 것들을 다 지우고 다시 원상태로 돌아가고 싶으면 

git reset --hard 를 이용하면 된다.