github desktop에서 publish는 한 상태이다.
왼쪽 상단에 Study가 있음을 확인할 수 있다.
저기를 누르게되면 VSCode로 Google Drive 레포지토리가 열리게 된다.
저번에 실습했던 내용이 담겨있다.
Commit - 변경 사항을 로컬 저장소에 기록
열린 VSCode의 파일의 내용을 수정해보면
위 처럼 내용을 수정을 하게 되면 github desktop에서 변경점을 확인한다.
위에 코드 추가가 된것이 보이는데, 만약 전으로 되돌리고싶으면
Discard changes를 실행해 주면된다.
실행하게 되면 원본 파일의 코드에서도 되돌아 간것을 확인 할 수 있다.
다시 돌아와서 이제 Commit을 하기 위해 commit의 제목, 설명을 작성한다.
내용을 작성 후 coomit to master를 클릭하면, History에 commit 한 내용이 보이게 된다.
하지만 github에서 확인해보면 코드도 변경되어 있지 않으며
Github에서 study의 commit 내용을 보게 되면 desktop에서 했던 commit의 내용은 보이지 않는다.
즉 local의 변경사항을 원격 저장소(github)에도 똑같이 알려줘야한다.
github desktop의 commit 들을 보면 옆에 화살표가 있는애가 있는데,
마우스를 올려보면 이 커밋은 원격 저장소에 푸쉬하지 않았다라는 내용을 알려준다.
추가적으로 Fetch Origin 에서 Push Origin으로 바뀐것을 알 수 있다.
버튼을 누르면 다시 Fetch origin으로 돌아오게 되며
깃허브의 코드에서도 내용이 변경된 것을 확인 할 수 있다.
Fetch - 원격 저장소와 로컬 저장소를 동기화(병합X)
github에서 코드가 바뀌었으면 로컬의 내용도 변경시켜주는 작업이다.
github에서 코드를 수정하고
Github Desktop에 들어가서 보면 fetch origin 부분이 변경되있거나 안되어있으면 눌러주자
github에서 변경된 뒤 1분정도 지나면 github desktop에서 자동으로 fetch origin에서 Pull origin으로 변경된다.
Pull origin을 누르기전에는 코드가 변경돼있지 않지만
Pull origin을 누르면 내 local에 원격 저장소에서 수정한 내용이 동기화 되게 된다.
History에도 나옴
아까 위에서 fetch는 병합을 하지 않는 동기화라고 했는데,
변경된 점을 찾는 동기화일뿐 실제로는 merge를 사용하여 원격과 local을 동기화 시켜줘야하는데
fetch와 merge를 한 번에 수행하는 것이 pull이다.