패스트캠퍼스 데브캠프 2일차 [Github]

Su Min·2024년 5월 21일
post-thumbnail

Github

컴퓨터 파일의 변경사항을 추적하고 여러 사용자들간에 해당파일 작업을 조율하기 위한 대표적인 관리 시스템(VCS) "효율적인 관리"

Content tracker Hash file system toolkit

여기서 Hash는 단방향 암호화를 뜻한다. 즉, 암호화는 가능한데 복호화가 안된다.
GIT은 모든걸 해쉬로 만들어 커밋한다.
파일 내의 띄어쓰기 하나를 수정해도 해쉬값이 변경되기때문에 수정사항을 status할 시, 변경 사항이 확인 가능하다

GIT 버전 관리 시작 단계

git init //변경사항 추적, 버전관리를 시작하겠다!
git config --global core.autocrlf true //GIT의 구성으로 전역화해서 사용할 내용 등록
git config --global user.name '깃ID'
git config --global user.email '깃email' //사용자정보, 커밋(버전생성)을 위한 정보등록
git config --global --list //구성확인
git status //관리해줄 파일 확인
git add . //버전 저장
git status //버전 저장 확인
git commit -m '메세지' //수정사항, 등록정보같은 메세지 입력
git log //메세지 입력 확인
깃허브에서 레파지토리 생성
git remote add origin //원격 깃허브로 'origin'이라는 이름으로 주소 저장
git push origin master //깃허브 origin 주소, master 브랜치에 업로드하겠다는 선언

현재 파일 상태를 확인하기 위해 git status 입력 하면 수정된 파일 midified : index.html 뜬다.
즉, index.html 파일이 수정되었으며 VScode에서 파일 옆에 'm'표시는 수정되었음을 의미한다.

브랜치 생성, 이동하기

1 git branch -a //원격저장소에 있는 브랜치의 내용 확인
2 git branch sumin // 'sumin' 이라는 브랜치 생성
3 git checkout sumin // 'sumin' 브랜치로 이동

브랜치는 독립적이기 때문에 해당 브랜치로 이동 후 폴더,파일 생성하여 수정 작업해도 master브랜치 혹은 다른 브랜치에는 영향을 주지 않는다.

브랜치 복제, 삭제, 복구하기

git clone //복제하기
git reset --hard HEAD~1 //1버전 뒤로 이동
git reset --hard ORIG_HEAD //되돌리기, 복구하기
git reset --hard HEAD~2 //2버전 뒤로 이동

파일에 "1" 입력 후 git 저장, 이후 "2"로 수정 후 git 저장, 동일하게 "3"으로 수정 후 git을 저장해주고 2버전 뒤로 즉, 처음 버전으로 이동하고 다시 복구해보았다.

PS C:\Users\eaaha\OneDrive\바탕 화면\git prectice> git reset --hard HEAD~2
HEAD is now at b44b275 1
PS C:\Users\eaaha\OneDrive\바탕 화면\git prectice> git log
commit b44b275e90c98e13db32d41e7003de842f0d2db4 (HEAD -> master)
Author: ssumanlife <123456@naver.com>
Date:   Tue May 21 13:47:08 2024 +0900

    1
PS C:\Users\eaaha\OneDrive\바탕 화면\git prectice> git reset --hard ORIG_HEAD
HEAD is now at a101746 3
PS C:\Users\eaaha\OneDrive\바탕 화면\git prectice> git log
commit a1017462ca097b1df5e9a7807ee0046eb41189e9 (HEAD -> master)
Author: ssumanlife <123456@naver.com>
Date:   Tue May 21 13:49:17 2024 +0900

    3

commit c5040ea16a89b0a2b0548a8c5c5c49b890cf01a7
Author: ssumanlife <123456@naver.com>
Date:   Tue May 21 13:48:30 2024 +0900

    2

commit b44b275e90c98e13db32d41e7003de842f0d2db4
Author: ssumanlife <123456@naver.com>
Date:   Tue May 21 13:47:08 2024 +0900

    1

해당 log는 2버전 뒤로 이동 후 다시 복구해 본 log이다.

버전을 이동하고 복구하고 반복하다보면 개발한 로직이 사라질 위험이 있으니 reset은 최대한 사용 자재하기...

GIT 언어 정리

  • commit - 수정단위, 수정의 단계, 수정내역 기록
  • add . - 저장소에 저장
  • branch - 상태(내용, 커밋정보)를 저장하는 공간, 독립적, 원하는 만큼 생성 가능
  • master - git branch의 기본 저장소
  • merge - 브랜치와 브랜치간 내용을 병합
  • checkout - 독립된 작업 공간인 브랜치를 자유롭게 이동
  • clone - 리모트저장소에서 git 저장소를 다운 및 복사
  • pull origin - 리모트 저장소에서 변경된 내용을 저장 즉, 당겨온다!
  • push origin - 내 저장소의 변경내용 리모트로 전송
  • diff - 이전 버전과 현재 버전의 바뀐내용 비교
    // git은 변경된 부분 만을 추적하는 것이 아닌 삭제 혹은 추가된 라인을 추적한다. line by line 즉, 해당 라인을 출력
    (-) 삭제된 내용
    (+) 추가된 내용
  • head - 현재 상태(브랜치)의 위치 값을 가진 텍스트 파일, 파일에 기록된 경로가 현재 작업중인 브랜치
profile
성장하는 과정에서 성취감을 통해 희열을 느낍니다⚡️

0개의 댓글