Make Unreal REAL.
article thumbnail
Git의 Stash

The Ultimate Git Course - with Applications in Unreal Engine 수정 사항을 잠시 빼놓는 작업이다. Tracked 파일들의 변경 사항과 Staged 된 변경 사항에 적용된다. Stash 수행 후에 git status를 실행하면 clean 상태라고 나온다. (Untracked 상태인 파일이 없다면) Stash stack이라는 공간에 순차적으로 쌓이며 LIFO 구조를 가진다. 넣었던 stash들을 하나씩 다시 가져와 적용할 수도 있다. 다음과 같은 상황에서 사용하면 유용하다. commit 하기엔 부족한 코드가 있는데 Branch를 바꾸고 싶을 때 아직 수정 중인 코드가 있는데 Merge conflicts가 발생할 때 물론, Stash 시에도 pop 하려는 내용과 ..

article thumbnail
Git의 Interactive Rebase

The Ultimate Git Course - with Applications in Unreal Engine 여러 commit들을 하나로 묶거나 순서를 변경하는 것을 뜻한다. 하나의 기능을 구현하는데 여러 개의 commit이 사용된 경우에 이것들을 하나의 큰 변경 사항으로 묶을 수 있다. 흔히 Squash라고 알려져 있으나, squash는 사실 Interactive Rebase에서 지원하는 명령어 중 하나이다. pick: commit을 사용 reword: commit을 사용하고 commit 메시지 변경 squash: commit을 사용하고 이전 commit과 병합 위 명령어들을 git-rebase-todo에 적절히 사용하여 commit들을 묶거나 순서를 바꿀 수 있다. Interactive Rebase를..

article thumbnail
SSH

The Ultimate Git Course - with Applications in Unreal Engine 암호화 통신이 필요한 이유 누군가 아이디, 비밀번호 등 노출되면 안 되는 정보를 통신 과정에서 가로챌 수 있기 때문 SSH는 공개키 암호화 방식을 사용한다. 공개키를 이용해 데이터를 암호화하고 개인키를 이용해 복호화한다.

article thumbnail
Remote와 Local Repository

The Ultimate Git Course - with Applications in Unreal Engine Remote Repository (origin) 전체 Commit 그래프를 저장한다. Local의 commit을 Remote에 적용하는 것을 Push라고 한다. 내 Local 버전이 Remote와 비교해 최신 버전이 아니면 Push할 수 없다. 이를 통해 Remote와의 Merge conflicts를 발생하지 않도록 할 수 있다. 누군가 Remote에 적용한 변경 사항을 나의 Local에 적용하는 것을 Pull이라고 한다. 실제로는 origin을 Upstream으로 지정할 경우 다음와 같이 동작한다. Push 1. Local의 변경 사항을 Local의 Remote Tracking Branch에 M..

article thumbnail
Git의 Rebase

The Ultimate Git Course - with Applications in Unreal Engine Three-way Merge 후에 마지막 commit은 2개의 부모 커밋에 대한 포인터를 갖게 된다. 이로 인해 commit 그래프상 루프가 생기고 commit 기록 관리가 어려워진다. Rebase는 현재 Branch의 Base commit을 기준 Branch의 마지막 commit으로 변경해준다. 이를 통해 commit의 순서를 정할 수 있게 되고 Merge는 Fast-forward 방식으로 진행되게 된다.

article thumbnail
Git의 Merge

The Ultimate Git Course - with Applications in Unreal Engine Fast-forward Merge 현재 Branch 포인터를 Merge할 Branch 포인터와 동일한 commit을 가리키도록 한다. 현재 Branch 포인터가 가리키는 commit이 Merge할 Branch 포인터가 가리키는 commit의 조상일 때 새로운 Branch를 만든 후 기존 Branch에서는 변경 사항이 없었다는 뜻이다. 3-way (Recursive) Merge 파일을 라인, 블록 단위로 비교하여 병합한다. 현재 Branch 포인터가 가리키는 commit이 Merge할 Branch 포인터가 가리키는 commit의 조상이 아닐 때 LCA (최소 공통 조상)에서 둘 다 변경 사항이 있었..

검색 태그