반응형

git merge - 브랜치 합치기

git merge [<commit>…​]

add-color에서 작업한 내용을 main에 합칩니다.
add-color와 main 브랜치의 차이는 green과 blue 파일이 추가된 것인데, Git은 동일한 파일을 수정하지 않으면 자동으로 머지합니다. 같은 파일을 수정했더라도 서로 다른 줄을 수정하면 자동 머지 되는데 참 똑똑합니다.

작업

  1. main 브랜치로 이동
  2. add-color 브랜치의 수정사항을 main 브랜치로 머지
  3. 전체 커밋 메시지 확인

실습


 


git switch main # gsw main
git merge add-color # gm add-color
git log

결과

Merge made by the 'recursive' strategy.
 blue  | 1 +
 green | 1 +
 2 files changed, 2 insertions(+)
 create mode 100644 blue
 create mode 100644 green
  • add-color에서 작업한 내용(파일 추가)이 main 브랜치로 머지됨
  • main 브랜치에 green, blue 파일이 추가된 것을 확인
  • add-color에서 작성한 커밋 로그가 main 브랜치에도 추가된 것 확인
  • 첫번째 머지 축하합니다. 

 

 

출처 : https://subicura.com/git/guide/branch.html#git-merge-%E1%84%87%E1%85%B3%E1%84%85%E1%85%A2%E1%86%AB%E1%84%8E%E1%85%B5-%E1%84%92%E1%85%A1%E1%86%B8%E1%84%8E%E1%85%B5%E1%84%80%E1%85%B5

반응형

'git' 카테고리의 다른 글

git switch -c - 브랜치 생성  (1) 2023.11.13
git revert - 이전 상태로 (이력 유지)  (0) 2023.11.13
git reset - 이전 상태로 (이력 제거)  (0) 2023.11.13
git log - 이력 확인  (0) 2023.11.13
git commit - 현재 상태 저장  (0) 2023.11.13
반응형

git switch -c - 브랜치 생성

git switch (-c|-C) <new-branch>

main 브랜치에서 add-color 브랜치를 만듭니다.

브랜치 생성

새 브랜치를 만들 때, 현재 브랜치의 상태를 기준으로 만들기 때문에 현재 브랜치가 무엇인지 꼭 확인해야 합니다.

작업

  1. 앞에서 실습한 4개의 커밋이 있는 저장소에서 -c 옵션으로 add-color 브랜치를 생성하면서 이동

실습


 
# git checkout -b add-color # 예전 Git 버전 명령어
git switch -c add-color # gsw -c add-color

`-c` 옵션

git switch의 -c 옵션은 브랜치 생성과 브랜치 이동을 한번에 수행합니다. 다음 명령어와 동일합니다.

git branch add-color
git swtich add-color

결과

Switched to a new branch 'add-color'
  • 기존 main 브랜치의 작업 공간과 동일한 add-color 브랜치를 생성하면서 이동
  • 쉘 프롬프트가 ➜ sample git:(main)에서 ➜ sample git:(add-color)로 변경

 

 

 

 

 

출처 :https://subicura.com/git/guide/branch.html#git-switch-c-%E1%84%87%E1%85%B3%E1%84%85%E1%85%A2%E1%86%AB%E1%84%8E%E1%85%B5-%E1%84%89%E1%85%A2%E1%86%BC%E1%84%89%E1%85%A5%E1%86%BC

반응형

'git' 카테고리의 다른 글

git merge - 브랜치 합치기  (0) 2023.11.13
git revert - 이전 상태로 (이력 유지)  (0) 2023.11.13
git reset - 이전 상태로 (이력 제거)  (0) 2023.11.13
git log - 이력 확인  (0) 2023.11.13
git commit - 현재 상태 저장  (0) 2023.11.13
반응형

git revert - 이전 상태로 (이력 유지)

git revert <commit>…​

특정 커밋을 취소하는 새로운 커밋을 만듭니다. 여기선 3번 커밋을 취소하는 새로운 커밋을 생성하여 마치 2번 커밋 상태로 돌아간 것 같지만 기존 이력을 유지하는 모습을 확인합니다.

일반적으로 특정 버전을 배포했는데 문제가 생기면 문제가 생긴 커밋을 revert합니다. (빠른 조치/롤백) 다시 원복한 상태로 작업을 이어서 하고 해당 문제를 수정하면 다시 커밋하는 방식을 사용합니다.

작업

  1. git reset 명령어로 3번 커밋이 지워졌다면 이전 실습을 통해 다시 커밋 추가
  2. git log로 3번 커밋 ID 조회
  3. 3번 커밋 취소

실습


 


git log
git revert {v3 커밋 아이디} # 커밋 아이디 예) 306b947 (앞에 7자 정도 복사)
git log

vi 창이 열리고 메시지를 입력하는 화면이 나오면 당황하지 말고 ecs키를 누르고 :x를 차례로 입력한 다음 엔터를 칩니다.

결과

Removing green
[main 5a9a926] Revert "v3 commit"
 3 files changed, 1 insertion(+), 1 deletion(-)
 delete mode 100644 green
 create mode 100644 red
  • 지웠던 red가 되살아나고 orange 내용이 수정되고 green 파일이 사라진 것을 확인
  • git log를 통해 새로운 커밋이 추가된 것을 확인

현재 Git 저장소 이력

 

 

 

출처  : https://subicura.com/git/guide/basic.html#git-revert-%E1%84%8B%E1%85%B5%E1%84%8C%E1%85%A5%E1%86%AB-%E1%84%89%E1%85%A1%E1%86%BC%E1%84%90%E1%85%A2%E1%84%85%E1%85%A9-%E1%84%8B%E1%85%B5%E1%84%85%E1%85%A7%E1%86%A8-%E1%84%8B%E1%85%B2%E1%84%8C%E1%85%B5

반응형

'git' 카테고리의 다른 글

git merge - 브랜치 합치기  (0) 2023.11.13
git switch -c - 브랜치 생성  (1) 2023.11.13
git reset - 이전 상태로 (이력 제거)  (0) 2023.11.13
git log - 이력 확인  (0) 2023.11.13
git commit - 현재 상태 저장  (0) 2023.11.13
반응형

git reset - 이전 상태로 (이력 제거)

git reset [<commit>] [--soft | --mixed [-N] | --hard | --merge | --keep]

특정 커밋까지 이력을 초기화합니다. 바로 전, 또는 n번 전까지 작업했던 내용을 취소할 수 있습니다. 열심히 작업했는데, 전혀 엉뚱한 걸 했거나 작업한 내용이 필요 없어질 때 사용합니다. ⚠️ 이력이 지워지기 때문에 주의해야 합니다.

git reset은 다양한 옵션이 존재하는데 여기선 --hard 옵션을 사용합니다.

작업

  1. git log로 2번 커밋 ID 조회
  2. 2번 커밋까지 이력 초기화

실습


 
git log
git reset {v2 커밋 아이디} --hard # 커밋 아이디 예) 27a00b7 (앞에 7자 정도 복사)

결과

HEAD is now at 27a00b7 v2 commit
  • 2번 커밋까지 이력 초기화 -> 결론적으로 3번 이력 삭제 확인
  • 지웠던 red가 되살아나고 orange 내용이 수정되고 green 파일이 사라진 것을 확인

현재 Git 저장소 이력

 

 

 

출처 : https://subicura.com/git/guide/basic.html#git-reset-%E1%84%8B%E1%85%B5%E1%84%8C%E1%85%A5%E1%86%AB-%E1%84%89%E1%85%A1%E1%86%BC%E1%84%90%E1%85%A2%E1%84%85%E1%85%A9-%E1%84%8B%E1%85%B5%E1%84%85%E1%85%A7%E1%86%A8-%E1%84%8C%E1%85%A6%E1%84%80%E1%85%A5

반응형

'git' 카테고리의 다른 글

git switch -c - 브랜치 생성  (1) 2023.11.13
git revert - 이전 상태로 (이력 유지)  (0) 2023.11.13
git log - 이력 확인  (0) 2023.11.13
git commit - 현재 상태 저장  (0) 2023.11.13
git add - 현재 상태 추적  (0) 2023.11.13
반응형

git log - 이력 확인

git log [<options>] [<revision range>] [[--] <path>…​]

git log는 다양한 옵션을 조합하여 원하는 형태의 로그를 출력할 수 있는 강력한 기능입니다. 이번 실습에선, 추가 옵션 없이 git log만 사용합니다.

작업

  1. 전체 로그 확인

실습

 
git log

결과

commit 306b9474de0af37367ff90e5c1367588413f81bf (HEAD -> main)
Author: subicura <subicura@subicura.com>
Date:   Sat Jul 17 00:55:36 2021 +0900

    v3 commit

commit 27a00b73cf7ab2e70e8dd5e5235bf7f94e9ddd84
Author: subicura <subicura@subicura.com>
Date:   Sat Jul 17 00:53:50 2021 +0900

    v2 commit

commit 1ac5146ad27c5277996d54c08ec4ccded0edd4e3
Author: subicura <subicura@subicura.com>
Date:   Sat Jul 17 00:50:30 2021 +0900

    v1 commit
  • 전체 커밋 로그 확인

 

 

출처 https://subicura.com/git/guide/basic.html#git-log-%E1%84%8B%E1%85%B5%E1%84%85%E1%85%A7%E1%86%A8-%E1%84%92%E1%85%AA%E1%86%A8%E1%84%8B%E1%85%B5%E1%86%AB

반응형

'git' 카테고리의 다른 글

git revert - 이전 상태로 (이력 유지)  (0) 2023.11.13
git reset - 이전 상태로 (이력 제거)  (0) 2023.11.13
git commit - 현재 상태 저장  (0) 2023.11.13
git add - 현재 상태 추적  (0) 2023.11.13
git status - 현재 상태 확인  (0) 2023.11.13
반응형

git commit - 현재 상태 저장

git commit [-m <msg>]

인덱스에 추가된 변경 사항을 이력에 추가합니다.

작업

  1. -m 옵션을 이용하여 첫 번째 이력에 대한 메시지 작성

실습

 
git commit -m "v1 commit" # gc -m "v1 commit"

결과

[main (root-commit) 25354ae] v1 commit
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 orange
 create mode 100644 red

첫 번째 의미 있는 커밋을 생성했습니다! 

반응형

'git' 카테고리의 다른 글

git reset - 이전 상태로 (이력 제거)  (0) 2023.11.13
git log - 이력 확인  (0) 2023.11.13
git add - 현재 상태 추적  (0) 2023.11.13
git status - 현재 상태 확인  (0) 2023.11.13
git init  (0) 2023.11.13
반응형

git add - 현재 상태 추적

git add [-A] [<pathspec>…​]

파일의 변경사항을 인덱스index에 추가합니다. Git은 커밋하기 전, 인덱스에 먼저 커밋할 파일을 추가합니다.

작업

  1. -A 옵션을 이용하여 전체 파일(orange, red)을 인덱스에 추가
  2. 상태 확인

실습

 


git add -A # gaa
git status # gst

결과

On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
	new file:   orange
	new file:   red
  • untracked files에 있던 orange와 red의 상태가 변경된 것을 확인

 

 

 

 

출처 : https://subicura.com/git/guide/basic.html#git-add-%E1%84%92%E1%85%A7%E1%86%AB%E1%84%8C%E1%85%A2-%E1%84%89%E1%85%A1%E1%86%BC%E1%84%90%E1%85%A2-%E1%84%8E%E1%85%AE%E1%84%8C%E1%85%A5%E1%86%A8

 

 

 

 

 

반응형

'git' 카테고리의 다른 글

git log - 이력 확인  (0) 2023.11.13
git commit - 현재 상태 저장  (0) 2023.11.13
git status - 현재 상태 확인  (0) 2023.11.13
git init  (0) 2023.11.13
git 명령어 모음 1  (0) 2023.11.13
반응형

git status - 현재 상태 확인

git status

현재 작업 중인 파일의 상태를 확인합니다.

작업

  1. 상태 확인

실습

 
git status # gst

# gst 는 뭔가요?

명령어 뒤에 주석으로 써있는 부분은 alias로 oh-my-zsh을 설치하면 사용할 수 있는 별칭입니다.
git status대신 gst만 입력해도 동일하게 동작합니다. alias를 적극적으로 써보세요!

결과

On branch main

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	orange
	red

nothing added to commit but untracked files present (use "git add" to track)
  • 현재 브랜치(main)와 커밋 상태, 작업 중인 파일의 상태 확인
  • untracked files(추적하지 않는 파일)이 존재하는 것을 확인

 

 

출처 : https://subicura.com/git/guide/basic.html#git-init-%E1%84%8C%E1%85%A5%E1%84%8C%E1%85%A1%E1%86%BC%E1%84%89%E1%85%A9-%E1%84%86%E1%85%A1%E1%86%AB%E1%84%83%E1%85%B3%E1%86%AF%E1%84%80%E1%85%B5

반응형

'git' 카테고리의 다른 글

git commit - 현재 상태 저장  (0) 2023.11.13
git add - 현재 상태 추적  (0) 2023.11.13
git init  (0) 2023.11.13
git 명령어 모음 1  (0) 2023.11.13
git 과 github  (0) 2023.11.13
반응형

git init - 저장소 만들기

git init

로컬 Git 저장소를 설정합니다.

작업

  1. sample 디렉토리 생성
  2. red, orange 파일 추가
  3. sample 디렉토리를 로컬 저장소로 설정

실습






 
mkdir sample
cd sample
touch red orange
echo "빨강" >> red
echo "주황" >> orange
git init

mkdir, cd, touch, echo 명령어

터미널 명령어를 소개합니다. Git도 배우고 터미널 명령어도 배우고 1석2조!

  • mkdir: 디렉토리 생성
  • cd: 디렉토리로 이동
  • touch: 빈 파일 생성
  • echo "[글자]" >> [파일]: 파일에 글자 추가

결과

Initialized empty Git repository in /Users/cs.kim/Workspace/github.com/subicura/sample/.git/
  • sample 디렉토리에 Git 저장소 생성
  • 디렉토리 하위에 .git 디렉토리 생성 - Git과 관련된 정보 저장
  • 쉘 프롬프트가 ➜ sample에서 ➜ sample git:(main) ✗로 변경

main branch

기본 브랜치 설정이 master인 경우 main 대신 master로 설정됩니다. 최근 master 대신 main을 쓰는 추세고 master로 설정되었다면 git branch -M main 명령어로 브랜치를 main으로 변경해주세요.

 

 

 

출처 :  https://subicura.com/git/guide/basic.html#git-init-%E1%84%8C%E1%85%A5%E1%84%8C%E1%85%A1%E1%86%BC%E1%84%89%E1%85%A9-%E1%84%86%E1%85%A1%E1%86%AB%E1%84%83%E1%85%B3%E1%86%AF%E1%84%80%E1%85%B5

반응형

'git' 카테고리의 다른 글

git commit - 현재 상태 저장  (0) 2023.11.13
git add - 현재 상태 추적  (0) 2023.11.13
git status - 현재 상태 확인  (0) 2023.11.13
git 명령어 모음 1  (0) 2023.11.13
git 과 github  (0) 2023.11.13
반응형

1-1. GIT 명령어

분류명령어내용 설명

<새로운 저장소 생성> $ git init .git 하위 디렉토리 생성
(폴더를 만든 후, 그 안에서 명령 실행 => 새로운 git저장소 생성)
<저장소 복제/다운로드(clone)> $ git clone <https:.. URL> 기존 소스 코드 다운로드/복제
  $ git clone /로컬/저장소/경로 로컬 저장소 복제
  $ git clone 사용자명@호스트:/원격/저장소/경로 원격 서버 저장소 복제
<추가 및 확정(commit)> $ git add <파일명>
$ git add *
커밋에 단일 파일의 변경 사항을 포함
(인덱스에 추가된 상태)
  $ git add -A 커밋에 파일의 변경 사항을 한번에 모두 포함
  $ git commit -m "커밋 메시지" 커밋 생성
(실제 변경사항 확정)
  $ git status 파일 상태 확인
<가지(branch)치기 작업> $ git branch 브랜치 목록
  $ git branch <브랜치이름> 새 브랜치 생성 (local로 만듦)
  $ git checkout -b <브랜치이름> 브랜치 생성 & 이동
  $ git checkout master master branch로 되돌아 옴
  $ git branch -d <브랜치이름> 브랜치 삭제
  $ git push origin <브랜치이름> 만든 브랜치를 원격 서버에 전송
  $ git push -u < remote > <브랜치이름> 새 브랜치를 원격 저장소로 push
  $ git pull < remote > <브랜치이름> 원격에 저장된 git 프로젝트의 현재 상태를 다운받고 + 현재 위치한 브랜치로 병합
<변경 사항 발행(push)> $ git push origin master 변경사항 원격 서버에 업로드
  $ git push < remote > <브랜치이름> 커밋을 원격 서버에 업로드
  $ git push -u < remote > <브랜치이름> 커밋을 원격 서버에 업로드
  $ git remote add origin <등록된 원격 서버 주소> 클라우드 주소 등록 및 발행
(git에게 새로운 원격 서버 주소 알림)
  $ git remote remove <등록된 클라우드 주소> 클라우드 주소 삭제
<갱신 및 병합(merge)> $ git pull 원격 저장소의 변경 내용이 현재 디렉토리에 가져와지고(fetch) 병합(merge)됨
  $ git merge <다른 브랜치이름> 현재 브랜치에 다른 브랜치의 수정사항 병합
  $ git add <파일명> 각 파일을 병합할 수 있음
  $ git diff <브랜치이름><다른 브랜치이름> 변경 내용 merge 전에 바뀐 내용을 비교할 수 있음
<태그tag 작업> $ git log 현재 위치한 브랜치 커밋 내용 확인 및 식별자 부여됨
<로컬 변경사항 return 작업> $ git checkout -- <파일명> 로컬의 변경 사항을 변경 전으로 되돌림
  $ git fetch origin 원격에 저장된 git프로젝트의 현 상태를 다운로드
     

 

 

 

출처 : https://velog.io/@delilah/GitHub-Git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EB%AA%A8%EC%9D%8C

반응형

'git' 카테고리의 다른 글

git commit - 현재 상태 저장  (0) 2023.11.13
git add - 현재 상태 추적  (0) 2023.11.13
git status - 현재 상태 확인  (0) 2023.11.13
git init  (0) 2023.11.13
git 과 github  (0) 2023.11.13

+ Recent posts