x bell

구독 해주세요!

x
search--v1

Welcome to my Blog

From hardware to software,

I'm System Engineer

down_to_down
facebook-like--v1

Best POST

Wait! Let's take a look at the most popular posts!

Please take a look at the latest post that I wrote with all my heart.

external-Study-school-smashingstocks-flat-smashing-stocks-5

Activities

These are the activities I've been working on so far.

Education

B.S. @Dankook University, School of Electronics and Electrical Engineering

Awards and Honors

Sungkyunkwan University Engineering Innovation Center. Creative Comprehensive Design Competition (Nov. 2021)

External activities

College Student Code-it Coding Camp 5th (an Outstanding Activist)

Comento Course - Designing Semiconductor Circuits (CHIPs) with Eyes

Taking a lecture

IDEC_ Deep Learning Foundation and Design(Jul. 2022)

IDEC_ Verilog HDL Basic and Deep Learning Neural Network Design(Jul. 2022)

IDEC_ Embedded System Design Based on FPGA(Aug. 2022)

IDEC_ Embedded Memory (SRAM) Foundation(Jan. 2023)

IDEC_ Artificial Intelligence Acceleration Processor(Feb. 2023)

IDEC_ CUDA-based GPU programming foundation(Jul. 2023)

IDEC_ Layout Design for Full Custom IC Design(Jul. 2023)

Udemy_ 객체지향 프로그래밍 및 설계(Java)

Udemy_ Android 12 및 Kotlin 개발 완전 정복

Udemy_ Git & Github 실무 활용 완벽 가이드

Udemy_ The Web Developer 부트캠프 2023

Udemy_ High-Level Synthesis for FPGA, Part 1-Combinational Circuits

인프런_ 설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계

인프런_ 설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복

Tool

Tools & Skills

I can use this Tools & Skills. Also, I'm practicing something.

Language

C C++ Python Java kotlin javascript--v1 assembly matlab

Web & App & MarkUp

Html Css Bootstrap React Node MongoDB android-studio--v2

Hardware

Systemverilog Vivado Vitis arduino Raspberrypi Arm Risc-V

Design

adobe-photoshop--v1 adobe-illustrator--v1 davinci-resolve microsoft-visio-2019

Editer & Documentation

visual-studio-code-2019 external-sublime-text-a-sophisticated-text-editor-for-code-markup-language-logo-color-tal-revivo microsoft-powerpoint-2019 microsoft-excel-2019--v1 microsoft-word-2019

Ai

tensorflow pytorch

etc.

Git external-Linux-logos-and-brands-those-icons-flat-those-icons
filled-like

Interests

I'm interested in and working on the things that come out below!

● System Design

● Logic Semiconductor Design

● Web & App Design

● AI Model Compression & Computer Vision

music

Rhythmic Hobby

Come listen to my little hobby, EDM Composition.

castle

Tag

Tag

 

1. Merging Branches

여러 branch를 하나로 합치는 기능 (보통 Master로 합침)

- 특정 commit이 아닌 branch를 병합

- 현재 head의 branch를 병합 -> 병합하고 싶은 branch로 이동해주어야 함

  ( >git switch master )

 

>git merge <branch-name>

branch-name의 branch를 현재 Head가 가리키는 branch에 병합

 

1) 병합할 branch의 commit이 없을 경우

병합 전
병합 후

 

2) 병합할 branch의 commit이 있을 경우

- 병합된 commit은 두 개의 부모 commit을 갖습니다.

 

병합할 2개의 commit이 겹치는 내용이 없을 경우, 문제없이 병합이 됩니다.

    하지만, 겹치는 내용이 있으면, 병합시 충돌이 발생합니다.

 

병합 전
병합 후

 

2. 병합 중 충돌 해결하기

 

1. 충돌이 발생하면, Git은 충돌이 된 파일을 알려줍니다.

2. 충돌이 발생한 파일을 열어 편집해줍니다.

3. 변경 사항을 commit합니다.

 

* VS Code를 이용하면 여러가지 옵션을 쉽게 사용하여 고칠 수 있습니다.

 

 

Accept Current Change: 현재 변경 사항을 수락하고 충돌을 해결합니다. 충돌이 발생한 현재 라인의 변경 사항을 그대로 유지합니다.

 

Accept Incoming Change: 다른 브랜치(일반적으로 병합 대상 브랜치)의 변경 사항을 수락하고 충돌을 해결합니다. Accept Incoming Change를 선택하면 충돌이 발생한 현재 라인을 선택한 브랜치의 변경 사항으로 대체합니다.

 

Accept Both Changes: 현재 변경 사항과 다른 브랜치의 변경 사항을 모두 수락하고 충돌을 해결합니다. 충돌이 발생한 현재 라인에 대해 두 변경 사항을 모두 유지합니다. 이 경우, Git은 변경 사항을 모두 포함하는 병합 커밋을 만듭니다.

 

Compare Changes: 변경 사항을 비교하고 수동으로 충돌을 해결할 수 있습니다. 변경 사항을 쉽게 비교할 수 있는 비교 도구가 열립니다.

 

'Study > GIT' 카테고리의 다른 글

[Git] 7. Git Stash  (0) 2023.12.04
[Git] 6. Git Diff로 비교하기  (0) 2023.12.03
[Git] 4. Git Branch  (0) 2023.11.27
[Git] 깃크라켄(GitKraken) GUI 환경에서 Git 사용하기  (0) 2023.11.27
[Git] 3. Commit 추가 사항들  (0) 2023.11.27

Tag

 

1. Git Branch?

Git 브랜치(branch)는 Git 버전 관리 시스템에서 코드를 효과적으로 관리하고 개발하는 데 사용되는 기능 중 하나입니다. 브랜치는 코드의 특정 버전을 나타내는 포인터이며, 개발자들은 동시에 여러 가지 작업을 진행하거나 서로 다른 기능을 개발할 수 있도록 도와줍니다.

 

새로운 기능을 추가하거나 버그를 수정하려고 할 때, 기존의 코드를 변경하지 않고 새로운 브랜치에서 작업할 수 있습니다. 이는 여러 작업이 서로 간섭하지 않고 병렬로 진행될 수 있도록 합니다. 작업이 완료되면, 해당 브랜치를 기존의 코드에 통합할 수 있습니다.

 

아래와 같이 각 Commit해시 코드를 가지고 있으며 부모의 해시코드를 가리키고 있습니다.

 

출처

 

 

2. Master Branch

Master Branch는 Git 저장소에서 기본적으로 생성되는 기본 브랜치 중 하나입니다. 이 브랜치는 초기 Git 저장소를 생성할 때 자동으로 만들어지며, 보통 프로젝트의 초기 상태를 나타냅니다. 개발자들은 이 "master" 브랜치에서 작업을 시작하고, 여기에 있는 코드를 기반으로 새로운 기능을 개발하거나 버그를 수정할 수 있습니다.

 

아래 그림에서 보이는 main이 Master Branch를 의미합니다.

또한, 'On Branch main'도 이를 의미합니다.

 

 

"master" 브랜치는 Git 저장소를 초기화할 때 기본적으로 생성되는 기본 브랜치의 이름 중 하나였습니다. 그러나 Git의 사용 방식이 변화하면서 "master" 브랜치의 이름 대신 "main"이나 다른 이름을 사용하는 추세가 있습니다. 이것은 주로 다양한 이유로, 특히 다양한 문화적 및 언어적 이슈와 함께 사용자 커뮤니티에서의 더 나은 포용성을 위해서입니다.

 

>git branch

저장소에 있는 현재 존재하는 브랜치 목록을 보여줌

(*가 있는 곳이 현재 위치하는 Branch)

 

 

# Head -> Master

HEAD -> master는 Git에서 현재 작업 중인 브랜치와 커밋을 나타내는 표기입니다.

 

 

HEAD: Git에서 현재 작업 중인 커밋을 가리키는 포인터입니다. HEAD는 현재 브랜치의 최신 커밋을 가리키거나, 직접적으로 커밋을 가리키는 "detached HEAD" 상태에 있을 수 있습니다.

master: 이는 현재 작업 중인 브랜치의 이름입니다. "master"라는 브랜치에서 작업 중이라는 것을 나타냅니다.

 

* Head는 언제나 master branch에서 가장 최근에 commit한 branch를 가리킴

 

 

3. Branch 생성 및 전환

>git branch <branch-name>

새로운 branch를 만듦 (Note : 만든 branch로 이동하는 것이 아님)

 

=> Head는 master와 새로 만든 branch를 가리킴

 

 

>git switch <branch-name>

branch간에 이동

 

>git switch -c <branch-name>

branch를 생성 후, 생성된 branch로 이동

 

>git checkout <branch-name>
git switch와 동일한 작업을 하지만, 오래된 명령

 

※ 주의 사항

파일을 수정한 후, git switch 명령시 데이터가 삭제될 수 있어서 오류가 발생합니다.

-> commit하거나 삭제하거나 stash(임시 저장)하여 해결

 

 

 

4. Branch 삭제 및 이름 변경

>git branch -d <branch-name>

branch 삭제

 

>git branch -D <branch-name>

병합 상태와 관계없이 강제 삭제

 

>git branch -d <new-branch-name>

branch 이름 변경 ( 이름을 바꾸고자 하는 branch에서 수행)

 

Tag

 

1. 깃크라켄(GitKraken)이란?

깃크라켄(GitKraken)Git시각적으로 관리하고 사용할 수 있게 해주는 Git 클라이언트입니다. Git은 분산 버전 관리 시스템으로, 소스 코드의 효율적인 협업과 관리를 위해 사용됩니다. GitKraken은 사용자가 Git 프로젝트를 더 쉽게 관리할 수 있도록 도와주는 툴이며, 그래픽 사용자 인터페이스(GUI)를 제공하여 Git 명령어를 사용하지 않고도 프로젝트를 관리할 수 있습니다.

 

GUI는 브랜치 및 히스토리 시각화, 충돌 해결, 머지 시각화 등을 제공하여 사용자 경험을 향상시키고 팀 협업을 지원합니다.

 

 

2. 깃크라켄(GitKraken) 다운로드

GitKraken

 

 

 

3. 깃크라켄(GitKraken) 사용법

기존의 repository를 사용하거나, 새로운 repository를 추가하여 줍니다.

 

초기 화면입니다.

 

 

새로운 파일을 추가하거나 파일을 수정하면 우측 위에 목록이 뜹니다.

(Note) 빈 Branch로 선택되어 있어야 함 (파일을 추가하거나 변경하면 생김)

 

 

업데이트하고 싶은 파일의 Stage File을 클릭하면 아래로 내려가게 된다.

 

 

그리고 Comment를 입력 후 Commit changes to..을 누르면 Commit이 된다.

 

 

모두 잘 업데이트가 되었습니다.

 

 

'Study > GIT' 카테고리의 다른 글

[Git] 5. Git Merges (branch 병합하기)  (0) 2023.11.29
[Git] 4. Git Branch  (0) 2023.11.27
[Git] 3. Commit 추가 사항들  (0) 2023.11.27
[Git] 2. Git 기초  (0) 2023.11.27
[Git] 1. Git과 Git 설치  (0) 2023.11.27

Tag

Tag

 

1. Atomic Commits

Atomic Commits은 소프트웨어 개발에서 사용되는 개념으로, 한 번의 커밋에서 하나의 독립적인 변경 사항만을 포함하는 것을 의미합니다. "Atomic"은 원자적인 변경이라는 뜻이며, 이는 커밋이 마치 하나의 원자처럼 분할할 수 없는 단위로 간주되어야 함을 나타냅니다.

 

- 가독성 향상: 각 커밋이 한 가지 변경 사항만을 포함하면 코드 변화를 추적하고 이해하기 쉽습니다. 이는 팀원들이나 나중에 코드를 검토하거나 유지보수할 때 도움이 됩니다.

 

- 롤백 용이성: 하나의 원자적인 변경 사항이 실패하면 해당 변경 사항만 롤백할 수 있습니다. 전체 커밋이 실패하는 경우보다 문제 해결이 빠릅니다.

 

- 협업의 편의성: 여러 명의 개발자가 협업할 때, Atomic Commits를 사용하면 각자의 작업을 조율하고 통합하는 데 도움이 됩니다.

 

 

2. Commit Message

Git Docs에 따르면 현재시제의 메세지를 쓸 것을 권장합니다. (명령어를 사용하여 do, make, create ..)

-> 오래된 관례로 꼭 따르지 않아도 됨.

-> 자신에게 주어진 환경에 맞게 사용 (회사에서는 회사 내규에 따라...)

 

 

3. Git Log

>git log

 

>git log --oneline

log를 한 줄로 깔끔하게 보여줌

 

 

 

4. --amend 실수 수정

git commit --amend

바로 직전의 commit을 수정할 수 있음

(수정 사항을 stage에 올리고 위 명령어를 입력하면 적용)

 

 

5. 파일 무시하기

일부 공개되기 싫거나 숨기고 싶은 파일을 깃으로 추적하지 않도록 설정하는 것

(ex. 보안키, 언어의 라이브러리 파일들, OS 전용 파일, ...)

 

repository안에 .gitignore 파일을 만들어 추적하고 싶지 않은 목록을 만들어서 사용

 

.gitignore

 

아래 사이트에서 무시할 파일에 대한 리스트를 얻을 수 있습니다.

 

gitignore.io

 

'Study > GIT' 카테고리의 다른 글

[Git] 5. Git Merges (branch 병합하기)  (0) 2023.11.29
[Git] 4. Git Branch  (0) 2023.11.27
[Git] 깃크라켄(GitKraken) GUI 환경에서 Git 사용하기  (0) 2023.11.27
[Git] 2. Git 기초  (0) 2023.11.27
[Git] 1. Git과 Git 설치  (0) 2023.11.27

Tag

 

1. Git Repo

Git Repo는 Git이라는 분산 버전 관리 시스템을 사용하여 관리되는 저장소(Repository)를 가리킵니다.

 

Git Repo에는 프로젝트의 모든 파일과 폴더, 그리고 각 파일의 변경 이력이 포함되어 있습니다. 이러한 저장소는 로컬 컴퓨터에 있을 수도 있고, 원격 서버에 있을 수도 있습니다. 여러 개발자가 협업할 때, 중앙 저장소나 원격 저장소를 사용하여 소스 코드를 공유하고 업데이트할 수 있습니다.

 

Repository

- 깃저장소(작업공간)

- 각각 독립된 프로젝트를 의미

 

 

2. Git Init & Status

>git status

깃 저장소에 대한 정보 / 폴더 내 내용 변화 감지-> git이 계속 관찰 중임

 

>git init

new git repository -> 현재 repository를 git 저장소로 초기화 (프로젝트 당 한번 사용)

 

* git init 사용하면 폴더에 숨김 폴더 .git 생성

* git repository 밑에 있는 폴더는 이미 git의 영향권에 있음
-> >git status를 이용해 확인 후 >git init을 할 것

(이미 git영향을 받고 있는데 init하면 문제가 생길수도) => .git을 제거하여 해결

 

 

3. Commit Flow

commit

git 저장소의 check point 중 하나

 

 

* 선택적으로 commit이 가능

-> 여러 변경 사항을 한번에 commit가능 (원하는 시점에서 commit 가능)

 

 

4. Git Add로 변경 사항 스테이징

 

working directory

실제 작업 공간(폴더)

 

starting area

commit 전에 변경 사항들을 등록하는 곳

 

>git add file1 file2

starting area에 file 추가

 

 

 

5. Git 명령어

>git commit

 

>git commit -m "my message"

message와 함께 commit (message: 변경 사항 등을 확인할 수 있게 달아두는 주석)

 

 

 

6. Git Log 명령어

>git log

깃 저장소에 대한 커밋 정보들을 검색

 

>git add .

모든 변경 사항들을 datage에 넣음

 

'Study > GIT' 카테고리의 다른 글

[Git] 5. Git Merges (branch 병합하기)  (0) 2023.11.29
[Git] 4. Git Branch  (0) 2023.11.27
[Git] 깃크라켄(GitKraken) GUI 환경에서 Git 사용하기  (0) 2023.11.27
[Git] 3. Commit 추가 사항들  (0) 2023.11.27
[Git] 1. Git과 Git 설치  (0) 2023.11.27

Tag

C

Contents

island
speech-bubble--v1

It's me

Sun Hong

2023.12.01

speech-bubble--v1

It's me

Sun Hong

2023.12.01

speech-bubble--v1

It's me

Sun Hong

2023.11.27

dragon
Danger!

이 친구는 사실 용이에요.

용에게 인사를 해주세요.

man-raising-hand-icon
hashtag
speech-bubble--v1

It's me

Sun Hong

2023.12.01

speech-bubble--v1

It's me

Sun Hong

2023.12.01

speech-bubble--v1

It's me

Sun Hong

2023.11.27

fox
speech-bubble--v1

It's me

Sun Hong

2023.12.01

speech-bubble--v1

It's me

Sun Hong

2023.12.01

speech-bubble--v1

It's me

Sun Hong

2023.11.27