Presentation is loading. Please wait.

Presentation is loading. Please wait.

5i. Use of gitHub for GSICS developments

Similar presentations


Presentation on theme: "5i. Use of gitHub for GSICS developments"— Presentation transcript:

1 5i. Use of gitHub for GSICS developments
Jin Woo KMA

2 Overview From Peter’s presentation, 2015 GDWG meeting
To share the codes and tools, the usage of version control software was proposed in last GSICS meeting. To discuss and define the “How”, “By Whom” and “Until When” of implementing the version controlling system such as github for supporting GPRCs activities. From Hyunjong’s presentaton, 2016, GDWG meeting Most GPRC said that github is possible and good for us. How to & Who will implement it? use github or gitbucket instead of operate git server If GDWG goes with github, who will administrate the implementation of it? What would be the timeline of its implementation? Code licensing may be a point to discuss 지난 회의에서 소스코드 및 형상관리 프로그램으로 git과 svn을 kma의 mr.oh 가 리뷰하였고 Github를 사용하는 것으로 이야기 됨

3 Short review on SVN vs. Git
Category SVN Git Type Centralized (central repository) Distributed (local repository) Speed (push/pull) Slow Fast Meaning of Branch Directories including Pointer to a certain version Commit Only possible on-line Instantly to the central repository Ascending version number Possible even if off-line Recorded in local repository Hashed string is used Sharing works Automatically shared by commit Nothing uploaded automatically

4 git vs. github git : Git is a piece of software that you install locally on your computer which handles 'version control' for you github : literally a hub for Git repositories. github gives you a bunch more features, like a nice website to allow you to compare changes and administrate user accounts - hosting, issue tracking, code review, and etc..

5 GitLab vs. GitHub vs. Bitbucket
To view Comparison of github vs. gitlab vs. bitbucket Goto

6 Example of github service : price_2017

7 What should we do to make progress?
htps://git-scm.com/book/en/v2 ProGit Contributing to a project(Design project) Active contributor count : how many users are actively contributing code to this project, and how often? Chosen workflow(Distributed Workflows) : Centralized Workflow, Integration-Manager Workflow, Dictator and Lieutenants Workflow Your commit access : need policy Possibly the external contribution method : If not, we can use GitLab(KMA)

8 What should we do to make progress?
GitHub Operational Policy Goals Configuration management(codes, tools), issue tracking(GDWG action) Who User(All developers(#) or Agency representatives in GDWG group ?) Administrator What Operational code, s/w, tools, action items, etc. Copyright ? Activation plan Collaboration project KMA’s GitLab Only for intranet user(security policy) 활발히 기여하는 개발자의 수가 얼마인지, 선택한 Workflow가 무엇인지, 각 개발자에게 접근 권한을 어떻게 부여했는지, 외부에 서도기여할수있는지등이변수다 비공개팀플-모든 개발자가 공유 레파지토리에 쓰기 권한(외부접근가능, 소스만 비공개) 공개팀플-관리자만 쓰기권한(관리자의 임무가 늘어남, fork) 프로젝트관리 format-patch 명령으로 생성한 Patch를 이메일로 받아서 프로젝 트에 Patch를 적용 프로젝트의 다른 리모트 저장소 로부터 변경 내용을 Merge 하는 것 버전네이밍 룰-전체? Or 그룹별?

9 Support to GDWG Activities
KMA’s GitLab Web Only for intranet user(security policy)

10 End of Presentation: Thank you for your attention
WMO GSICS Portal GSICS Coordination Centre - GSICS Product Catalog - EUMETSAT’s Data and Management Server

11 Appendix : Strong Points of Git
Separations of remote repository and Local repository Distributed processing, safe data, speed Staging area Separate commit objects Snapshot Branch, merge

12 Appendix : Distributed Workflows
Centralized Workflow

13 Appendix : Distributed Workflows
Integration-Manager Workflow

14 Appendix : Distributed Workflows
Dictator and Lieutenants Workflow

15 Appendix : Basic git commands
Git task Notes Git commands Tell Git who you are Configure the author name and address to be used with your commits. Note that Git strips some characters (for example trailing periods) from user.name. git config --global user.name "Sam Smith" git config --global user. Create a new local repository git init Check out a repository Create a working copy of a local repository: git clone /path/to/repository For a remote server, use: git clone

16 Appendix : Basic git commands
Git task Notes Git commands Add files Add one or more files to staging (index): git add <filename> git add * Commit Commit changes to head (but not yet to the remote repository): git commit -m "Commit message" Commit any files you've added with git add, and also commit any files you've changed since then: git commit -a

17 Appendix : Basic git commands
Git task Notes Git commands Status List the files you've changed and those you still need to add or commit: git status Connect to a remote repository If you haven't connected your local repository to a remote server, add the server to be able to push to it: git remote add origin <server> List all currently configured remote repositories: git remote -v

18 Appendix : Basic git commands
Git task Notes Git commands Branches Create a new branch and switch to it: git checkout -b <branchname> Switch from one branch to another: git checkout <branchname> List all the branches in your repo, and also tell you what branch you're currently in: git branch Delete the feature branch: git branch -d <branchname> Push the branch to your remote repository, so others can use it: git push origin <branchname> Push all branches to your remote repository: git push --all origin Delete a branch on your remote repository: git push origin :<branchname>

19 Appendix : Basic git commands
Git task Notes Git commands Update from the remote repository Fetch and merge changes on the remote server to your working directory: git pull To merge a different branch into your active branch: git merge <branchname> View all the merge conflicts: View the conflicts against the base file: Preview changes, before merging: git diff git diff --base <filename> git diff <sourcebranch> <targetbranch> After you have manually resolved any conflicts, you mark the changed file: git add <filename>

20 Appendix : Basic git commands
Git task Notes Git commands Tags You can use tagging to mark a significant changeset, such as a release: git tag <commitID> CommitId is the leading characters of the changeset ID, up to 10, but must be unique. Get the ID using: git log Push all tags to remote repository: git push --tags origin

21 Appendix : Basic git commands
Git task Notes Git commands Undo local changes If you mess up, you can replace the changes in your working tree with the last content in head: Changes already added to the index, as well as new files, will be kept. git checkout -- <filename> Instead, to drop all your local changes and commits, fetch the latest history from the server and point your local master branch at it, do this: git fetch origin git reset --hard origin/master Search Search the working directory for foo(): git grep "foo()"

22 Appendix : The GitHub Flow
Forking Projects : If you want to contribute to an existing project to which you don’t have push access, you can “fork” the project. When you “fork” a project, GitHub will make a copy of the project that is entirely yours; it lives in your namespace, and you can push to it. Here’s how it generally works: 1. Fork the project 2. Create a topic branch from master. 3. Make some commits to improve the project. 4. Push this branch to your GitHub project. 5. Open a Pull Request on GitHub. 6. Discuss, and optionally continue committing. 7. The project owner merges or closes the Pull Request.


Download ppt "5i. Use of gitHub for GSICS developments"

Similar presentations


Ads by Google