clone
깃헙에 있는 원격 저장소를 내 컴퓨터로 복사한다.
git clone [주소]
commit
아까 위에서 깃은 게임의 세이브 포인트처럼 저장된 시점으로 되돌아갈 수 있다고 했는데, 여기서 저장하는 행위가 바로 커밋이다.
커밋을 하려면 원하는 파일들을 묶어서 커밋해야 한다.
git commit -m "message"
add
커밋을 하기 위해서는 파일들을 묶어야 한다고 했는데, 스테이지(stage)에 파일들을 올리는 것을 뜻한다.
해당 작업은 add 명령어로 수행할 수 있다.
git add *
status
현재 수정된 파일들이 스테이지에 올라갔는지 그 상태를 확인할 수 있는 명령어다.
git status
push
내가 작업한 커밋들을 깃헙(원격 저장소)에 업로드한다.
git push
checkout
저장소에서 특정 커밋이나 브랜치로 돌아가고 싶을 때 사용, 브랜치 변경
git checkout [브랜치]
branch
기능 변경을 하고 싶을 때 생성 및 사용, 브랜치 생성
git branch [브랜치 이름]
merge
한 브랜치의 내용을 다른 브랜치에 반영, 현재 브랜치와 지정 브랜치 합병
git merge [브랜치]
rebase
merge처럼 브랜치 병합할 때 사용한다.
이전 브랜치 기록이 남아있지 않는다.
- 장점: 커밋 히스토리가 깔끔하게 정리된다.
- 단점: 위험하다. 이미 원격 저장소에 올라간 경우 또는 협업을 하고 있는 경우 특히 위험하다.
Source Tree
"재배치"
pull = fetch + merge
따라서 pull할 때도 충돌 발생 가능
브랜치 병합할 때 충돌 안 나려면 합병하려는 파일이 서로 다른 파일이어야 함.
같은 파일이 존재할 경우, 즉 같은 파일을 수정한 경우 충돌 가능성 높음.
📌 커밋 되돌리기
reset
git reset --hard
- 장점: 쉽다.
- 단점: 커밋이 완전 삭제되고, 강제 푸시가 필요하다.
강제 푸시
git push --force
Source Tree
되돌아가려는 커밋 선택 후 [우클릭-이 커밋까지 현재 브랜치를 초기화-Hard]
브랜치를 만들어서 되돌리기
- 혼자 깃을 쓸 때 좋다.
- reset과 달리 커밋이 사라지지 않는다.
...
- 장점: 쉽다.
- 단점: 트리가 지저분해진다.
Source Tree
되돌아가고자 하는 커밋에서 브랜치 생성 후 merge
revert
- revert 대상 커밋은 사라지지 않는다.
- revert 대상 커밋의 내용을 되돌린 새로운 커밋이 생겨난다.
- 장점: 이전 커밋 기록이 다 남아 있다.
- 단점: 충돌 날 가능성이 매우 높다. 다소 어렵다.
Source Tree
커밋 선택 후 우클릭-커밋 되돌리기
깃 명령어 연습 사이트
https://learngitbranching.js.org/