일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코딩테스트
- 알고리즘
- TypeScript
- ios
- react-query
- frontend
- NextJs
- git
- UIKit
- 코드트리챌린지
- SWIFT
- Apple Developer Academy
- 프로젝트
- Front-end
- 자바스크립트
- Xcode
- 프로그래머스
- react
- 회고
- 코드트리
- iOSDeveloper
- tshaped
- 코딩테스트실력진단
- velog
- error
- JavaScript
- AppleDeveloperAcademy
- globalcommunity
- swiftUI
- 프론트엔드
Archives
- Today
- Total
Moon Work
Git 기초 명령어 모음 본문
Git 시작하기
git init
Staging area에 파일 추가하기
git add [파일 또는 폴더]
// 현재 디렉토리의 모든 내용을 staging area에 추가할 때
git add .
// 작업 디렉토리 내의 모든 변경 내용을 staging area에 추가할 때
git add -a
Commit하기
//staging area에 있는 모든 내용을 묶어서 하나의 commit을 생성한다.
git commit -m "message"
git 상태 확인하기
git status
branch 만들기
//branch 만들기
git branch [branchName]
//branch 만들고 branch로 이동하기
git checkout -b [branchName]
branch로 이동하기
git checkout [branchName]
branch 상대참조로 이동하기
commit의 해시값을 기억하는 것이 쉽지 않기 때문에 상대참조를 통해 이동할 수 있다.
- ^ 로 이동하기
- 한번에 한 commit 위로 이동한다.
- HEAD~4
- 한번에 여러 commit 위로 이동할 수 있다.
//main branch 부모로 이동하기
git checkout main^
//main의 4번 위에 commit으로 이동하기
git checkout Main~4
branch 옮기기
branch를 강제로 특정 commit으로 재지정 할 수 있다.
//예를 들어 bugFix라는 branch에서 아래와 같이 입력하면 main branch가 있는 commit으로 bugFix branch가 이동한다.
git branch -f main
merge
- git merge를 통해 branch를 병합할 수 있다.
- 병합하기 원하는 방식에 따라 fast-forward, non-fast-forward 방식으로 나뉜다.
fast-forward
병합의 대상이 되는 branch가 병합의 주체가 되는 branch보다 앞에 있는 경우 주체가 되는 branch가 대상이 되는 branch의 commit으로 이동하는 방식이다.
//on main branch
//아래 코드를 실행할 경우 branchName으로 main branch가 이동하면서 merge 된다.
git merge [branchName]
non-fast-forward
- 앞에 fast-forward 방식와 다르게 병합을 원하는 branch의 복사버전을 만들어서 새로운 commit을 만들어서 합치는 방식이다.
git merge [branchName] --no-ff
merge 충돌이 발생하는 경우
- 기준이되는 branch와 병합하려는 branch의 commit 횟수가 같은 경우
- 기준이 되는 branch의 내용을 병합하려는 branch에서 변경한 경우
위에 두가지 경우에서는 merge를 하는 기준이 없게 되므로 아래와 같이 기준을 어떻게 해서 merge 할 것인지 결정하게 된다.
해결 방법
1번 에러의 경우는 변경한 내용을 찾아서 같게 만들어주어야 merge가 가능하다.
2번의 경우 아래 두가지 방법을 사용할 수 있다.
- git merge —squash [branchName]
- branchName의 브랜치들을 모두 합쳐서 하나의 commit으로 만든다음 staged에 둔다.
- commit을 하게 되면 기준 branch 앞에 branchName의 branch들이 있게 된다.
- git merge —no-ff [branchName]
- —squash와 다르게 새로운 commit을 추가하면서 merge한다.
'이해를 위한 기록들' 카테고리의 다른 글
Skeleton UI 적용기 (0) | 2023.01.11 |
---|---|
드디어 정규 표현식 (0) | 2022.12.22 |
jest 기초 (0) | 2022.12.12 |
Typescript와 OOP SOLID 원칙 (0) | 2022.11.29 |
홈페이지가 보여지는 원리 (0) | 2022.11.08 |