티스토리 뷰
1.Git 새 저장소 생성(Private)
2.Source Tree -> Git Private Repo 연동
3.Xcode Project -> Git Push
4.Git - Push,Pull,Pull Request,Merge
1.Git 새 저장소 생성은 할 수 있다는 전제.
2.Source Tree -> Git Private Repo 연동.
Source Tree 다운 -> Git 연동
Private는 OAuth로 계정을 연동해도 바로 보이지 않는다.(Git DeskTop과 다르다.)
에러 코드는 주로 OAuth로 계정 연동을 후에 3번을 진행하고 나서 Push를 할때,
"sourcetree fatal:reprository not found push"라고 나온다.
즉,저장소를 찾지 못한다는 구문이 나온다.
계정 화면에 들어가서 추가를 누른다.
New personal access token을 얻어서 두번째 사진의 '암호' 부분에 넣어준다.
여기서 주의 할 점은 Repo 체크 박스를 실제로 소스트리에서 사용 할 기능들을 모두 체크 해준다.
연동이 성공적으로 된다면 '원격' 리스트에 Private 저장소가 보일 것이다.
3.Xcode Project -> Git Push
Xcode Project가 생성 되었다는 전제 하에 진행.
로컬 저장소 생성을 누른다.
목적지 경로에 Xcode Project가 있는 경로를 넣어준다.
새로 생긴 저장소는 리스에 보여지게 된다.
이제 이 로컬 저장소를 원격으로 Git에 연동하는 작업을 할 것이다.
로컬 저장소를 더블클릭한다. 그후에 왼쪽에 보이는 목록에서 연동을 오른쪽 마우스로 클릭하고 새 연동을 클릭한다.
원격이름은 본인이 설정하고
URL/경로 에는 Git 저장소 URL을 등록한다.
주소를 카피해서 넣어준다.
처음 프로젝트를 Git에 올리는 것이므로 모두 선택을 하고 커밋을 한..하면 안된다.
현재 커밋을 하는 Source Tree의 브랜치는 Master이다.
하지만 Git에 생성된 Branch는 main이다.main에는 ReadMe가 생성되어있다.
Master 브랜치는 즉 현재 Xcode Project에는 ReadMe 파일이 없다.
없는 상태에서 커밋을 하고 푸쉬를 하게되면 Git에서는 비교할 사항이 없다고 PR(Pull Request)이 되지않는다.
ReadMe가 기준이 되어(같은사항과 다른사항을 비교한다) main과 master의 코드를 비교하고 main에 PR을 날려서
main이 master의 코드를 병합해야하는데 그러지 못하는것이다
이렇게 되면 main(최종적인 앱의 코드)에 master(앱의 기능을 만드는 브랜치)코드가 병합(Merge)되지 못한다.
만약 이대로 하게되면 Commit하고 Push를 한 후에
"fatal: refusing to merge unrelated histories"라는 코드를 보게 될 것이다.
해결방법은 현 master 브랜치에서 main의 ReadMe 파일을 풀(Pull)로 땡겨온다.
그러면 ReadMe 파일이 Xcode Project에 생성 될 것이다.
그후에 커밋을 하고 푸시를 한다.
Push를 하고 나면 Git 페이지에는 2개의 Branch가 보일 것이고,
브랜치를 master로 옮겨 보면
Xcode Project와 ReadMe 파일이 들어가 있는것을 확인 할 수 있다.
Git을 브랜치로 나누는 이유는 분업 한 후에 메인에 병합해서 배포를 하기 위함이 있다.
각자의 브랜치를 나누고 서로 다른 브랜치를 사용하지 않으며 최종 확인자가 main의 브랜치를 관리하고 병합하여 배포를 한다.
pull,push,merge,fetch 차이점과 브랜치안의 브랜치 생성?
master를 main에 병합시키는 방법은 두가지가 있다.
1 - main 브랜치가 master 브랜치를 병합한다.
2 - master 브랜치가 PR(풀 요청)을 하고 병합을 수락한다.
'Git' 카테고리의 다른 글
Git :: 기초 - Tag (0) | 2022.10.25 |
---|---|
Git - ssh접속//Source Tree,GitLab (Mac) (0) | 2021.11.17 |