GIT & GitHub (1)

ByeolGyu·2024년 7월 23일

git

목록 보기
3/5

✔ GIT & GitHub

GIT

  • 로컬에서 관리되는 버전 관리 시스템 (VCS : Version Control System)
  • 소스코드 수정에 따른 버전을 관리해주는 시스템

GitHub

  • 클라우드 방식으로 관리되는 버전 관리 시스템(VCS)
  • 자체 구축이 아닌 빌려쓰는 클라우드 개념
  • 오픈소스는 일정 부분 무료로 저장 가능
  • Git은 로컬에서 버전 관리 시스템을 운영하는 방식
  • Github는 저장소를 깃허브에서 제공해주는 클라우드 서버를 이용

버전 관리 시스템(VCS)

: 소프트웨어의 시간 및 버전을 관리하고 통제하는 시스템

  • 프로젝트의 변경 내역, 프로젝트 버전 등을 쉽게 관리해 주는 프로그램
  • 일정 단위의 작업을 취소하고 이전 버전으로 되돌려야 할 때
    버전 관리 시스템으로 버전을 저장, 되돌리기, 각각 작업의 진행을 기록해서 체계적으로 관리할 수 있음

✔ 리눅스 명령어

  • Ctrl + : 글자 키우기 Ctrl - : 글자 축소

  • pwd : 현재 작업 디렉토리 출력

  • cd .. : 상위 폴더로 이동

  • . : 현재 폴더

  • .. : 상위 폴더

  • mkdir git-test : git-test 폴더 생성

  • ls : 현재 폴더의 내용을 출력

  • cd git-test : git-test 폴더로 이동

  • touch a.txt : a.txt 빈어있는 파일 생성
  • echo : 출력
    - echo "오늘의 날씨는 흐립니다" : “” 내용을 화면에 출력
    - echo "오늘의 날씨는 흐립니다" > a.txt : 출력내용 “” a.txt 에 출력


  • 리다이렉트 : 출력 방향을 바꿈
    - > : 덮어쓰기
    - >> : 이어쓰기

  • cat a.txt : a.txt 파일의 내용을 출력

  • clear : 화면 지우기

  • ls -la : 폴더의 내용을 출력
    -l : 자세하게
    -a : 숨어있는 폴더, 파일을 출력


  • mkdir .abc : .abc 디렉토리를 숨은 폴더로 생성

  • touch .c.txt: .c.txt를 숨은 파일로 생성

✔ Repository

: Commit 된 데이터가 위치하는 영역

Repository 생성

public & private

  • public 공개
  • private 비공개

    private으로 설정 시 레포지토리 소유자와 초대받은 협력자만 접근가능 혼자 사용할 때는 무료이지만, 다른 사람과 협업하려면 비용이 발생

Add README file

  • Initialize this repository with : 초기화
  • 체크 시 레포지토리가 초기화(Initialize) 되고 README 파일이 포함된 새로운 레포지토리 및 .git 폴더가 자동으로 생성됨

초기화(Initialize) 한 경우

  • README 파일이 포함된 새로운 레포지토리 및 .git 폴더가 자동으로 생성

초기화(Initialize) 안 한 경우

  • Add a README file 체크박스를 선택하지 않으면, 초기화되지 않은 비어 있는 레포지토리가 생성
  • .git 폴더도 생성되지 않음
  • 사용자가 직접 레포지토리를 초기화하고 파일을 추가해야 함

GIT & GitHub 작동

  • 작업 디렉토리 영역 : 현재 작업하는 폴더, 파일
  • 스테이지(Stage) 영역 : Commit 할 데이터를 위치 시키는 영역
  • 레파지토리 ( Repository ) 영역 : Commit 된 데이터가 위치하는 영역

✔ GIT 명령어

1. 깃을 초기화

  • git init : 초기화, 해당 디렉토리를 git으로 관리할 것을 선언
    - .git이라는 숨어있는 파일이 생성됨
    - .git에는 커밋된 데이터가 레파지토리에 저장됨

2. 글로벌 설정

  • git 설치시 한번만 셋팅
  • 사용자명, 사용자 메일 주소 설정
$ git config --global user.name "자신의 영문이름"
$ git config --global user.email "자신의 메일주소" 
  • 글로벌 설정 확인
$ git config --global user.name
$ git config --global user.email

3. 스테이징 (Staging) 영역에 모든 파일을 추가

git add

Working Directory 에서 Stage Area로 이동

  • $ git add . : 현재 디렉토리에 있는 모든 파일과 폴더를 stage 영역에 올림
  • $ git add 파일명 : 특정 파일만 statge 영역에 올림
  • $ git status . : 스테이지 영역에 등록된 파일을 보이도록 함
    -초록색 : 스테이지 영역에 등록된 파일
    -빨간색 : 스테이지 영역에 등록되지 않는 파일
  • 변경사항이 확인 및 스테이지 영역에 올리기

로컬 레파지 토리에 백업파일을 생성

git commit

로컬 레파지토리에 백업 파일을 생성
stage영역에 등록된 파일만 커밋

  • git commit -m "커밋명" : 로컬 레파지토리에 백업 파일을 생성

  • git log : 레파지토리에 커밋된 정보 확인
    - 특정 커밋으로 돌아갈 때 노란색으로 표시 된 해시코드를 넣어서 돌아갈 수 있음
    - HEAD 내가 위치해 있는 커밋된 정보

  • git checkout 해시코드 : 특정 커밋으로 이동
    -git log를 통해 해시코드 확인 후

    - git checkout 해시코드를 통해 특정 커밋 시점으로 이동

5. GitHub의 원격 레파지토리 주소를 등록

: 로컬 레파지토리의 정보를 원격 레파지토리에 전송하기 위해서 origin 변수에 GitHub에 원격 레파지토리 주소를 등록

  • $ git remote add origin "원격레파지토리주소"
  • $ git remote show origin : origin 변수에 담겨있는 내용 출력
  • $ git remote remove origin : origin 변수에 등록된 값 삭제
    `

6. 원격 레파지토리에 전송

  • 로컬 레파지토리의 내용을 원격 레파지토리로 전송
  • 로컬의 main 브랜치의 커밋된 내용을 원격 레파지토리로 전송
  • $ git push origin main

7. 원격 레파지토리 로컬로 가져오기

-$ git clone "원격 레파지토리 주소" : 원격의 github의 공개된 레파지토리의 모든 내용을 자신의 시스템으로 복사

  • 원격에서 초기화가 되었을때는 git init 하면 충돌남 ->git clone하기
  • 원격 레피지토리의 내용을 zip으로 받을때는 .git이라는 커밋된 정보 없이 다운됨
    - 일반 폴더에 저장됨
    • git init으로 .git 폴더를 만들어줘야 함
    • git commit 으로 첫 커밋 생성하고 git remote add origin "원격주소등록" 후 git push
  • git clone "원격레파지토리주소" 을 하면 .git의 폴더가 그대로 내려오고, origin 변수 주소의 값에 원격레파지토리 주소가 그대로 들어있음
    - git log를 통해 커밋된 정보 확인 가능
profile
ByeolGyu

0개의 댓글