git
- 형상 관리 시스템(Verson Control System) 의 한 종류
- 주로 개발자들이 프로그램과 관련된 파일들을 저장하는 데 사용
commit
-게임의 세이브에 해당하는 행동
-커밋을 하려면 저장을 원하는 파일들을 묶어서 커밋 명령을 수행
add
- 스테이지에 파일을 올린다.
push
- github에 업로드 한다.
clone
- 원격 저장소(github)을 내 컴퓨터에 복사해온다.
코드뭉치버리기
- 마지막 커밋으로 돌아가고 싶을 때 사용
브랜치 (branch)
- 기능 변경을 하고 싶을 때 생성 및 사용
- 특정 커밋으로 돌아가고 싶을 때
머지 (merge)
-한 브랜치의 내용을 다른 브랜치에 반영
- 하나의 브랜치를 현재 브랜치와 합치는 것
-현재 브랜치 = 헤드(HEAD) 브랜치
체크아웃 (checkout)
-저장소에서 특정 커밋이나 브랜치로 돌아가고 싶을 때 사용
스테시
- 임시 저장 공간에 현재 작업 내용을 저장합니다.
- git에 업로드 되지 않은 파일은 스테시가 되지 않는다.
- 필요하다면 이전 커밋을 덮어쓰기도 가능하다.
revert
- 대상 커밋은 사라지지 않는다,
- 대상 커밋의 내용을 되돌린 새로운 커밋이 생긴다.
- 단점: 충돌이 날 가능성이 매우 높고, 어렵다.
- SourceTree 에서는 커밋 선택 – 우클릭 – 커밋 되돌리기
revert로 여러 커밋을 되돌리려면 어떻게 하나요?
- 최신부터 순서대로 revert를 반복 적용하면 됩니다
새로운 브랜치를 만들어 체크아웃하기
- 되돌릴 커밋 대상으로 브랜치를 생성 후 체트아웃
- 변경 사항 수정 후 커밋
- 마스터에 병합
rebase
- 병합과 마찬가지로 두 브랜치의 내용을 하나로 합치고 싶을 때 사용
- 기본 머지(병합)과 달리 트리가 더 깔끔하게 유지 됩니다.
- but 이미 원격에 있는 브랜치를 리베이스 하면 안된다. 충돌 가능성이 높고 위험.
git 가입하기
Source Tree 설치
https://www.sourcetreeapp.com/
git 연습하기
https://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