일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 캡슐화
- @builder
- 기본생성자
- 부트캠프
- HTML
- 코드업
- SQL
- DTO
- @NoArgsConstructor
- html tag
- 프로그래머스
- lv1
- CRUD
- github
- 깃허브
- @AllArgsConstructor
- 부스트코스
- HashSet
- 파이썬
- 자바
- 상속
- entity
- git
- 알고리즘
- 브랜치
- 에러
- Python
- Codeup
- java
- stringbuffer
- Today
- Total
잉?
[Git] Git이란? Git 사용법? Git과 Github의 차이? 본문
Git(깃) 이란?
- CLI(명령어 기반 인터페이스)
- 버전 관리를 위한 도구
- 로컬 저장소를 사용한다. ( 작업을 공유하기 어려움)
Github(깃허브)란?
- 개발자들의 SNS이기도 하다.
- 클라우드 서버를 통해 로컬 저장소의 코드를 업로드할 수 있다.
- 원격 저장소 호스팅 서비스.
- 즉, 서버 컴퓨터의 전체 또는 일정 공간을 이용할 수 있도록 임대해 주는 서비스
왜 Git(깃)을 배워야 할까?
만약 깃을 사용하지 않는다면?
- 변경 내역 확인이 어렵다.
- 작업을 되돌리기 어렵다. (버전 관리)
- 협력하기 어렵다.
버전이란?
유의미한 변화가 결과물로 나온 것.(삭제, 변경, 추가 등)
필요하다면 작업을 되돌릴 수 있다.
여러 명의 코드를 쉽게 나누고 합칠 수 있다.
깃을 관리하는 세 개의 공간
작업 디렉터리(workingtree)
- 버전 관리의 대상이 위치하는 공간(.git이 있는 디렉터리)
- 실제 작업하고 있는 대상이 위치한 공간(폴더)
스테이지(index)
- 가상공간
- 다음 버전이 될 후보가 올라가는 공간
- 작업 디렉터리에서 저장소로 완전히 올리기 전에 후보로 올려두는 공간
저장소
- 최종 가상공간
- 버전이 만들어지고 관리되는 공간
- 저장소에는 두 가지 저장소가 있다.
로컬 저장소 | 내 컴퓨터 속에서만 저장되고 관리 |
원격 저장소 | 서버측, 인터넷 속에서 저장되고 관리 |
↓깃 최초 설정 시 사용자 이름과 이메일을 입력해줘야 한다.
$ git config --global user.name "이름" | 이름은 가급적 영어로 작성 |
$ git config --global user.email 이메일 | 이메일 작성 |
$ git config -l | 현재 설정되어 있는 정보 확인 |
본격적으로 git을 사용해보자.깃에 올리려는 폴더를 우클릭한 후 git bash를 켜준다.
1. 로컬 저장소 만들기
$ git init
2. 작업 디렉터리(폴더) 상태 확인하기
$ git status
3. 파일 올리기. 모든 변경사항을 스테이지에 올리기
$ git add .
$ git add <스테이지에 추가할 대상 a.txt> // 추가할 대상을 지정해서 올리기
$ git rm --cached 파일이름 // 스테이지에 올린 파일을 내릴 때
4. 커밋 메시지와 함께 커밋하기 (수정한 파일에 대한 간략한 메시지를 함께 작성 후 올린다.)
$ git commit -m "커밋 메시지"
$ git commit --amend -m "수정한 커밋 메시지" // 커밋 메시지를 수정한 커밋 메시지로 덮어쓰기
5. 원격 저장소와 연결 (내가 만든 깃허브 레퍼지토리 주소랑 연결)
$ git remote add origin 주소
6. 원격 레퍼지토리에 올리기
$ git push -u origin master
*추가로 수정된 파일 업로드(해당 폴더 우클릭 git bash에서 실행)
$ git pull
$ git add .
$ git commit -m "메시지"
$ git push
*커밋 목록 조회하기
$ git log
$ git log --oneline // 커밋 목록 한 줄로 조회하기
$ git log -p // 커밋별 변경사항 목록 조회하기
*커밋과 비교하기
$ git diff // 최근 커밋과 작업 디렉터리 비교하기
$ git diff --staged // 최근 커밋과 스테이지 비교하기
$ git diff <커밋1> <커밋2> // 커밋끼리 비교하기, 순서 중요. 즉, 커밋1에 비해 커밋2는 뭐가 달라?
기본 명령어
pwd : 현재 경로 확인하기
<두 가지 경로>
절대 경로 | root 부터 해당 파일까지의 경로(URL) |
어느 곳에서든 접근 가능. 하지만 경로가 바뀐다면 일일히 수정해야 한다. |
상대 경로 | 현재 부터 파일의 경로까지 (../src/file/logo.jpg) |
자기 자신이 기준이기 때문에 자신의 경로가 바뀌는 점에 취약 |
ls : 현재 경로의 파일 및 폴더 조회하기
ls -a : 현재 경로의 숨김 파일 및 폴더(".파일이름"으로 나타남)까지 모두 목록으로 조회하기
ls -al : 현재 경로의 숨김 파일 및 폴더(".파일이름"으로 나타남)까지 모두 리스트의 형태로 조회하기
cd <경로> : <경로>로 이동하기
cd .. : 상위 디렉터리로 이동하기
cd . 현재 디렉터리로 이동하기
cd ~ : 홈 디렉터리로 이동하기(창을 열었을 때 기본으로 나와있는 디렉터리)
touch <abc.txt> : 빈 텍스트 파일을 만들어라
cat <파일명> : 파일 내용 확인
vi <파일명> : <파일명> 편집하기
- 편집하기(입력모드)로 진입하기 위해서는 a 혹은 i 누르고 엔터키 누르면 밑에 --INSERT-- 모드로 전환
- 입력이 끝났다면 esc (맨 밑에 --INSERT-- 사라짐)
- vi 창을 닫고 싶다면 :w(저장) 입력 후 :q(닫기) 누른 후 enter
- 한 번에 ::wq(저장 후 닫기) 가능
rm <파일명> : 파일 삭제
mkdir <디렉터리 이름> : 비어있는 디렉터리(폴더) 생성
rmdir <디렉터리 이름> : 비어있는 디렉터리 삭제
rm -rf <디렉터리 이름> : 비어있지 않은 디렉터리를 강제로 삭제
'깃(GIT)' 카테고리의 다른 글
[Git] 브랜치(Branch)란? 브랜치 만들기 + 브랜치 이름 짓기 (0) | 2023.05.17 |
---|---|
[GitHub] 토큰 생성, 토큰 에러 해결(윈도우) (0) | 2022.11.02 |