페이지 선택

프로그램을 개발할 때 자신의 Code나 사용하고 있는 일부 Library를 수정하게 되는 경우가 있다.

본 장에서는 Local Repository의 변경 사항을 Remote Repository에 적용하는 방법에 대해 설명한다. .

 

 

1. Checking Local Project Status

Local Repository/Project에서 아직 Commit 되지 않은 모든 변경 사항음 다음과 같이 확인할 수 있다.  → 프로젝트 루트디렉터리> mxos status 

아래 결과에서 M으로 시작하는 변경 사항들은 Commit 하거나 Discard  할 수 있다.

 

$ mxos status

[mxos] Status for “helloworld”:

M helloworld/helloworld.c

[mxos] Status for “mxos-os”:

M platform/MCU/STM32F4xx/platform_init.c

 

 

 

2. Local Project 또는 Component 게시하기

Remote Repository와 Local Repository 간에 Version을 관리, 즉 동기를 맞추기 위해서는 Local Repository의 내용을 Publish 해야한다.

Publish는 다음의 과정으로 진행한다.

 

 

Step1. 원격서버에  신규저장소/원격저장소(repository)를 만든다. → ex) 자체, 호스팅서비스(GitHub, code.aliyun, 등) 또는 시스템 내의 다른 저장소

Step2. 경로를 Local Repository에 있는 Project의 Directory로 변경한다. → 예로, 경로를 /mico-os-example/local-lib 으로 변경한다.

Step3. Loca&Remote Repository를 결합한다. → /mico-os-example/local-lib> git remote add origin <url-or-path-to-your-remote-repo>  원격저장소의 URL

Step4. 게시한다. → /mico-os-example/local-lib>mxos publish  ← 의존성에 따라 재귀적으로, Nested Local Repository는 Leaf Repository부터 먼저 수행되는 방식

 

 

 

Forking Workflow

Git은 비대칭 워크플로(workflow)을 지원한다, 즉 게시(publis/push)한 원격저장소가 원본저장소와 다르게 할 수 있다는 것이다.

이를 통해 새 개정판을 원본저장소와 연결/연관성/동기를 유지한 채로 포크/파생 저장소(fork repository)에 배치 할 수 있게 된다.

이와 같은 기능을 하기 위해,

먼저 mxos OS 프로젝트, 컴포넌트 또는 mxos OS 자체를 가져오기 한 다음 게시 원격저장소와 너의 포크저장소를 링크 시킨다. → 아래의 명령을 사용

 

$ git remote set-url –push origin https://github.com/screamerbg/repo-fork.git

 

git 커밋(commit) 과 게시하기(push) 또는 mxos 게시하기(publish)를 사용하여 새 버전을 파생된 저장소에 게시할 수 있다.

또한  git pull 또는 mico update 명령을 사용해 새로운 버전을 원본저장소로부터 가져오기를 할 수도 있다.

파생저장소로 부터 명시적으로 당겨오기(pull)를 하려면 다음 명령을 사용할 수 있다.

 

$ git pull https://github.com/screamerbg/repo-fork [branch]

 

위에서 설명한 절차를 통해,

mxos Cube는 원본저장소와 파생저장소 간에 링크를 유지하며, 파생저장소(fork)로 게시한 수정해시(revision hash)의 참조(references)를 기록한다.

파생저장소에서 발생한 Pull Request가 원본저장소에서 승인되기 전까지는 모든 수정해시(revision hash)는 유효하지 않다.

Pull Request가 수락 되면 파생저장소의 버전이 원본저장소의 일부가 되고 그때야 비로서 링크가 유효해진다.

 

Viewed Page List