깃허브를 비롯한 각종 깃 소프트웨어의 사용 흐름은 이렇게 됩니다.
![]
클론은 깃 서버에 기록되어있는 코드를 내 컴퓨터에 불러오는 것입니다. 다만, 클론(복제)이라고 부르는 이유는 깃 서버와 내 컴퓨터의 클론된 코드는 같은 내용의 코드이지만 별개의 코드로 보기 때문입니다. 어느정도 완성한 코드를 수정하기위해 따로 복사해서 사용하는 행위라고 볼 수 있습니다.
커밋은 수정된 코드를 저장한 "분기점"으로 볼 수 있습니다. 코드를 짜고 저장한 것을 다시한번 기록으로 남기는 것인데, 이 기록은 시간에 따라 기록됩니다.
어느날 프로그램을 아침에 졸면서 개발하다가 수많은 버그를 냈습니다.
아무리 고쳐도 버그가 끊이질 않았고, 코드를 예전으로 되돌리는것이
훨씬 빠를 것 같습니다.
이 상황에서, 깃을 사용해서 코드를 커밋했다면 예전에 저장한 코드가 기록이 남아 이전 상태로 되돌리기 쉬울겁니다. 커밋이 꼭 이런 용도로만 쓰이는 건 아니지만, 이 예시는 일반적으로 커밋이 빛을 발할 때 중 하나입니다.
푸쉬는 커밋들을 깃 서버에 업로드하는 과정입니다. 커밋은 컴퓨터 내에서만 이루어지는데, 여러 명이 소스코드를 수정하는 경우 소스코드를 합치기 위해 온갖 방법을 사용해야할 것이고 가장 일반적인 방법은 인터넷에 업로드해서 한사람이 합치는 경우일 것입니다. 이 경우 푸쉬는 유용하게 사용됩니다. 소스코드를 백업하기 위해서도 사용하고요. 여튼, 가장 기본적인 이유는 깃허브 서버에 소스코드를 업로드하기 위해서 푸쉬합니다.
커밋이 내가 이걸 이렇게 수정했다고 기록하는 것이었다면, 푸쉬는 이를 알리는 과정입니다.
동기화는 깃 서버에 기록되어있는 코드를 내 컴퓨터에 불러오는 것입니다. 클론과 상당히 유사한데, 차이점이라고 해도 컴퓨터에 새로운 저장소 폴더를 만드냐 마냐 정도입니다. 푸쉬가 기록한 것을 알리는 것이라면 동기화는 다른이들이 그 내용을 받아적는 것이지요.