1. vs code설치 & html 파일 생성
2. 깃 설치
3. html 파일을 vs code로 열어야 깃과 연결이 수월하다.
4. new terminal 오픈.
5. git bash를 디폴트로 설정 = bash shell 설정. 리눅스용으로 사용하려 하는 것 (power shell은 윈도우용)
6. git init // 소프트웨어가 숨김폴더로 git폴더 생성해줌 (초기화)
<깃의 현재상태 조회>
git.status / git.status --short / git status -s // 출력이 긴건지 짧은건지에 대한 차이만 있음
work tree - index (stage에 올린상태) - git 저장소 (commit)
git refflog : 모든 참조목록을 확인할 수 있음
<최초 환경설정>
✅ git config
✅ git config --global user.email "이메일주소"
✅ git config --global user.name "이름"
✅ git config --list // 지정한 메일주소, 이름 등 현재 설정된 상태리스트를 볼 수 있음. 이때 터미널 창이 짧아서 리스트가 한번에 나오면 q 없이도 바로 리스트창을 빠져나온다.
<깃 올리는 순서>
html 수정 및 저장 // M상태 저장 안하면 git add . 해도 반영이 되질 않아서 꼭 저장 후 add
✅ git add . //add 다음에 띄어쓰기 꼭 하고 점찍기. ( .은 해당폴더, *은 전체 내용.)
(* 수정내용 전부를 깃 status에 올리겠다 = stage상태로 파일을 올린다. = 인덱싱한다. 모두 같은 말.)
✅ git status / git status --short / git status -s// M상태
✅ git commit (--hard, --soft, --mixed) ▶ 메모저장 후 창 닫으면 commit // 세부 설정은 구글링하다 찾은것! 나중에 보완하기.
✅ git commit -a // staging 후 커밋. 커밋 메모창으로 이동한다
✅ git commit -am "메세지입력" // staging 과 커밋을 동시에 완료
✅ git commit -m "메세지입력" // staging 단계에서 진행. 이렇게 하면 깃에 대한 메모까지 한번에 입력할 수 있음
✅ git log // 디테일까지 모두 출력
✅ git log --oneline // 간략하게 출력
(*git graph 인스톨하면 브랜치나 현재 위치를 그래픽으로 확인 가능)
<checkout>
✅ git checkout 아이디 // 해당 아이디 커밋으로 이동.
✅ git checkout - // 이전에 있던 해시태그로 움직인다 (되돌아가기)
+) 기본적으로 브랜치를 오가는 명령어라 그런지, 같은 브랜치 내에서 앞뒤로 움직이면 자체적으로 브랜치가 하나 생성된다. 돌아갈땐 브랜치를 만들고 돌아가는게 좋다...그렇지않으면 표면상으론 마스터처럼 보인다.
+) 다른 브랜치에 가서 실행시 Switched to branch 'master'라고 뜨는걸 보면 다른 브랜치에서 master의 최신 commit으로 돌아올수도 있는 듯.
✅ git checkout 브랜치이름 // 기재한 브랜치로 이동하기
✅ git checkout two three // 브랜치 two에서 three로 이동하기
✅ git swtich -c three // 새로운 브랜치 three를 만들면서 체크아웃 & 이동함
git checkout HEAD ??
* HEAD는 꼬리표. 현재 내가 있는 해시값(커밋)을 가리킨다
<branch>
: 마스터가 중심이고 거기서 브랜치가 뻗어나가는 구조
✅ git branch 지금 생성되어있는 브랜치를 볼 수 있음
✅ git branch 브랜치이름 // 브랜치 새로 만들기. 쌍따옴표 없이 그냥 이름 기재하면 됨.
✅ git switch -c test // 브랜치 test를 새로 만들면서 이동하기
👉 git checkout -b test 와 동일
✅ git branch -D 브랜치이름 // 브랜치삭제. 단 해당 브랜치가 아닌 곳에서 원하는 브랜치를 지워야 한다
✅ git branch -M 브랜치이름 // 현재 브랜치 이름이 변경된다
<깃 병합>
✅ git merge 끌어올브랜치이름
👉 main 브랜치에서 test브랜치 자료를 끌어올 경우 git merge test
: 이때 test에서 끌려오는 자료가 더 최신 수정된 자료여야 한다. 만약 main이 최근에 수정한 자료일 경우 충돌이 나질 않는다.
: 구버전이 끌려오는 경우는 새 버전에 구 버전을 병합할 이유가 없으므로 .(revert 로 돌아가거나 수정하면 됨)
<기존 커밋 수정하기>
✅ git commit --amend
: 이미 커밋이 끝났는데 해당 커밋에 수정내용을 추가하고 싶을때, add후 commit시 --amend 명령어를 붙인다.
: 커밋시 커밋내용을 변경하면 최종 커밋명으로 들어간다.
: 여러명이 함께 사용하는 브랜치는 히스토리가 복잡해질 수 있어서 조심해야 한다고 한다!
<작업환경 저장하기>
<저장 기록 되돌리기 reset, revert, restore>
✅ git reset 해시값 // 지정된 해시값 다음부터 커밋한것들 & 해시태그까지 히스토리 모두 삭제. 그러나 내가 작성중이던 html화면은 살아있다.
✅ reset -- hard 해시값 //
✅ reset --mixed 해시값 // default.
✅ reset --soft 해시값 //
✅ git revert // 코드만 바뀌고 브랜치 안에 버전 상태값은 남아있다.
👉뒤로 돌아가면서 기존내용과 부딪치므로 병합처리 후 커밋=내가 작성중이던 html화면도 변경됨.
👉 로그는 기존에 커밋한 내용 위에 revert로 쌓인다.
hint: After resolving the conflicts, mark them with
hint: "git add/rm <pathspec>", then run
hint: "git revert --continue".
hint: You can instead skip this commit with "git revert --skip".
hint: To abort and get back to the state before "git revert",
hint: run "git revert --abort".
* revert 주의사항
`revert`를 사용하여 이전 커밋을 되돌리는 경우, 해당 커밋의 변경 내용을 취소하는 새로운 커밋을 생성. 이 때, 원래 있던 예전 코드 내용은 수정되지 않고, 이전 커밋을 취소한 변경 내용이 새로운 커밋에 반영된다.
수정된 새로운 커밋의 해당 부분 코드는 수정된 내용으로 저장되며, 예전 코드는 그대로 유지된다. 이렇게 함으로써, 이전 커밋을 되돌리는 동시에 수정된 내용을 새로운 커밋으로 기록할 수 있다. 또한 프로젝트시 원격저장소로 옮겼을때 reset에 비해 충돌나는 범위가 줄어든다.
✅ git restore basic.html // unstaged, untracked 상태의 변경파일을 복구
✅ git restore --staged basic.html = git reset HEAD basic.html // 스테이지에 잘못 올렸을때 취소하기! add한거 지우기= stage된걸 돌린다
👉 git rm cached 와 유사. staged 된걸 working tree로 돌리기.
✅ git restore --source 해시코드 basic.html // 특정 버전의 변경시점 상태로 복구한다
+) 만약 restore했을 시점에 현재 파일이 없는 상태였다면, 파일이 알아서 삭제되니 주의할 것. 삭제된 파일도 수정해서 저장하면 modify로 다시 status 생성됨!
✅ git diff --staged basic // html 파일 내에서 뭐가 변경됐는지 확인가능
✅ git show 현재 버전의 html내용을 j,k로 위아래로 오가며 조회 가능
<git 원격저장소 관련>
✅ git remote add orign 깃주소
✅ git push -u origin main
▶컴퓨터에서 깃허브에 접근할 수 있도록 자격증명관리자에 깃허브 주소, 깃허브 이름, 비밀번호로 저장
▶ github 홈페이지 - settings - developer settings - tokens(classic) - New personal access token (classic)
▶ 토큰을 생성해야 접근 가능
버전관리
1. 78 (소수단위는 마이너버전, 살짝 바뀐 내용)
LTS : 장기적으로 지원해주는 버전
'😵 ~23.11.10' 카테고리의 다른 글
0607 | 변수선언, 형변환, 개체와 객체, 아스키코드와 유니코드, 바이너리 플러그인, 문자값 읽어내기 (1) | 2023.06.07 |
---|---|
0605 | 자바실행원리, 패키지, 자바 값 종류와 표현법 (1) | 2023.06.05 |
0602 | 원격 깃서버에 로컬 깃 push & pull (0) | 2023.06.02 |
0602 | cmd 창에서 class파일 컴파일하기 (2) | 2023.06.02 |
0530 | 국비학원 시작! (0) | 2023.05.31 |