일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리액트
- 추상화
- 타입스크립트
- 패스트캠퍼스
- 투두앱만들기
- REACT
- OOP
- 자바스트립트
- 자바스크립트
- 캡슐화
- 상속
- 부트캠프
- js
- 웹개발
- typeScript
- CSS
- Props
- frontend
- 클래스
- Zustand
- 논리연산자
- Hooks
- github
- JavaScript
- 프론트엔드
- Fetch
- 객체지향프로그래밍
- 노마드코더
- 불변성
- webdevelopment
- Today
- Total
connecting dots
Git | 명령 정리 본문
Git
컴퓨터 파일의 변경사항을 추적하고 여러 사용자들 간에 해당 파일 작업을 조율하기 위한 대표적인 버전 관리 시스템(VCS)
개행문자(NewLine) 설정
$git config —global core.autocrlf input
사용자 정보: 커밋(버전 생성)을 위한 정보 등록
$git config —global [user.name](<http://user.name>) ‘YOUR_NAME’
$git config —global [user.email](<http://user.email>) ‘YOUR_EMAIL’
구성 확인: Q키 눌러서 종료
$git config —global —list
현재 프로젝트에서 변경사항 추적(버전관리)를 시작
$ git init
변경사항을 추적할 특정 파일(index.html)을 지정
$ git add index.html
모든 파일의 변경사항을 추적하도록 지정
$git add .
메시지(-m)과 함께 버전을 생성
$git commit -m ‘프로젝트 생성’
$ git add .
$ git commit -m ‘main.js 추가’ // main.js 파일 추가 후 새로운 버전
$ git add .
$ git commit -m ‘index.html 수정’ //index.html 수정 후 새로운 버전
origin이란 별칭으로 원격 저장소를 연결
$git remote add origin <https://github.c> // 내 컴퓨터와 원격저장소가 연결됨(통로 생성)
origin이란 별칭의 원격 저장소로 버전 내역 전송
로컬 저장소의 변경 사항을 원격 저장소의 main 브랜치로 푸시(push)하는 데 사용됩니다.
이를 통해 로컬 저장소의 커밋들이 원격 저장소로 전송되어 동기화됩니다.
$ git push origin main
git pull
원격 저장소의 main 브랜치의 내용을 당겨옴
git pull origin main
git log
Git 저장소의 커밋 히스토리를 확인하는 데 사용
저장소에 어떤 변경 사항이 있었는지, 누가 언제 커밋했는지, 커밋 메시지는 무엇인지 등을 알 수 있음
$ git log
브랜치 만드는 방법
git branch ‘이름’
브랜치의 목록을 띄움 (원격저장소에 있는 브랜치 내용 확인)
git branch -a
브랜치 이동하기
git branch checkout purple // purple 브랜치로 이동
git branch checkout main //main 브랜치로 이동
저장소 만든 뒤 거기로 푸쉬하기
git push origin main
브랜치 삭제하기
git branch -d purple
생성과 동시에 해당 브랜치로 이동하기
git checkout -b purple
clone
Git에서 clone 명령어는 원격 저장소의 모든 데이터를 로컬 컴퓨터로 복사하는 데 사용됩니다. 이는 원격 저장소의 전체 내용을 그대로 가져와서 로컬에 새로운 디렉토리를 생성하고 그 안에 저장하는 작업입니다. clone 명령어를 사용하면 원격 저장소와 동일한 파일 및 폴더 구조를 가진 복사본이 로컬에 생기게 됩니다.
git clone https://github.com/yourusername/your-repo.git
클론이 완료되면, 저장소의 이름과 동일한 디렉토리가 현재 디렉토리에 생성되고, 그 안에 원격 저장소의 모든 파일과 폴더가 복사됩니다.
디펙토리 구조
your-repo/
├── .git/
├── README.md
├── src/
└── ... (기타 파일 및 폴더)
디펙토리로 이동
클론된 저장소 디렉토리로 이동하여 작업을 시작할 수 있습니다.
cd your-repo
reset
Git에서 reset 명령어는 다양한 용도로 사용될 수 있지만, 주로 커밋을 되돌리거나 로컬 작업 디렉토리의 상태를 이전 커밋 상태로 되돌리는 데 사용됩니다. 이를 통해 특정 커밋을 기준으로 작업 내역을 재설정할 수 있습니다. reset 명령어는 주로 세 가지 모드(--soft, --mixed, --hard)로 사용됩니다.
git reset [mode] <commit>
예시
git reset --hard HEAD~1
// 2개의 내역 만큼 뒤로 돌리는 것
[mode]: --soft, --mixed, --hard 중 하나.
<commit>: 되돌리고자 하는 기준 커밋의 해시나 참조.
각 모드 설명
1. –soft:
• 지정한 커밋으로 되돌리지만, 변경된 파일은 스테이징 영역에 남겨둡니다.
• 즉, 커밋 내역만 되돌리고 작업 내용은 그대로 유지됩니다.
• 예: git reset --soft HEAD~1
• 마지막 커밋을 되돌리고, 해당 변경 사항은 스테이징 영역에 남습니다.
2. –mixed (기본값):
• 지정한 커밋으로 되돌리고, 변경된 파일은 스테이징 영역에서 제거합니다.
• 즉, 커밋 내역을 되돌리고, 변경된 파일은 워킹 디렉토리에 남겨둡니다.
• 예: git reset --mixed HEAD~1
• 마지막 커밋을 되돌리고, 변경 사항은 워킹 디렉토리에 남습니다.
3. –hard:
• 지정한 커밋으로 되돌리고, 변경된 파일은 워킹 디렉토리에서도 제거합니다.
• 즉, 커밋 내역과 워킹 디렉토리의 변경 사항 모두 되돌립니다.
• 예: git reset --hard HEAD~1
• 마지막 커밋을 되돌리고, 모든 변경 사항을 제거합니다. 되돌린 후에는 작업 내역을 복구할 수 없습니다.
--hard 잘못한 경우, 원상복귀 하는 명령
다음 명령 입력하기 전에 한번은 되돌릴 수 있음
git reset --hard ORIG_HEAD
// origin(기존의 head)
git branch -r 명령어
원격 저장소(remote repository)에 있는 브랜치들을 나열하는 데 사용됩니다.
이 명령어를 통해 로컬 저장소에 있는 브랜치가 아닌, 원격 저장소에 있는 브랜치 목록을 확인할 수 있습니다.
git branch -r
원격 브랜치 목록 확인
$ git branch -r
origin/HEAD -> origin/main
origin/develop
origin/feature-branch
origin/main
// 로컬저장소에 있는 브랜치 이름과 원격저장소에 있는 브랜치 이름이
// 같아서 충돌나는 것을 방지하기 위해 origin 이라는 단어를 붙여줌
• origin/HEAD -> origin/main: 원격 저장소의 기본 브랜치가 main 브랜치임을 나타냅니다.
• origin/develop: 원격 저장소에 있는 develop 브랜치.
• origin/feature-branch: 원격 저장소에 있는 feature-branch 브랜치.
• origin/main: 원격 저장소에 있는 main 브랜치.
git checkout -t 명령어
원격 브랜치에서 추적 브랜치를 만들고 해당 브랜치로 전환할 때 사용됩니다. 추적 브랜치는 로컬 브랜치가 원격 브랜치를 추적하여, 푸시(pull) 및 풀(push) 동작이 간단하게 이루어지도록 합니다.
git checkout -t origin/feature-branch
• 원격 브랜치 origin/feature-branch에서 로컬 브랜치 feature-branch를 생성합니다.
• feature-branch로 전환합니다.
• feature-branch 브랜치는 원격 브랜치 origin/feature-branch를 추적하게 됩니다.
conflict
<<<<<<< HEAD // 현재 변경 사항
<h1>ABC</h1>
=======
<h1>XYZ</h1> // 수신 변경 사항
>>>>>>> feature
충돌 부분을 수동으로 편집하여 최종 내용을 결정합니다.
모두 수락 --> 합쳐져서 들어감
두 개 합쳐서 새로운 버전 만들 수 있음 (ABCX | 버전 생성, 푸쉬까지 해주기)
'Online Class > DevCamp' 카테고리의 다른 글
JS 데이터 | 문자 (String. ~), 숫자 (Math. ~), 배열(Array. ~) (0) | 2024.06.13 |
---|---|
JS 클래스 | 생성자 함수(prototype), this, ES6 classes, 상속(확장) (0) | 2024.06.12 |
Git | 마크다운(Markdown) (0) | 2024.06.12 |
JS 함수 | 함수 형태, return, arguments, 화살표 함수, 즉시실행(IIFE), 호이스팅, 타이머 함수, 콜백(Callback) (0) | 2024.06.12 |
JS | DOM API, Method Chaining 강의 정리 (1) | 2024.06.12 |