GitHub Desktop 폴더 선택에 대하여
GitHub Desktop 실행 후에 로그인을 합니다. 가입한 이메일 주소와 패스워드로 인증을 거칠 때 브라우저에서 확인을 합니다. 아래 화면은 브라우저에서 인증하는 과정입니다.
GitHub Desktop 설정창이 열리는데, 기본 설정이 무난합니다. 'Use my GitHub account name and email address'가 기본 옵션으로 설정됐습니다. 'Finish' 버튼으로 설정을 끝냅니다.
GitHub Desktop 초기 화면
자신의 저장소와 함께 GitHub Desktop에서 수행할 작업 목록들이 나타납니다. 제 경우는 통상 운영되고 있는 'HtmlCSS' 저장소를 복제할 것입니다. 제 학습 환경은 도서관 공용 컴퓨터를 사용하기 때문에 매번 복제하게 됩니다.
복제할 저장소를 선택하고 로컬 컴퓨터의 폴더 선택도 가능합니다. 기본 폴더는 사용자 폴더 안의 'Documents(문서)' 폴더입니다. 다른 폴더로 복제하고자 할 때는 'Choose' 버튼으로 폴더를 새롭게 선택할 수 있습니다.
복제할 폴더
복제할 폴더가 GitHub Desktop과 CLI용 'git'과 차이가 있을 수 있습니다. CLI용에서는 터미널 창에 사용자 폴더만 열려 있습니다. CLI용에서 GUI용과 보조를 같이 하려면 문서 폴더로 이동하여 'GitHub' 폴더를 생성하고 복제하면 됩니다.
복제가 끝나면 원격과 로컬에 차이가 없기 때문에 다음과 같은 화면이 나타납니다. 이 상태는 완벽하게 동일한 상태를 의미합니다.
파일의 변경과 GitHub Desktop 상태
파일이 변경되거나 삭제 또는 생성 됐을 때, GitHub Desktop은 민감하게 반응합니다.
바이너리 파일이 변경됐다는 메시지가 화면에 팝업 되면서 상태를 아이콘으로 알려줍니다. 마이너스 형태의 빨간 아이콘은 파일을 삭제한 경우입니다.
더 알아봅니다.
각각의 변경 사유가 아이콘으로 표시되어 상태를 직관적으로 파악할 수 있습니다. 변경된 상태를 원격과 동기화시키기 위해서는 Commit과 Push를 통해 가능합니다.
커밋(Commit)과 푸시(Push)
커밋은 Git에서 작업을 로컬 저장소의 기록으로 확정하는 것을 말합니다. 프로그래머가 코드를 수정하거나 새로운 파일을 추가했을 때, 이러한 변경 사항들을 '스테이징(Staging)' 상태로 두고, 준비가 되었을 때 모든 변경 사항들을 하나의 커밋으로 만들어 로컬 저장소의 이력에 추가합니다. 커밋을 할 때는 어떤 변경 사항을 포함하는지에 대한 메시지를 함께 기록하여, 나중에 다른 개발자들이 그 변경 사항의 의도와 내용을 쉽게 파악할 수 있게 합니다.
커밋을 통해 만들어진 기록은 다음과 같은 정보를 포함합니다:
- 변경 사항의 내용
- 커밋을 수행한 개발자의 식별 정보
- 커밋이 일어난 날짜와 시간
- 커밋 메시지
커밋은 로컬 저장소에만 영향을 미치며, 이 변경 사항들을 원격 저장소와 동기화하려면 '푸시' 작업을 수행해야 합니다.
푸시는 로컬 저장소에서 원격 저장소로 커밋된 이력을 전송하는 과정입니다. 이를 통해 개인이 로컬에서 작업한 내용을 원격 저장소에 공유할 수 있습니다. 원격 저장소는 보통 여러 사람이 함께 사용하는 중앙 서버의 역할을 하며, GitHub, GitLab, Bitbucket과 같은 서비스에서도 같은 개념이 사용됩니다.
푸시를 할 때, Git은 로컬 저장소의 커밋 이력과 원격 저장소의 이력을 비교합니다. 로컬 저장소에 있는 새로운 커밋들이 원격 저장소에 없다면, 이 커밋들을 원격 저장소에 추가합니다. 만약 다른 사람이 이미 원격 저장소에 새로운 커밋을 푸시했다면, 충돌이 발생할 수 있으며 이 경우 일반적으로 먼저 원격 저장소의 변경 사항을 로컬 저장소로 '풀(Pull)'한 후에 자신의 변경 사항을 다시 푸시합니다.
커밋과 푸시가 순조롭게 이뤄지면 아래와 같이 깨끗한 화면이 나옵니다. 더 이상 원격과 차이가 없다는 것을 얘기합니다.
정리
커밋과 푸시의 주된 차이점은 커밋이 로컬 변경 사항을 저장하는 반면, 푸시는 이러한 변경 사항을 원격 저장소와 공유한다는 것입니다. 커밋은 개발의 한 단계를 마치는 '저장'과 같은 것이고, 푸시는 그 '저장된' 변경 사항들을 다른 사람과 '공유'하는 단계라고 볼 수 있습니다.
'컴퓨터 활용 > 노년에 즐기는 코딩' 카테고리의 다른 글
[git] `git push --set-upstream origin main` 의 의미 (153) | 2024.02.05 |
---|---|
[git] 저장소(Repository)와 프로젝트 차이 (102) | 2024.02.01 |
[git] Git에서 글로벌 사용자와 로컬 사용자 (134) | 2024.01.31 |
[git] Git 기본 명령어와 사용법 (197) | 2024.01.30 |
[Markdown] MD 파일에서 링크 걸기 (141) | 2024.01.21 |
댓글