git reset --hard <해시코드> : 돌아가고 싶은 해시코드 상태로 돌아간다.
git log --oneline : 해시코드를 포함한 깃 로그 조
VSCODE 에서 백틱 (ctrl + ~) 누르면 터미널 노출/숨기기
git .ignore : git에서 관리하지 않도록 하겠다.
ㄴ txt, html 확장자 파일
ㄴ docs 디렉토리
무시하겠다!
cp <파일> 파일 복사
cp -r <디렉토리명> <복사하여 생성할 디렉토리명> 디렉토리 레벨 복사
패키지 추가 & 삭제하는 법
npmjs.com -> 패키지 다운받기 -> add-gitignore
-설치하고 싶다 : npm i add-gitignore
-실행만 1회성으로 실행 : npx add-gitignore node,windows,osx,visualstudiocode
ㄴ ex) osx 를 지정했다면, mac os 에 관련된 파일 (DS 파일 등등) 관리하지 않도록 자동으로 축해준다.
패키지 삭제
npm un add-gitignore
워킹 디렉토리 -> 스테이지 -> 레포지토리 -> 리모트
Branch 개념
레포지토리(헤드)
헤드 : 현재 어떤 위치인지를 가르키고 있다.
git branch docs
ㄴ docs 라는 브랜치를 만든다.
git branch
ㄴ 브랜치 확인
git switch docs : branch를 docs로 바꾼다.
git checkout <브랜치명> : 브랜치를 변경한다.
git log --oneline --graph
그래프호하여 보기
git branch -D <브랜치명> : 브랜치 삭제하기
ㄴ 브랜치를 삭제하면 그 아래에 있던 커밋들 모두 삭제 됨
헷갈리는 브랜치 명령어 총 정리
git log --oneine --graph --all :가지치기 형식으로 확인하기
git branch -m <바꿀대상> <바꿀이름> : 브랜치 이름 변경하기
git merge <브랜치이름>
[이해를 위한 시나리오 - fast forward]
main 에서만 커밋한 자료들이 수두룩,
test 브랜치만들면서 이동 , test브랜치에서 commit 진행
현재 head , test브랜치인데
(merge를 하면 main의 작업들을 test브랜치에 연결해주는 것이다)
이후 main으로 switch 하여 이동
main으로 이동한 상태에서 git merge test 해주면 main과 연결된다.
ㄴ test파일이 main에 연결
* b951811 (HEAD -> main, test) 테스트브랜치-ff
[이해를 위한 시나리오 - fast forward]
main 에서만 커밋한 자료들이 수두룩,
docs브랜치만들면서 이동 , docs브랜치에서 commit 진행
main 브랜치로 가서 docs의 상태 확인
* 455c0d1 (docs) 병합스타일 -3way
* 46fe409 (HEAD -> main) Git의 세가지 형태
* 2a6f766 모든 요소에 기본 박스 사이징 설정
* 81e8b91 DTD선언
* 83708e0 분산형 버전관리 시스템 Git
git merge --no-ff docs -> docs라는 브랜치와 fast forward 방식으로 병합 안할거야
= 3way merge 하게 되었을 거임
main에서 새로운것 커밋
git checkout <해시> : 과거 그 시점으로 잠깐 갔다올거야! (아예 돌아가는건 아냐)
HEAD~3 : head 이전 3번째로 이동
git reset head~n : 다시 이전으로 리셋시킨다. 이전 작업으로 돌아가버림
gir reset --hard : 파일의 내용들 다 취소하고 이 시점으로 다시 돌아갈거야
[시나리오]
똑같은 file을 수정하고 병합하니 충돌이 발생한다.
되돌리기의 -> README.md 를 수정했다.
그리고 한단계 전으로 checkout HEAD~1 해서 새로운 readme 브랜치 생성
readme 브랜치에서 -> README.md 오버라이딩 >> 여기서 확인하면 수정되어있는점 확인됨
이후 main에서 merge 수정하면 충돌 발생
자동으로 병합한 메시지를 입력해준다.
제역할을 다 했기 때문에 삭제해주고
git branch -d markup : 한번이라도 커밋한 브랜치 삭제
git branch -D markup : 커밋 안한 브랜치 삭제
git remote add origin <주소> : 레파지토리 연결하
ㄴ origin 은 별칭이다. ex) 슬비썜
git remote origin -v : 깃허브 주소를 알려줘~
git remodte update : 업데이트
git push --set-upstream origin main
ㄴ git push -u origin main
git pull --set-upstream orgin(별칭) main(브랜치이름) : git을 이용해서 원격 브랜치에 있는 내용을 당겨다 pull
>> 약자로는 git pull -u origin main
git clone <깃헙주소> <넣을폴더이름> : clone하여 분신 만들기 (영혼까지 복사)
git clone 이후 커밋 업데이트가 있을 경우
remote 저장소(깃헙)에 들어가보면 기록 확인이 가능하다.
[충돌시나리오]
한쪽 디렉토리에서 html 파일 바꿔서 push
다른 디렉토리에서 html 파일을 pull 하지 않고 바꿔서 push
ㄴ 충돌 일어남!! => 충돌은 모두 vscode 에서 해결한다.
pull = fetch(임시로 가져옴) + merge
vscode 에서 바로 레파지토리 생성하기
git stash : 수정을 진행하고 commit을 진행하지 않고 싶다 ! 할떄 잠시 숨기는 것 (삭제된 것은 아니다.)
working tree가 깨끗한 것처럼 해준다! 다른 브랜치로 스위칭 가능
git stash apply : 마지막에 숨겨놓은 것을 꺼내온다.
git stash list : 숨겨놓은 목록 리스트 볼 수 있다.
ㄴ 이력을 통해 확인한 것 apply하기 git stash apply stash@{2}
pop == apply + drop
git stash pop stash@{n} => 지우면서 가져오기
git stash drop stash@{n} => 지워버리기만 하기
branch를 push 하기
git push -u origin ui : ui 브랜치를 넣는다!
협업 시 코드 리뷰 요청
git reset --soft () : 같은 reset이지만 soft reset은 사라지지 않는다.
ㄴ 커밋하기 이전인 staging 상태로 되돌려놓는다. > status로 확인가능
git reset --mixed () : ( default 값이기 때문에 git reset 해도 된다. )
ㄴ 커밋하기 이전인 working directory로 되돌려놓는다.
git revert (해시값) : 이전 상태를 뺀다. : 충돌일어남
ㄴ 해결 후 다시 git commit
'부트캠프 > 멋쟁이사자처럼 프론트엔드스쿨 9기' 카테고리의 다른 글
프로젝트 진행 전 유의사항 (0) | 2024.04.01 |
---|---|
특강 #4-프로그래밍 공부를 똑똑하게, 협업관리 (1) | 2024.02.26 |
GIT 특강#1 init, commit (0) | 2023.12.28 |
특강 #3-이력서, 포트폴리오 이제 시작해야할 때 (2) | 2023.12.26 |
특강 #2-웹 접근성 (0) | 2023.12.15 |