Git 38

[Git] 브랜치 연결 상태 확인

개요Git을 사용해 형상관리를 하다 보면 브랜치를 생성하고 삭제하는 작업이 필연적으로 자주 발생한다. 그 과정 중 어떤 브랜치가 어떤 원격 브랜치를 참조하고 있는지 확인해야 하는 경우도 있을 수 있는데, 아주 간단한 방법으로 확인할 수 있다. git branch -vvgit branch -v 옵션은 기본적으로 브랜치 헤드가 가리키는 해시 및 제목을 보여준다.git branch -v그리고 이 옵션을 두 번 사용하면 브랜치가 가리키는 원격 브랜치를 알 수 있다.git branch -vv축약형이 아니라 옵션명을 전부 작성할 때는 --verbose 옵션 자체를 두 번 작성하면 된다.git branch --verbose --verbose 참고 문서https://git-scm.com/docs/git-bra..

Git | GitLab 2025.11.11

[Git] diff 결과에서 ^M(CTRL + v + m) 개행문자 제거

개요Window와 Linux 등 크로스 플랫폼에서 Git을 사용하다 보면 각 OS에서 사용하는 개행문자가 서로 달라 git diff 수행 시 변경점이 없음에도 불구하고 각 행의 모든 내용이 출력되는 경우가 있다.git 설정을 조절하여 이러한 현상을 없애보자. 개행문자CR(Carrage Return)은 타자기 시절 페이퍼 롤을 우측으로 이동시키기 위한 명령어로 현재 위치를 좌측 맨 끝으로 옮기는 것을 의미한다.LF(Lind Feed)는 페이퍼 롤을 한 줄씩 아래로 이동시키는 명령어로, 현재 위치에서 한 줄 아래로 이동하는 것을 의미한다.오늘날의 컴퓨터는 OS마다 다른 개행문자를 사용하고 있는데, 대표적으로 Window는 CR+LF, Linux, Mac에서는 LF을 채택하고 있다.때문에 Window 상의..

Git | GitLab 2025.11.10

[Git] reflog - HEAD 이력 확인하기

개요git reset으로 커밋을 취소하던 중 실수로 유지해야 하는 커밋도 함께 취소를 해버렸다. 방법을 찾던 중 reflog 명령여를 활용하는 방식이 있어 reflog라는 명령어 자체에 대해서 일단 알아보고자 한다. reflog로컬 저장소에서 HEAD 또는 브랜치가 업데이트된 시점을 기록한다. 이 이력은 로컬 저장소의 아래 경로에 기록된다..git/logs/ref/heads# 또는.git/logs/HEAD즉, 변경 이력을 확인하고 싶다면 reflog 명령어가 아니라 위의 파일을 확인해도 된다. reflog는 list, show, expire, delete 등 다양한 하위 명령어를 제공하고 있다. 이 글에서는 주로 show 명령어를 다루려고 한다. 사용법기본적으로 아래와 같이 하위 명령어를 생략하여..

Git | GitLab 2025.06.02

[Git] diff - 브랜치 비교

개요2025.05.07-[Linux] diff -rq - 디렉터리 비교에서 두 디렉터리의 내용을 비교 확인하는 방법을 알아 보았는데, 사실 이 디렉터리가 Git 레포지터리였다. 그리고 Git은 두 브랜치를 비교하는 명령어를 제공하고 있다는 것을 뒤늦게 알게되어 추가로 작성한다. diffgit diff는 커밋 간, 커밋과 작업 트리 간 변경점을 보여주는 명령어다. 아무 옵션 없이 사용하면 워킹 트리 내에서 발생한 변경점을 보여주고, 파일을 지정하면 워킹 트리 내에서 지정한 파일에 발생한 변경점을 보여준다. 그리고 비교할 브랜치를 지정하면 두 브랜치 간의 차이점을 보여준다.git diff BRANCH_1 BRANCH_2## 예시git diff origin/master origin/my_branch실행해보면..

Git | GitLab 2025.05.19

[Git] Shallow Clone - 저장소의 일부 이력만 받아오기

개요간혹 몇 년에 걸쳐 유지되어 용량이 엄청 커진 Git 저장소를 클론 할 때가 있는데, 전송해야 하는 데이터의 양이 너무 많아 시간이 아주 오래 걸리거나 중간에 실패하는 경우가 발생할 수 있다.만약 저장소의 전체 이력이 필요하지 않다면 저장소의 일부 이력만 받아오는 Shallow Clone이 방법이 될 수 있다. 이번 글에서는 git clone 또는 fetch 시 일부 이력만 받아오는 방법을 적어둔다.  depthgit clone 또는 git fetch 명령어를 사용할 때 --depth 옵션을 통해 받아올 이력, 즉 커밋의 수를 지정할 수 있다.git clone --depth=Ngit fetch --depth=N최신 이력부터 지정한 수의 커밋을 받아오게 된다. 즉, depth를 1로 주면 최신 1개의..

Git | GitLab 2024.12.05

[Git] stash - 특정 파일만 임시 저장

개요최근 Git 로컬 레포지터리에서 수정 작업을 많이 하고 있는데, 수정 내용을 간단하게 저장하고 다시 적용할 수 있는 stash를 적극적으로 활용하고 있다. git stash 명령은 워킹 디렉터리에서 수정이 발생한 모든 내용을 임시로 저장하는데, 특정 파일만 저장할 때도 많아서 방법을 적어둔다. git stash pushgit stash [push [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-q|--quiet] [-u|--include-untracked] [-a|--all] [-m|--message ] [--pathspec-from-file= [--pathspec-file-nul]] ..

Git | GitLab 2024.11.12

[Git] Squash - 커밋 압축하기

개요Git으로 프로젝트를 관리하는 경우, commit 이력을 깔끔하게 관리하는 것은 프로젝트의 이력 파악에 도움을 준다. 다만 커밋을 수행한 직후에 사소한 오타 등을 수정하기 위해 다시 커밋을 수행하는 상황에 의해 커밋 이력이 난잡해질 수도 있다. 이런 경우 git squash라는 기능을 이용하여 커밋을 압축하는 방식으로 커밋 이력을 정리할 수 있다.이번 글에서는 git squash를 사용하는 방법을 적어둔다.  Squash사전적으로 squash란 '짓누르다'라는 의미로, git에서는 여러 커밋을 하나의 커밋으로 짓눌러 합치는 기능을 제공한다. 불필요하게 작게 나뉜 커밋을 유의미한 변경 사항을 담은 커밋으로 압축할 수 있게 한다.로컬 레포지터리에서 개발한 내용을 원격 저장소로 올리기 전에 squash를 ..

Git | GitLab 2024.09.13

[Git] git tag - 특정 태그로 이동

개요최근 소스 레포지터리의 특정 태그 버전으로 이동해야 하는 일이 있었는데, 방법을 잘 모르고 있어서 적어둔다.   Tag무언가를 표시할 때 사용하는 태그는 Git에서도 중요한 특정 커밋을 표시하기 위해서 사용한다. 즉, 커밋을 가리키는 링크와 비슷한데, 보통 v1.0.0, v1.1.0 등으로 릴리즈를 할 때 사용한다.태그에는 Lightweight, Annotated라는 두 가지 종류가 존재한다. Lightweight 태그는 단순 특정 커밋에 대한 포인터에 해당하는 반면, Annotated 태그는 태그 생성자의 이름, 이메일, 태그 생성일, 태그 매시지 등을 Git 데이터베이스에 저장한다. 일반적으로 태그를 생성할 때는 Annotated 태그로 생성하여 사용한다.   태그 생성태그는 git tag 명령으..

Git | GitLab 2024.09.02

[Git] 특정 커밋만 푸시

개요특정 커밋만 브랜치에 적용할 때는 2023.04.21-[Git] cherry-pick - 특정 커밋 반영 명령어를 사용할 수 있는데, cherry-pick하는 것이 아니라 commit을 push 하는 단계에서 push 할 커밋만 지정할 수 있으면 한다.방법을 적어둔다.  방법 일단 git push를 사용할 때 아래와 같은 명령어를 사용한다.git push :# 예시git push origin 8b43c99:maingit push origin 8b43c99:refs/heads/commit_push다만 제한사항이 좀 있는 것 같다. 먼저 push 명렁은 기본적으로 지정한 커밋을 포함한 모든 커밋을 Push 하기 때문에 하나의 커밋만을 push 하기 위해서는 push 할 커밋이 첫 번째 커밋이 되어야 한..

Git | GitLab 2024.07.02

[Git] 작업 디렉터리 지정하여 명령어 수행

개요Git 작업은 보통 작업 디렉터리 내에서 이루어진다. 작업 디렉터리 밖에서 git 명령어를 수행하면 fatal 에러가 발생하면서 실패한다.다만 진행하는 프로젝트가 여러 저장소로 구성되어 있다면, Git 작업을 할 때 저장소를 이동하는 것에 번거로움을 느낄 수 있다.이 글에서는 작업 디렉터리를 지정해 Git 명령어를 수행하는 방법을 적어둔다.   -C 옵션현재 작업 디렉터리 대신 path에서 실행할 때에는 -C 옵션에 경로를 지정한다. -C 옵션에 값을 여러 개 지정하는 경우, 각 -C 옵션은 뒤이어 오는 -C 옵션의 기준 경로가 된다. 즉, 상대적으로 해석된다.git -C # 예시git -C branch_test/ status  참고 문서Git - git-help Documentation (git-..

Git | GitLab 2024.06.28
1 2 3 4