2024. 4. 2. 21:23ㆍDevelopers 공간 [Shorts]/Software Basic
<분류>
A. 수단
- OS/Platform/Tool : Linux, Kubernetes(k8s), Docker, AWS
- Package Manager : node.js, yarn, brew,
- Compiler/Transpillar : React, Nvcc, gcc/g++, Babel, Flutter
- Module Bundler : React, Webpack, Parcel
B. 언어
- C/C++, python, Javacsript, Typescript, Go-Lang, CUDA, Dart, HTML/CSS
C. 라이브러리 및 프레임워크 및 SDK
- OpenCV, OpenCL, FastAPI, PyTorch, Tensorflow, Nsight
1. What? (현상)
Git으로 작업된 Repository가 주어진 경우, 해당 Repository에 대해 아래와 같이 궁금한 것들이 생깁니다.
- 해당 Repository가 어떤 순서로 작업되었는지
- 어떤 Branch가 어디로부터 분리되었는지
- Commit마다 어떤 정보가 어떻게 업데이트 되었는지
Github에서 혹은 git명령어를 통해 이런 것들을 살펴본 것들을 정리하고자 합니다.
아래에서 사용할 용어에 대해 편의상 아래와 같이 약자를 만들어 설명하고자합니다.
- WD : Working Directory, 현재 작업중인 폴더를 의미합니다.
- SA : Staging Area, 현재 git add 명령어로 업데이트 커밋이 올라가 있는 공간
- LR : Local Repository, git commit 명령어로 현재 commit이 모여있는 Local 저장소
- RR : Remote Repository, git push 명령어로 commit이 모여있는 Remote 저장소, github와 같습니다.
2. Why? (원인)
- X
3. How? (해결책)
1. RR에서 Branch와 Commit들을 확인하기
아래 그림과 같이 github 웹페이지에서 직접 branch와 commit들을 직접확인할 수 있습니다. 이들은 RR 저장소에서의 Commit과 Branch들을 의미합니다.
2. Local (WD,SA,LR) 에서 비교/확인하기
git diff 명령어를 통해 branch간 혹은 commit 간의 비교를 할 수 있습니다. git diff는 어떤 경우에 사용하는지 간단히 보겠습니다.
- WD ⬌ SA : 현재 작업중인 Working Directory와 staging된 파일들을 비교합니다.
git diff
- WD,SA ⬌ SA : 현재 작업중인 폴더와 staging된 파일들을 Local 저장소의 HEAD commit과 비교하기 위해 사용합니다.
git diff HEAD : 이 명령어는
- SA ⬌LR Head Commit : 현재 staging된 파일들와 Local 저장소의 HEAD commit과의 비교를 위해 사용합니다. 가장 많이 사용합니다.
git diff --staged
git diff --cached
- LR ⬌ LR (branch, commit) : Local 저장소 내에서, A와 B 브랜치 간의 차이를 확인하기 위해 사용합니다. A와 B가 Commit이라면 Commit 간의 차이를 확인합니다.
** commit hash를 알기 위해서는 아래 3번과 4번을 참조하세요
git diff A..B
3. 저장소 전체(LR,RR)의 히스토리 확인하기
git log 명령어는 해당 repository의 public record들을 전부 볼 수 있는 명령어 입니다.
** git reflog는 LR에서 작업된 commit들의 commit 히스토리만 볼 수 있습니다.
아래와 같은 명령어를 통해 git log를 깔끔하게 볼 수 있습니다.
git log --oneline --decorate --graph --all
git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --all
4. 저장소 전체(LR,RR)의 히스토리 확인하기2
git log 명령어와 비슷하지만 패키지로 제공되는 tig라는 명령어가 있습니다. 아래와 같이 실행하면 git log보다 더 정렬되어 확인할 수 있습니다.
apt-get install tig
tig
'Developers 공간 [Shorts] > Software Basic' 카테고리의 다른 글
[PyTorch] 모델의 state_dict 다루기 (0) | 2024.07.14 |
---|---|
[Python] 파일 다루기 (0) | 2024.07.07 |
[Nvidia] GPU OOM Error 나는 경우 (+Tensorflow) (0) | 2024.04.02 |
[Gradio] Gradio 기초 (0) | 2024.03.25 |
[Docker] Error starting userland proxy: address already in use (0) | 2024.03.08 |