Dev/Git 7

Cherry-pick과 Rebase, Fast-forward - 병합커밋 없이 git history 깔끔하게 하는 방법

Cherry-pick과 Rebase의 공통점 cherry-pick과 rebase는 목적은 다르지만 동작하는 방법이 거의 비슷하다.  두 작업 모두 병렬적으로 작업된 목록을 하나로 합친다는 공통점이 있다. cherr-pick, rebase를 이해하기 위해서는 우선 git이 소스를 합치는 방식인 3 way merge에 대한 이해가 필요하다.  Cherry Pick 이란?cherry-pick은, 병렬적으로 작업된 내용에서 특정 commit을 선택하여 새로운 버전을 만들어 내는 방법이다.  이때 새로운 버전을 만들기 위해 3 way merge를 수행한다. Rebase 란?rebase라는 단어 뜻 그대로, base(각 브랜치들의 공통 조상 commit)를 옮긴다는 뜻이다.  다음 예제를 보자.git checkou..

Dev/Git 2024.11.24

3 way merge 란?

3 Way Merge 의 동작 방식  프로젝트를 진행하는 과정에서 git을 사용하여 버전 관리를 할 때, 일반적으로 기능별로 feature branch를 나누고 작업을 하게 된다.  기능구현의 리뷰가 완료 되면  feature branch를 main branch (혹은 develop)에 merge하게 될 것이다. 이 때 git이 제공하는 병합 방법중에 3 way merge가 있다. 3 way merge는 다음과 같은 세가지 요소를 가진다. 병합대상 브랜치  (A)Base (A,B 브랜치가 공통으로 가지고 있는 마지막 commit)병합 브랜치 (B)만약 내가  어떠한 base 브랜치로 부터 feature/A-branch와 feature/B-branch 생성했고,   A-branch를  B-branch에 m..

Dev/Git 2024.11.24

local 에 있는 폴더를 git 에 한번에 올리기

개인 공부를 시작하면서 본격적으로 git 을 사용해보고 있다. 오늘은 공부한 샘플 코드를 local 에서 원격저장소로 업데이트시 발생한 문제애 대해 공유하고자 한다. 1. error: remote origin already exists. 에러 발생시 대응 방법 local 에 연결되어있던 원격 repo 가 있었는데, 다른 repo 로 바꾸고 연결하려고 동일하게 remote add 를 사용했더니 위 오류가 발생했다. 이전 실습 때 동일한 폴더에서 한차례 원격 레포지토리에 연결했던게 문제여서 기존 연결을 끊는 명령어를 입력후 다시 실행하니 정상적으로 연결할 수 있었다. git remote remove origin // 기존 연결 제거 git remote add origin https://github.com/g..

Dev/Git 2023.12.06

git online repository 연결하기

기본적인 local git 세팅 방법에 이어서 online respository 와 연결하는 방법에 대해 기록하려고 한다. 이전에 윈도우에서 git bash 명령어를 이용해서 구글링을 통해 파일을 올렸던 기억은 있었는데, 회사에서는 svn 을 사용하다보니 정말 오랜만에 다시 git 에 로그인 했다. 1. local 저장소에서 git init 명령어를 사용해서 git 을 시작한다. $ git init $ git branch -M main // 기준 브랜치를 main 으로 설정 2. git init 후 온라인에서 git 아이디 생성하여 가입 관련링크 > https://github.com GitHub: Let’s build from here GitHub is where over 100 million devel..

Dev/Git 2023.11.30

git 설치하는 방법 및 간단한 명령어

- 설치 환경 : macOS 13.4   1.  git 설치하기  1) https://brew.sh/  HomebrewThe Missing Package Manager for macOS (or Linux).brew.sh 2) 상단 링크 접속 후 아래와 같은 명령어를 복사하여 terminal 에 복사 한다   -  복사 대상 명령어 :/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"  이때 터미널에 복사해서 사용했더니 명령어 실행 권한이 없다고 떠서 ( permission denied )  chmod u+x 또는 su ./bin/bash ~ 로 입력했더니 정상적으로 실행되는 것을 확인할..

Dev/Git 2023.11.29