[Udemy 강의] git/github 강의(명령어 위주)
들어가기에 앞서
[Udemy 강의] 카테고리에서는 Udemy에서 배우는 내용들을 간단히 정리할 계획입니다.
이번 포스팅은 아래 강좌의 내용입니다.
Colt Steele님의 ‘Git 필수 명령어와 함께 Rebase, Squash, Stash, Reflog, Blob, Tree와 같은 고급 기능까지 한번에 마스터!’
오늘 포스팅은 섹션1~14까지의 내용을 전부 수강하고 작성하는 것입니다. 나중에 기억을 하기 위해서 적는 것이 목표이므로 상세한 설명보다는 명령어 위주로 작성될 것 같습니다.
간단한 정리
시간관계상 섹션14까지 수강하였고 관련 명령어만 간단히 적어보려합니다.
초반 설정 명령어
git --version
git config user.name
git config user.email
기본 명령어
git status
git init
git add file1 file2
git add .
git commit
git commit -m "message"
git log
git log --oneline
커밋 관련 명령어
git commit --amend # 가장 최근에 커밋한 것에 문제가 있을 때, 이름 수정 or 파일 추가해서 커밋 가능
.gitignore 파일을 만들어 secret 파일들은 커밋안되게 설정 가능함
branch 명령어
git branch
git branch <name>
git switch <name>
git checkout <name> # git switch <name>과 같은 기능
git switch -c <name>
git branch -v # 자세한 정보
merge 명령어
git merge <name> # 해당 branch에서 <name>을 merge
diff 명령어
git diff
git diff --staged
git diff --cached
git diff HEAD <filename>
git diff --staged <filename>
git diff branch1..branch2
git diff commit1..commit2
stash 명령어
git stash
git stash pop
git stash apply
git stash -u
git stash list
git stash apply stash@{2}
git stash drop stash@{2}
git stash clear
stash는 임시저장하는 느낌이고, 주로 git stash / git stash pop만 자주 쓴다고 합니다.
변경사항 취소 및 시간 되돌리기
git checkout <commit-hash> # detached head로 돌입
git checkout Head~1
git checkout Head <file> # 변경사항 되돌리기
git checkout -- <file> # 위 명령어와 같은 기능
git restore <file> # 변경사항 되돌리기
git restore --source HEAD~! <file>
git restore --staged <file> # staging에서 file 삭제하는 법
git reset <comit-hash> # 이후 커밋들 모두 삭제, but 변경사항들(현재 repo 상태)는 Working Directory에 유지됨
git reset --hard <commit-hash> # 커밋, 변경사항 모두 삭제(Working Directory에도 남아있지 않음)
git revert <commit-hash> # 이전 커밋을 새로 커밋
git reset은 다른 branch로 옮기고 싶을 때 사용할 수 있을 것 같습니다.
github 명령
git clone <url>
# remote
git remote
git remote -v
git remote add <name> <url>
git branch -r # origin/master 같은 항목 보임
# Push example
git push origin master
git push -u origin master # git push로 가능해짐
# fetch (github 변경사항을 local repo까지 가져옴)
git fetch <remote> # remote의 모든 변화 가져옴
git fetch <remote> <branch>
# pull (github 변경사항을 바로 내 커밋에 적용시킴)
git pull <remote> <branch>
git pull # 현재 branch에 default remote꺼를 가져옴
명령어 외 Github 내용들
- README.md 파일로 해당 repo 소개가 가능합니다.
- Github Gists로 간단한 소스코드나 문서를 공유 가능합니다.
- gh pages로 해당 repo의 project site를 만들 수 있습니다.
username.github.io/repo-name - Pull Request(PR)로 main/master 브랜치에 합병요청을 할 수 있습니다.
- Fork를 통해 내 Github 계정으로 다른 사람의 repo를 복사해서 가져올 수 있습니다. (local repo는 clone을 통해 복사해야 합니다.)
원본 repo에 push는 불가능하지만 PR을 통해 기여가 가능합니다.
또한, upstream remote를 통해 원본 repo에서 pull해오는 것이 가능합니다.
후기
git, github에 대해 하나도 모르던 상태에서 이제 어느덧 ‘‘괜찮게 사용할 수 있지 않을까?”라는 상태까지 온 것 같습니다. 앞으로 프로젝트에 git, github을 직접 사용해보면서 실전연습을 할 계획입니다.
진짜 잘 가르쳐주신 Colt Steele님께 감사의 말씀을 드립니다.
뒤의 15~20섹션을 수강하지 않은 이유는 일단 최소한의 중요한 내용들을 수강하는 것을 목표로 잡았기 때문입니다.
다른 우선순위가 높은 해야할 일이 많기 때문에 git/github은 여기서 마치려 합니다. 나중에 모르는 내용이 나왔을 때는 구글링해서 알아볼 생각이구요.
지금까지 git, github 간단한 명령어 정리 및 후기였습니다. 감사합니다.
댓글남기기