[Swift] Xcode와 Github 연동하기

contea95·2021년 7월 5일
12
post-thumbnail

안녕하세요. 오늘은 Xcode와 Github를 연동하는 방법을 알아보겠습니다.

우선 Github에 대해서 간단하게 알아보자면, 프로그램을 제작하면서 추가되거나 빠지는 내용을 버전별로 관리할 수 있고, 팀원들 간 협업을 할 때 코드 비교, 히스토리 등 많은 유용한 기능을 제공하는 코드 호스팅 플랫폼입니다. 이는 개발자라면 무조건 사용해봐야 하는 것이지요!

그럼 이 중요한 Github를 Swift에 빠질 수 없는 IDE인 Xcode에 연동하여 버전 관리를 해봅시다!

1. Xcode에 계정 등록

먼저 Xcode - Preferences - Accounts 에서 왼쪽 아래에 있는 '+' 버튼을 누릅니다.
Preferences

Accounts

그 다음 뜨는 창에서 'GitHub'를 선택하고, Continue를 눌러줍니다.
Github

그러면 Github 계정 이메일과 Token을 요구합니다.
Account, Token

여기서 토큰이란, ID와 PASSWORD로 사용자를 인증하는 방식이 아닌, 해당 사용자가 인증한 토큰이라는 것을 발급하여 이 토큰을 통해 사용자가 유효한 사용자인지 아닌지 검사할 때 사용합니다. 이를 통해 세션을 유지하지 않아도 되고, 사용자의 요청할 때만 작업을 처리하므로 무엇보다 간단합니다.

그러면 그 다음 깃허브의 토큰을 생성해봅시다.

2. 깃허브 토큰 생성하기

우선 Github 사이트에 들어가서
Github

Settings > Developer settings 로 들어가주세요.

Generate new token

Personal access tokens > Generate new token을 눌러주세요.
그 후 요구하는 비밀번호를 입력한 후 다음 화면으로 넘어가겠습니다.

token generate

다음 화면입니다. Note에는 자기가 이 토큰을 구분할 수 있는 이름으로 설정해주세요.
우리는 Xcode에 연동할 토큰을 만들 예정이니 'Xcode Integration'으로 설정하겠습니다.

그 다음 'Select scopes'는 이 토큰으로 어디까지 접근을 할 수 있는지 권한을 설정하는 부분입니다. 저희는 레포지토리에 push 및 기타 작업을 할 것이기 때문에 repo 부분만 체크를 해줍니다. 그러면 그 아래 나머지 부분이 자동으로 체크되는 것을 볼 수 있습니다!

token

그러면 해당 토큰이 나오는 것을 볼 수 있습니다. 이 토큰 주소는 나의 레포지토리 접근 권한을 가지기 때문에 다른사람에게 주소를 노출해서는 안됩니다!!
그러면 옆에 복사버튼을 눌러 주소를 복사하도록 합니다.

그 후 다시 Xcode로 돌아가겠습니다

3. Xcode와 GitHub 연동 마무리

token input

깃허브 이메일과 방금 복사한 토큰을 가지고 입력을 해주세요.

end

그럼 Xcode Accounts에 GitHub계정이 연동된 것을 볼 수 있습니다.

한번 새로운 프로젝트를 생성해보겠습니다.
project create

no.git

해당 파일 내 .git 폴더가 없으면 'Source Control'에 체크박스가 뜨게 됩니다. 이는 새로운 Git 레포지토리를 만들겠냐고 물어보는 체크박스입니다. 이를 체크하고 Create 버튼을 누르게 되면 새로운 레포지토리가 되는 폴더가 만들어지게 됩니다.

.git

이 그림은 해당 폴더 내 이미 .git 폴더가 존재하는 경우입니다. 이 폴더는 이미 GitHub 레포지토리에 올라와 있으므로, 변경하면 그 내용을 'push'하기만 하면 됩니다.

4. 연동된 GitHub 계정에 새로운 레포지토리 만들어보기

그러면 새로운 폴더에 레포지토리를 생성해보겠습니다.

sourceNavigator

그 후 Navigator에 Source Control Navigator 영역을 클릭해봅시다.

remote

왼쪽 아래 하단의 톱니바퀴 모양의 버튼을 누른 후 New "(프로젝트 이름)" Remote...를 눌러줍니다.

remote menu

이 창에서 레포지토리 이름이나, 설명, 다른 사람에게 보여줄지(Public)/안보여줄지(Private)를 선택할 수 있습니다.

Create를 누르시고 기다린 후 GitHub의 레포지토리 리스트를 들어가보면
repository

해당 이름으로 추가가 된 것을 볼 수 있습니다.

source Control

또 다른 GitHub에 대한 기능들은 Source Control 부분에 있습니다.

그리고 소스 코드에 대한 변경을 해보겠습니다.

changecode

해당 바뀐 코드는 줄을 나타내는 숫자 왼쪽에 파란 선이 있어 바뀐 부분을 알려주고, 클릭한 후 바뀐 점을 볼 것인지, 해당 변경을 다시 되돌릴것인지 선택할 수 있습니다.

그 후 Source Control > Commit... 을 해보겠습니다.

commitpush

바뀐 코드의 부분을 볼 수 있고 추가된 부분과 빠진 부분을 파란색으로 감싸주어 어디가 바뀌었는지 볼 수 있습니다.

Commit을 하기 위해서는 해당 변경점에 대한 Commit Message를 적어야 완료가 됩니다.

왼쪽 아래 Push to remote는 이 커밋을 적용할 브랜치를 선택하는 곳입니다. 현재는 origin/main 브랜치밖에 없지만 다양한 브랜치를 추가하면 선택을 할 수 있는 부분입니다.

5. 새로운 브랜치 생성하기

하나의 브랜치(master, origin/main)에서만 변경을 하게되면 팀과의 협업의 의미가 사라지게 되고, 서로가 같은 부분을 수정할 때 코드가 꼬여 문제가 생기게 됩니다. 이 때 각 팀원이 변경하는 부분의 코드를 수정하기 전에 브랜치라는 새로운 나뭇가지를 추가해 수정하면 이런 문제에 직면하는 것을 방지할 수 있습니다.

그러면 브랜치를 생성하는 방법을 알아봅시다.

branch1

탭 중 'Show the Source Control Navigator'에 Branches 폴더의 main에 오른쪽 클릭을 한 후 Branch from 'main'... 을 클릭합니다. 이는 main의 내용과 똑같은 브랜치를 생성한다는 것이며, 꼭 main을 기준으로 브랜치만 가능한 것이 아닌, 다른 생성한 브랜치에서도 생성이 가능합니다.

branch2

해당 브랜치명을 적고 Create를 눌러봅시다.

branch3

저는 브랜치명을 feat/test처럼 폴더/브랜치이름 으로 해놓았습니다. 그렇기때문에 이 브랜치는 feat 내의 test라는 브랜치가 생성이 된 것입니다.
생성 시 생성한 브랜치로 이동하기 때문에 main으로 이동하기 위해선 main브랜치 오른쪽 클릭 후 Checkout... 을 누르면 이동할 수 있습니다.

후기

이렇게 Xcode와 GitHub를 연동해서 작업할 수 있는 방법을 알아보았습니다.
저는 원래 터미널 CLI로 모든 깃허브를 관리하고, Source Tree나 Github Desktop으로 코드가 꼬여버릴 때 사용하곤 합니다.

이제는 이렇게 Xcode 내에서도 GitHub와 연동하여 바로바로 올릴 수 있게 설정해놓으니 한번 익숙해지도록 노력을 해봐야겠습니다.

감사합니다.

profile
하루에 하나씩이라도

0개의 댓글