Git
- 버전 관리 - 한 파일로 모든 버전으로 쓰고 싶어서 (버전관리는 대체 프로그램은 많음)
- 협업 - 같은 파일을 동시에 작업하는 경우가 있음, 각각의 변경 사항을 한 파일에서 적용할 수 있음
1. git status
- 현재 브랜치는
main
이고 (기존 master에서 main으로 브랜치명을 변경한 상태)
- 현재 수정된 파일(TodoList.jsx)이 있는데 커밋을 안했으니 커밋하라는 내용
2. git add
깃이 관리하게 해당 파일(파일 내부의 수정된 내용)을 포함시켜
2-1. git add 파일명
이 경우 해당 파일이 있는 모든 경로를 들어가서, 명령어를 작성해야 함
- 이제 깃이 관리를 해주는 파일로 변경
stage
상태가 됨
- unstage 하고 싶다면
git rm --cached 파일명
2-2. git add .
이 경우 변경된 파일 모두
깃 관리에 포함시키라는 의미임
3. git commit
현재 상태를 기억하기 위함(나중에 이 상태로 잘 찾아서 돌아올 수 있게)
- git commit만 입력하면 터미널에 이런 것들이 생겨남
커밋메세지 작성하기
vim 빠져나오기
- 커밋메세지 작성하고
esc
누름
:
치고, wq
치면 나올 수 있음
간단한 방법 git commit -m "커밋메세지"
메세지를 보면
main
브랜치, 4fe231c
커밋 번호, 커밋메세지
- 1개의 파일에 변화가 있었고, 1줄이 추가 됐다.
git log
로 확인 가능
- 커밋번호의 풀 정보
- 작성자
- 작성날짜
- 커밋메세지
만약에 커밋하는 데 오류가 난다?
사용자 메일이 등록되지 않았을 수도 있음
git config --global user.eamil "메일주소"
- 혹시, 나는 열심히 커밋을 하는데 잔디가 안생긴다?
- 깃허브에 있는 메일정보와 깃에 등록된 메일이 다를 가능성 매우 높음 !
- 이런식으로 메일 주소 바꿔주면 다시 잔디가 심어진다
- 이걸 몰라서 왜 내 잔디밭은 듬성듬성 탈모일까.....했는데, 암튼 며칠전에 해결함ㅋㅋㅋㅋㅋㅋ
그리고 사용자 이름도 등록해야 함
git config --global user.name "이름"
그 다음에 커밋하면 오류가 안날듯 !
커밋할 변경 사항을 추가하지 않았습니다 ("git add" 및/또는 "git commit -a"를 사용하십시오)
git commit -am "커밋메세지"
- 이렇게 하면,
git add .
+ git commit -m "커밋메세지"
한번에 가능
git diff : 바뀐 부분을 확인할 수 있음
git hub
git remote add origin(원격이름) url(repository url)
- 깃 리모트 하겠다 = origin이라는 곳에 url을 등록하겠다
git push origin(원격이름) main(브랜치명)
git pull origin main
git reset: git 커밋 되돌리기, 아예 흔적도 없이 지워버림
git reset HEAD~1
HEAD
현재 커밋된 위치
~1
1개
- 커밋만 되돌렸을 뿐 내용이 바뀌지 않음
git revert: 되돌리고 새로운 커밋, 지운 흔적은 그대로 있음
git revert HEAD
- vim으로 들어가서
커밋메세지 적기
- esc
:
+ wq
git branch
git checkout dev
기본적인 것만 정리해봤다.
이밖에 충돌이 발생했을 때 git merge, git rebase도 있음 !