728x90
반응형
Git과 GitHub은 현대 소프트웨어 개발에서 필수적인 도구입니다.
이 블로그 포스트에서는 Git을 시작하는 방법부터 브랜치 관리, 커밋 다루기, 실전 활용까지 포괄적으로 설명합니다.
이 포스트를 통해 Git과 GitHub을 효과적으로 활용하여 코드 관리를 더 효율적으로 할 수 있을 것입니다.
1. GitHub 준비하기
1.1 Git 초기화 및 설정
- git init: 현재 디렉토리를 Git이 관리하는 프로젝트 디렉토리로 설정하고 .git 디렉토리를 생성합니다.
git init
- git config user.name 'maccrey': 커밋할 때 사용할 사용자 이름을 설정합니다.
git config user.name 'maccrey'
- git config user.email 'teacher@codeit.kr': 커밋할 때 사용할 이메일 주소를 설정합니다.
git config user.email 'teacher@codeit.kr'
1.2 파일 관리
- git add [파일 이름]: 수정사항이 있는 특정 파일을 staging area에 추가합니다.
git add filename.txt
- git add [디렉토리명]: 해당 디렉토리 내의 모든 수정된 파일을 staging area에 추가합니다.
git add directory/
- git add .: working directory 내의 모든 수정된 파일을 staging area에 추가합니다.
git add .
- git reset [파일 이름]: staging area에서 특정 파일을 제거합니다.
git reset filename.txt
- git status: 현재 Git의 상태를 출력합니다.
git status
- git commit -m "커밋 메시지": staging area에 있는 파일들을 커밋합니다.
git commit -m "Initial commit"
- git help [커맨드 이름]: Git 커맨드의 사용법을 출력합니다.
git help add
2. GitHub 시작하기
2.1 리모트 레포지토리와 연결
- git push -u origin master: 로컬 레포지토리의 내용을 리모트 레포지토리에 처음으로 푸시합니다.
git push -u origin master
- git push: 이전에 설정한 원격 레포지토리에 푸시합니다.
git push
- git pull: 원격 레포지토리의 내용을 로컬 레포지토리로 가져옵니다.
git pull
- git clone [프로젝트의 GitHub 상 주소]: GitHub에 있는 프로젝트를 내 컴퓨터로 클론합니다.
git clone https://github.com/username/repository.git
3. Git에서 커밋 다루기
3.1 커밋 기록 보기
- git log: 커밋 히스토리를 출력합니다.
git log
- git log --pretty=oneline: 커밋 히스토리를 한 줄씩 출력합니다.
git log --pretty=oneline
- git show [커밋 아이디]: 특정 커밋의 변경사항을 확인합니다.
git show abc123
- git commit --amend: 최신 커밋을 수정합니다.
git commit --amend
- git config alias.[별명] [커맨드]: 커맨드에 별명을 붙여서 짧게 실행할 수 있게 합니다.
git config alias.co checkout
- git diff [커밋 A의 아이디] [커밋 B의 아이디]: 두 커밋 간의 차이를 비교합니다.
git diff abc123 def456
- git reset [옵션] [커밋 아이디]: HEAD와 staging area, working directory를 특정 커밋 상태로 리셋합니다.
git reset --hard abc123
- git tag [태그 이름] [커밋 아이디]: 특정 커밋에 태그를 붙입니다.
git tag v1.0 abc123
4. Git에서 브랜치 사용하기
- git branch [새 브랜치 이름]: 새로운 브랜치를 생성합니다.
git branch new-feature
- git checkout -b [새 브랜치 이름]: 새로운 브랜치를 생성하고 바로 이동합니다.
git checkout -b new-feature
- git branch -d [기존 브랜치 이름]: 브랜치를 삭제합니다.
git branch -d old-feature
- git checkout [기존 브랜치 이름]: 해당 브랜치로 이동합니다.
git checkout master
- git merge [기존 브랜치 이름]: 현재 브랜치에 다른 브랜치를 머지합니다.
git merge new-feature
- git merge --abort: 머지 중 충돌이 발생했을 때 머지 작업을 취소합니다.
git merge --abort
5. Git 실전 I
- git fetch: 원격 브랜치에서 최신 커밋을 가져옵니다.
git fetch
- git blame: 특정 파일의 각 줄이 어떤 커밋에서 생겼는지 출력합니다.
git blame filename.txt
- git revert [커밋 아이디]: 특정 커밋의 변경을 되돌리는 커밋을 새로 생성합니다.
git revert abc123
6. Git 실전 Ⅱ
- git reflog: HEAD가 가리켜왔던 커밋의 기록을 출력합니다.
git reflog
- git log --all --graph: 모든 브랜치의 커밋 히스토리를 그래프 형식으로 출력합니다.
git log --all --graph
- git rebase [브랜치 이름]: 브랜치를 rebase하여 커밋 히스토리를 깔끔하게 합니다.
git rebase master
- git stash: 현재 작업 내용을 스택에 저장합니다.
git stash
- git stash apply [커밋 아이디]: 스택에서 작업 내용을 적용합니다.
git stash apply
- git stash drop [커밋 아이디]: 스택에서 작업 내용을 삭제합니다.
git stash drop
- git stash pop [커밋 아이디]: 스택에서 작업 내용을 적용하면서 삭제합니다.
git stash pop
- git cherry-pick [커밋 아이디]: 특정 커밋의 내용을 현재 브랜치에 반영합니다.
git cherry-pick abc123
구독!! 공감과 댓글은 저에게 큰 힘이 됩니다.
Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.
728x90
반응형
'Program Development Tips > Git' 카테고리의 다른 글
[Synology NAS]에서 Git Server(Gitea) 설치하기 (3) | 2024.11.03 |
---|---|
Git 서버 만들기 (7) | 2024.10.14 |
[Git] .gitignore 파일의 역할과 활용법: 파일 무시하기 위한 완벽 가이드 (0) | 2024.09.03 |
[Git] 여러 커밋을 하나의 커밋으로 만들기: Git의 reset --soft 활용법 (0) | 2024.09.03 |
[Git] 필요한 커밋만 가져오는 Git Cherry-Pick 사용법 (0) | 2024.09.03 |