
오늘은 AndroidStudio에서 프로젝트와 github를 연동하고
commit, push, pull 기능을 사용하는 방법까지 정리해보려 합니다!
git이 PC에 설치되어있지 않다면
https://git-scm.com/download/win
에서 설치해줍시다.


세팅은 기본으로 해주되, github에서는 기본 브랜치 이름을 main으로 사용하기를 권장하기 때문에
중간에 기본 브랜치 이름만 main으로 바꾸어 입력해주었습니다.

android 스튜디오 실행 후
github에 올릴 프로젝트를 연 뒤 'File' - 'Settings' 를 클릭합니다.

'Version Control' 탭의 'Git' 을 클릭한 후 Test 버튼을 눌러줍니다.
git이 정상적으로 PC에 설치되어 있다면 밑줄 친 부분처럼 git 버전이 표시됩니다.

이어서 'GitHub' 탭의 'Log in with Token..' 을 눌러줍니다.

위와 같이 github 계정에 연동하기 위한 토큰을 입력하는 창이 뜹니다.
토큰은 github 사이트에서 생성하여 받아옵니다.

github에 로그인 후
우측 프로필 클릭 > 'Settings' 를 클릭합니다.

스크롤을 내리다 보면 나오는 'Developer settings' 를 클릭합니다.

'Personal access tokens' > 'Tokens(classic)' 탭에서
'Generate new token(classic)' 을 찾아 클릭합니다.
그러면 패스워드를 입력하는 창이 뜨는데 입력해줍시다.

발급받을 Personal Token에 대한 설정을 하는 화면입니다.

확인 버튼을 누르면 토큰 발급이 완료되었습니다.
발급된 토큰 넘버는 이 화면을 벗어나면 다시는 볼 수 없으므로 복사하여 다른 곳에 메모해두어야 합니다!!

다시 안드로이드 스튜디오로 돌아가서, 방금 생성한 토큰 넘버를 붙여넣기 해주면 github 계정과 연결이 완료됩니다!

github 홈페이지에서 코드를 업로드할 repository를 생성합니다.

만든 repository의 HTTPS주소를 복사해줍니다.

안드로이드 스튜디오로 돌아가 상단 메뉴의 'VCS' > 'Enable Version Control integration..' 을 클릭해줍니다.

그러면 local repository가 생성되고 파일명이 이렇게 빨간색으로 바뀝니다.
파일명의 색깔은 파일의 상태(커밋, 수정 여부)에 따라 변하게 됩니다.

프로젝트 폴더로 가보면 local repository(.git 폴더)가 생성되어 있는 것을 확인할 수 있습니다.

또한 상단 메뉴바의 VCS가 Git으로 바뀌어있는 것을 확인할 수 있습니다.
'Git' > 'Manage Remotes..' 를 클릭합니다.


+를 눌러 아까 복사한 github 저장소 url을 입력해줍시다. (참고로 url은 .git으로 끝나야 합니다.)
프로젝트와 github repository가 연결되었습니다!


상단 메뉴의 'Git' > 'commit' 을 누르게 되면 아래쪽 이미지와 같은 창이 뜹니다.
Changes 에서 파일을 체크할 수 있고 체크하면 해당 파일이 add(스테이징)됩니다.
add된 파일들을 commit 메시지와 함께 커밋할 수 있습니다.

제가 첫 커밋을 시도했을 때는 Checks failed 라는 메시지와 함께 커밋에 실패하였는데요,
이후 'Commit anyway' 버튼을 누르니 정상적으로 커밋 되었습니다.

완료된 커밋 내역은 하단의 Git 메뉴에서 확인할 수 있습니다.

커밋 되어진 파일들은 파일명이 흰색으로 표시되게 되고
변경사항이 있는 파일들은 하늘색 글씨로 표시되게 됩니다.
또한 새로 만들어져 아직 추적되고 있지 않은 파일들(unversioned)은 빨간 글씨로 표시되게 됩니다.


상단 메뉴의 'Git' > 'push' 를 클릭하면 github 저장소로 프로젝트의 변경 내용을 push 할 수 있습니다.
github 저장소에 들어가 보면 실제로 코드가 push 되어진 것을 확인할 수 있습니다.

상단 메뉴의 'Git' > 'pull' 로 github 저장소의 코드를 받아올 수 있습니다.
git 명령은 터미널을 통해 사용해도 됩니다!
저는 내부 메뉴를 이용하는 것이 편할 것 같아 정리해보았습니다.😊