240715 내일배움캠프 백엔드 Java 6기 TIL : Git 사용법 기초

박대현·2024년 7월 15일
0

0. Git 사용전 세팅

VS코드 - New Terminal - 오른쪽상단 플러스누르고 Git Bash

1. Git & Github 사용목적

  • Git : 하나의 폴더내에서 코드수정사항단계를 기록하기 위해, 에러발생시 과거코드로 쉽게 되돌아가기 위해
  • Github : 백업과 공유, 협업이 가능한 온라인 코드 저장소

2. 필수 리눅스 명령어

  • pwd : 현재 작업폴더를 보여달라. git init전 반드시 실행해서 현재폴더 확인해야!! 잘못하면 데스크탑 전체 파일,폴더가 다 기록됨
  • ls : 현재 목록들을 보여달라
  • ls -a : ls에 더하여 숨겨진 파일도 볼수있음(시스템파일). git init후 제대로 .git이 만들어졌는가 확인에 유용
  • cd 폴더명 : ls 명령어에서 확인된 폴더로 이동가능, 하위 폴더로만 갈수있음, /로 여러번이동 가능(cd 폴더명1/폴더명2)
  • cd .. : 상위 한단계위 폴더로 이동
  • mkdir 폴더명 : 폴더생성
  • touch 파일명 : 현재경로에서 파일생성

3. Git 필수 명령어

A. 시작

  • git init : 코드관리 시작. 딱 한번만 입력하면 끝. "initialized empty Git repository in~~~” 이라고 나오면 성공.
  • git config : 사용자설정. 안해놓으면 commit 오류가 난다.
    • git config --global user.name "사용자명"
    • git config --global user.email "사용자메일" 둘다 해야함

B. 저장 (저장 영역개념 : Working Directoy, Staging Area, Repository)

  • Working Directoy에서 파일 수정하면 Unmodified -> Modified 상태로 변경
  • git add : git add 파일명 => 저장하기 전 저장할 파일 '지정(To Staging Area, Modified -> Staged)'
    • git add .: 현재경로 모든(.) 변경사항을 지정
    • git rm --cached 파일명 : UnStaging(Staged -> Modified)
  • git commit : git commit -m "메세지 작성" => 실제 저장(To Repository, Staged -> Unmodified).
    넘기기전 Working directoy에 저장(Ctrl + S)하고 넘길것
  • git status : Working Directory에서 저장되었지만 add되지 않았을때(commit되지 않았을때가 아님!!), 빨간색으로 표시됨

C. 기록

  • git log : 저장내역 확인. commit 메세지를 자세하게 써놔야 변경과정 인지에 도움. 입력후 q를 눌러 빠져나올것

  • git diff : Working Directory와 Staging Area 사이의 다른점

  • git diff HEAD : Working Directory 및 Staging Area와 Repository 사이의 다른점

  • git diff --staged : Staging Area와 Repository 사이의 다른점

    • 읽는법 : -n, m +x, y == 바뀌기전 n번째줄부터 m줄의 자료가, 바뀐후 x번째 줄부터 y줄만큼의 자료로 바뀌었다.
  • git reset --hard 커밋해시: 해당 커밋으로 리셋한다.

D. 백업 및 협업

  • git push : 처음에는 깃허브에서 복붙. 이후에는 git push origin 브랜치명 하면됨
  • git clone : github에서 아무것도 없는상태에서 코드전체를 복사해오기
    git clone 깃허브주소 . <- 점(.)까지해야 폴더까지 안데려오고 깔끔하게 필요한 해당파일만 데려옴
  • git pull : 다른사람이 변경한 코드를 내 코드에 가져오기. 또는 git push를 위한 절차. 본인이 push전, 다른사람이 push해놓은 코드를 날려버릴 위험이 있기에 먼저 pull로 당겨온 뒤 저장해서 push를 해야함

0개의 댓글