[Git]Start git!(setting/시간여행/충돌해결)
-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 를 이용하면 된다.