프로그래밍

(1) 깃(Git)의 기본 기능들 : init, add, commit, status, commit, merge, log

릿카。 2024. 4. 4. 22:13

1. 깃 저장소(Git Repository) 초기화: git init

새로운 소프트웨어 프로젝트를 시작한다고 합시다. 깃(Git)으로 프로젝트의 변경 사항을 추적하기 시작하려면, 프로젝트 경로에 'git init' 명령을 사용합니다. 그러면 해당 경로에 .git이라는 숨겨진 폴더가 생성되고, 이 폴더에는 깃의 버전제어에 필요한 모든 파일들이 저장됩니다. 이 .git 폴더가 하위에 생성된 폴더를 '깃 저장소(Git Repository)'라고 정의합니다.

# Navigate to your project directory
cd my_project

# Initialize a Git repository
git init

 

2. 스테이징 영역에 파일 추가: git add


이제 Git Repository(깃 저장소)가 생겼으니 main.py 이라는 새로운 파일을 만들었다고 가정해 보겠습니다. Git는 자동으로 변경 사항을 추적하지는 않습니다. 항상 자동저장 기능이 켜져있으면 실수로 잘못 변경한것까지 즉각 반영되어버리니 바람직하지 않을겁니다. 그래서 Git은 수동으로 코드 변경을 '확정'하는 절차를 가지고 있습니다. 그 '변경 확정 절차'의 중간단계에 쓰이는 명령어가 git add 입니다.

https://medium.com/@lucasmaurer/git-gud-the-working-tree-staging-area-and-local-repo-a1f0f4822018

Git에게 다음 스냅샷(커밋)에 main.py 을 포함하고 싶다고 말하면 git add를 사용합니다.

 

변경을 확정할때 쓰는 명령어가 git commit이 됩니다. 그러면 그 변경사항은 저장소(Repository)에 확정적으로 저장됩니다.

Bash
# Add the file main.py to the staging area
git add main.py

 

3. 스냅샷(체크포인트) 생성: git commit

git add 명령어는 파일을 회색지대, 중간영역에 해당하는 스테이징(Staging) 영역에 배치합니다. 변경사항에 대한 영구적인 기록(log, history)을 작성할 준비가 되면 git commit을 사용합니다. 여기서 변경된 내용을 요약한 설명적 커밋 메시지도 제공합니다.

 

Bash
# Create a commit with a message explaining the changes
git commit -m "Added initial Python script"

 

4. 변경사항 탐색: git status

변경사항을 추적하는 것은 매우 중요합니다. git status 명령은 저장소의 현재상태에 대한 스냅샷을 제공합니다. 어떤 파일이 추적해제 상태인지(untracked, 아직 스테이징에 추가되지 않음), 스테이징에 올라갔는지(커밋할 준비가 됨)를 보여줍니다.

Bash
# Check the status of your repository
git status

 

5. 분기: git branch

주요 코드베이스를 건드리지 않고 새로운 기능으로 실험을 하고 싶다고 상상해 보세요. 바로 여기에서 가지가 나옵니다! 가지는 프로젝트의 별도의 타임라인과 같습니다. git branch 명령을 사용하면 새로운 가지를 만들고 가지 사이를 전환할 수 있습니다.

https://www.bitsnbites.eu/a-tidy-linear-git-history/

Bash
# Create a new branch named "feature_login"
git branch feature_login

 

6. 브랜치를 다시 통합: git merge

새로운 기능 브랜치에 대한 작업을 완료하면, 메인 코드베이스에 다시 통합하고자 할 것입니다. 여기서 git merge가 실행됩니다. 기능 브랜치에서 현재 브랜치로 변경된 내용을 결합합니다.

 

Bash
# Switch back to the main branch (assuming you're currently on the feature branch)
git checkout main

# Merge the changes from the "feature_login" branch into the main branch
git merge feature_login

 

7. 실수 되돌리기: git reset (주의해서 사용!)

커밋을 잘못했다고 가정해 보겠습니다. git reset을 사용하면 저장소를 이전 상태로 되돌릴 수 있습니다. 그러나 이 명령은 기록을 다시 작성하므로 주의하여 사용해야 합니다. 상황에 따라 git reset을 사용하는 방법이 다릅니다.

8. 깃 기록 보기: git log

git log 명령은 커밋 메시지와 작성자 정보를 포함한 모든 commit의 로그를 표시합니다.

 

Bash
# View the commit history
git log