10가지 고급 Git 기술 - KDnuggets

10가지 고급 Git 기술 – KDnuggets

소스 노드 : 3083811

10가지 고급 Git 기술
작성자의 이미지
 

Git을 사용할 때 관리자 앞에서 전문가처럼 보이려면 어떻게 해야 하는지 궁금하신가요? 이 게시물에서는 코드 버전 관리, 유지 관리 및 공유를 더욱 효율적으로 만들어 주는 10가지 고급 Git 기술과 바로가기에 대해 알아봅니다.

여러분은 Git을 사용한 커밋, 푸시, 풀, 분기의 기본 사항을 이미 알고 있을 것입니다. 하지만 기술 수준을 높일 수 있는 잘 알려지지 않은 명령과 기능이 많이 있습니다. 이 글을 읽고 나면 Git 능숙도를 동료들에게 보여줄 수 있는 몇 가지 멋진 트릭을 알게 될 것입니다.

이런 식으로 파일을 여러 번 추가하고 커밋했지만 `-am` 플래그를 사용하여 한 줄로 수행할 수 있다고 말하면 어떻게 될까요? 

$ git add .
$ git commit -m "new project"

 

대신 이것을 시도하면 파일 변경 사항이 추가되고 메시지를 사용하여 커밋이 생성됩니다. 

$ git commit -am "new project"

 

[master 17d7675] new project
4 files changed, 2 insertions(+), 1 deletion(-)

 

`–amend` 플래그를 사용하여 현재 커밋 메시지의 이름을 바꾸고 새 메시지를 작성할 수 있습니다. 이것은 실수로 메시지를 보내는 데 도움이 될 것입니다.

$ git commit --amend -m "Love"

 

[master 7b7f891] Love
Date: Mon Jan 22 17:57:58 2024 +0500
4 files changed, 2 insertions(+), 1 deletion(-)

 

원격 저장소에 푸시하기 전에 현재 커밋에 대한 추가 변경 사항을 포함할 수 있습니다. 이렇게 하려면 파일 변경 사항을 추가한 다음 `–amend` 플래그를 사용하여 커밋해야 합니다. 이전 커밋 메시지를 유지하려면 `–no-edit` 플래그를 사용하면 됩니다.

$ git add . 
$ git commit --amend --no-edit

 

[master f425059] Love
Date: Mon Jan 22 17:57:58 2024 +0500
6 files changed, 2 insertions(+), 34 deletions(-)

문제 해결을 처리하지 않고 로컬 커밋을 푸시하고 원격 기록을 재정의하려면 `–force` 플래그를 사용할 수 있습니다. 그러나 force 플래그를 사용하는 것은 권장되지 않으며 수행 중인 작업에 대해 완전히 확신할 때만 사용해야 한다는 점에 유의하는 것이 중요합니다. force 플래그를 사용하면 원격 기록이 다시 작성된다는 점을 명심하세요.

$ git push origin master --force

 

Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 16 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 357 bytes | 357.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/kingabzpro/VSCode-DataCamp.git
8f184d5..f425059  master -> master

Git에서 커밋을 실행 취소하려면 `revert` 명령을 사용할 수 있습니다. 그러나 이 명령은 커밋을 제거하지 않습니다. 대신 원래 커밋에 의해 변경된 내용을 취소하는 새 커밋을 생성합니다.

커밋 기록을 더 짧은 형식으로 보려면 `–oneline` 플래그와 함께 `log`를 사용합니다. 

$ git log --oneline

 

f425059 (HEAD -> master, origin/master) Love
8f184d5 first commit

 

이전 커밋으로 되돌리려면 `git revert` 명령 뒤에 커밋 ID를 사용합니다. 그러면 이전 커밋의 변경 사항이 포함된 새 커밋이 생성됩니다.

$ git revert 8f184d5

GitHub에서 생산성을 높이고 싶으십니까? GitHub Code Spaces를 사용하면 이제 브라우저에서 직접 코드를 편집하고 실행할 수 있습니다. 

이 기능에 액세스하려면 즐겨찾는 저장소로 이동하여 키보드에서 마침표 키(".")를 누르면 VSCode UI로 리디렉션됩니다.

 

10가지 고급 Git 기술
작성자의 이미지
 

코드를 변경하고 이를 원격 저장소에 푸시할 수 있습니다. 하지만 터미널에서 코드를 실행하려면 클라우드에서 Codespace를 실행해야 합니다. 무료 버전은 브라우저에서 Python 코드를 실행하기 위한 탁월한 옵션을 제공합니다. 정말 멋지지 않나요? 오늘에서야 그 사실을 알았습니다.

 

10가지 고급 Git 기술
작성자의 이미지

프로젝트 작업 시 준비 영역에 파일을 추가한 다음 커밋하여 현재 진행 상황을 저장할 수 있습니다. 그러나 `stash` 명령을 사용하여 작업을 쉽게 저장하는 또 다른 방법이 있습니다. `stash`를 사용하면 스테이징 영역에 추가하거나 커밋하지 않고 현재 진행 상황을 저장합니다. 이를 통해 진행 상황을 저장하고 필요할 때마다 복원할 수 있습니다.

이름을 제공하고 이를 숨겨서 현재 진행 상황을 저장합니다. 

$ git stash save new-idea

 

Saved working directory and index state On master: new-idea

 

숨김 목록을 보고 해당 색인을 참고하여 검색할 수 있습니다.

$ git stash list

 

stash@{0}: On master: new-idea

 

“새로운 아이디어”의 숨김은 인덱스 0에 저장됩니다. 이를 검색하려면 다음 명령을 사용하십시오.

$ git stash apply 0

 

On branch master
Your branch is up to date with 'origin/master'.

기본 분기 이름을 보다 적절한 이름으로 바꿀 수 있는 옵션이 있습니다. 이 경우 "master"의 이름을 "main"으로 변경하겠습니다. 

$ git branch -M main

 

10가지 고급 Git 기술
 

다음 명령을 사용하여 변경 사항을 확인할 수 있습니다. 

$ git status

 

On branch main
Your branch is up to date with 'origin/master'.

현재 저장소의 모든 커밋에 대한 자세한 기록을 보려면 'git log' 명령을 사용하면 됩니다. 그러나 출력을 읽기 어려울 수 있습니다. 더 읽기 쉽게 만들려면 'graph', 'design' 및 'oneline' 플래그를 사용할 수 있습니다. 그러면 여러 분기의 변경 사항과 병합 방법이 표시됩니다.

$ git log --graph --decorate --oneline

 

10가지 고급 Git 기술

여러 번 새 브랜치로 전환하고 이전 브랜치의 이름을 잊어버렸습니다. 결과적으로 브랜치 이름 목록을 보려면 `git Branch -a` 명령을 사용해야 했습니다. 그러나 `git checkout` 명령 뒤에 대시 "-"를 사용하여 원래 분기로 돌아가는 더 간단한 방법이 있습니다.

먼저 새로운 Git 브랜치 “neo”를 생성하겠습니다.

$ git branch neo

 

우리는 "neo" 브랜치로 전환할 것입니다.

$ git checkout neo

 

Switched to branch 'neo'

 

원래 지점으로 돌아가려면 다음 명령을 사용합니다.

$ git checkout -

 

Switched to branch 'main'

원격 저장소 재정의에 대해 배웠습니다. 원격 저장소를 이용하여 로컬 저장소를 재정의하는 방법을 알아봅시다.

'fetch' 명령을 사용하여 원격 저장소에서 최신 변경 사항을 가져옵니다. 

$ git fetch origin

 

그런 다음 'hard' 플래그와 함께 'reset' 명령을 사용하여 모든 로컬 변경 사항을 원격 버전으로 재정의합니다. 이렇게 하면 로컬 변경 사항이 영구적으로 삭제됩니다.

$ git reset --hard origin/master

 

HEAD is now at f425059 Love

 

아직 추적되지 않은 파일이 있는 경우 다음 명령을 사용하여 제거할 수 있습니다.

$ git clean -df

저는 이 글을 보고 영감을 받아 이 글을 쓰게 되었습니다. YouTube 동영상 Fireship으로. 복잡한 주제를 간단하게 설명하는 능력이 있는 작가를 존경합니다. 그의 방법을 따라하면서 Git 기능에 대해 많은 것을 배웠습니다.

이 기사에서는 협업 데이터 프로젝트를 진행하는 데이터 과학자 및 소프트웨어 엔지니어에게 중요한 고급 Git 기술을 다루었습니다. 이러한 기술을 알면 사고를 방지하고 문제를 훨씬 빠르게 해결하는 데 도움이 될 수 있습니다.

이 블로그가 도움이 되었기를 바랍니다. 데이터 과학 세계에서 일반적으로 사용되는 도구에 대한 바이트 크기의 정보가 포함된 더 많은 게시물을 읽고 싶다면 알려주시기 바랍니다.
 
 

아비드 알리 아완 (@1abidaliawan)은 기계 학습 모델 구축을 좋아하는 공인 데이터 과학자 전문가입니다. 현재 그는 콘텐츠 제작에 집중하고 있으며 머신 러닝 및 데이터 과학 기술에 대한 기술 블로그를 작성하고 있습니다. Abid는 기술 관리 석사 학위와 통신 공학 학사 학위를 보유하고 있습니다. 그의 비전은 정신 질환으로 고생하는 학생들을 위해 그래프 신경망을 사용하여 AI 제품을 만드는 것입니다.

타임 스탬프 :

더보기 너 겟츠