git
- 형상 관리 시스템(Verson Control System) 의 한 종류
- 주로 개발자들이 프로그램과 관련된 파일들을 저장하는 데 사용
commit
-게임의 세이브에 해당하는 행동
-커밋을 하려면 저장을 원하는 파일들을 묶어서 커밋 명령을 수행
add
- 스테이지에 파일을 올린다.
push
- github에 업로드 한다.
clone
- 원격 저장소(github)을 내 컴퓨터에 복사해온다.
코드뭉치버리기
- 마지막 커밋으로 돌아가고 싶을 때 사용
브랜치 (branch)
- 기능 변경을 하고 싶을 때 생성 및 사용
- 특정 커밋으로 돌아가고 싶을 때
머지 (merge)
-한 브랜치의 내용을 다른 브랜치에 반영
- 하나의 브랜치를 현재 브랜치와 합치는 것
-현재 브랜치 = 헤드(HEAD) 브랜치
체크아웃 (checkout)
-저장소에서 특정 커밋이나 브랜치로 돌아가고 싶을 때 사용
스테시
- 임시 저장 공간에 현재 작업 내용을 저장합니다.
- git에 업로드 되지 않은 파일은 스테시가 되지 않는다.
- 필요하다면 이전 커밋을 덮어쓰기도 가능하다.
revert
- 대상 커밋은 사라지지 않는다,
- 대상 커밋의 내용을 되돌린 새로운 커밋이 생긴다.
- 단점: 충돌이 날 가능성이 매우 높고, 어렵다.
- SourceTree 에서는 커밋 선택 – 우클릭 – 커밋 되돌리기
revert로 여러 커밋을 되돌리려면 어떻게 하나요?
- 최신부터 순서대로 revert를 반복 적용하면 됩니다
새로운 브랜치를 만들어 체크아웃하기
- 되돌릴 커밋 대상으로 브랜치를 생성 후 체트아웃
- 변경 사항 수정 후 커밋
- 마스터에 병합
rebase
- 병합과 마찬가지로 두 브랜치의 내용을 하나로 합치고 싶을 때 사용
- 기본 머지(병합)과 달리 트리가 더 깔끔하게 유지 됩니다.
- but 이미 원격에 있는 브랜치를 리베이스 하면 안된다. 충돌 가능성이 높고 위험.
git 가입하기
Build software better, together
GitHub is where people build software. More than 50 million people use GitHub to discover, fork, and contribute to over 100 million projects.
github.com
Source Tree 설치
https://www.sourcetreeapp.com/
Sourcetree | Free Git GUI for Mac and Windows
A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac.
www.sourcetreeapp.com
git 연습하기
https://learngitbranching.js.org/
Learn Git Branching
An interactive Git visualization tool to educate and challenge!
learngitbranching.js.org
-- 추가(20200811)
새브랜치로 이동
git checkout [브랜치명]
git merge bugFix(합치고자하는 상대 브랜치)
bugFix의 내용을 마스터와 합체
git rebase master
마스터(부모)를 bugFix와 합체
git rebase bugFix
HEAD : 현재 작업중인 커밋
git checkout c1
부모(헤드)
git checkout master^
조부모(헤드)
git checkout master^^
상대 참조(4칸위)
git checkout HEAD~4
브랜치 강제 옮기기(-f)
git branch -f master HEAD~3
리셋
git reset HEAD~1
revert(되돌리기)
git revert HEAD
-----------------------------------------
헤드 아래에 있는 일련의 커밋들에 대한 복사본 만들기
git cherry-pick c2 c4
UI 선택해서 복붙
git rebase -i HEAD~4
git rebase -i overHere
git clone
o/ < 원격저장소 이름
git checkout origin/master; git commit
원격저장소에서 데이터를 가져오는 방법(동기화)
git fetch
fetch 후 merge 하는 작업
git pull
git clone
git fakeTeamwork 2
git pull
내보내기
git push
최신상태로 돌리기
git fetch; git rebase o/master; git qush
git fetch; git merge o/master; git push
git pull --rebase; git push
git pull; git push