5i. Use of gitHub for GSICS developments

Slides:



Advertisements
Similar presentations
An Introduction By Sonali and Rasika.  Required for the project  Show the versions of your code in the course of development  Show versions of your.
Advertisements

Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
1 CSE 390 “Lecture 11” Version control with Git slides created by Ruth Anderson, images from
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
علیرضا فراهانی استاد درس: جعفری نژاد مهر Version Control ▪Version control is a system that records changes to a file or set of files over time so.
With Mercurial and Progress.   Introduction  What is version control ?  Why use version control ?  Centralised vs. Distributed  Why Mercurial ?
Peter Ogden and Josh Levine.  Motivation  High level overview  Walk through the common operations  How not to break things (too badly)
Git – versioning and managing your software L. Grewe.
GIT An introduction to GIT Source Control. What is GIT (1 of 2) ▪ “Git is a free and open source distributed version control system designed to handle.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.
Version Control Systems academy.zariba.com 1. Lecture Content 1.What is Software Configuration Management? 2.Version Control Systems (VCS) 3.Basic Git.
…using Git/Tortoise Git
Git workflow and basic commands By: Anuj Sharma. Why git? Git is a distributed revision control system with an emphasis on speed, data integrity, and.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
1 GIT NOUN \’GIT\ A DISTRIBUTED REVISION CONTROL AND SOURCE CODE MANAGEMENT (SCM) SYSTEM WITH AN EMPHASIS ON SPEED. INITIALLY DESIGNED AND DEVELOPED BY.
GIT.
Intro to Git presented by Brian K. Vagnini Hosted by.
Page 1 TBD 12/08/2014 Formation GIT Laurent Kappel Groupe SII 65, rue de Bercy Paris Tél : Fax :
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
© 2015 by Herb Holyst Introduction to git Cytomics Workshop December, 2015.
It’s not just an insult from Harry Potter!. What is Git? Distributed Version Control System (DVCS) – Compared to a Centralized Version Control System.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Using Git with collaboration, code review, and code management for open source and private projects. & Using Terminal to create, and push commits to repositories.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Git workflows: using multiple branches for parallel development SE-2800 Dr. Mark L. Hornick 1.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 28-Jun-16.
Jun-Ru Chang Introduction GIT Jun-Ru Chang
GitHub A web-based Git repository hosting service.
GIT Version control. Version Control Sharing code via a centralized DB Also provides for Backtracking (going back to a previous version of code), Branching.
KIT – University of the State of Baden-Wuerttemberg and National Research Center of the Helmholtz Association STEINBUCH CENTRE FOR COMPUTING - SCC
CS5220 Advanced Topics in Web Programming Version Control with Git
M.Sc. Juan Carlos Olivares Rojas
Information Systems and Network Engineering Laboratory II
Git and GitHub primer.
11 Version control (part 2)
Process for SW Development
LECTURE 2: Software Configuration Management
Git Practice walkthrough.
SSE2034: System Software Experiment 3 Spring 2016
Version Control overview
File Version Control System
CS5220 Advanced Topics in Web Programming Version Control with Git
Git branches and remotes
Software Engineering for Data Scientists
5g. Repository For GSICS Work Use of github for codes etc
An introduction to version control systems with Git
Distributed Version Control with git
Akshay Narayan git up to speed with RCS Akshay Narayan
An introduction to version control systems with Git
Version Control with git
LECTURE 3: Software Configuration Management
SIG: Open Week 1: GitHub Tim Choh.
An introduction to version control systems with Git
Version Control System - Git
Version control with Git
Version Control with Git
GitHub and Git.
Version Control with Git and GitHub
Git Introduction.
6n. Use of gitHub for GSICS developments
Git GitHub.
Introduction to The Git Version Control System
Introduction To GitHub
Using GitHub for Papyrus Models Jessie Jewitt – OAM Technology Consulting/ ARM Inc. January 29th, 2018.
Advanced Git for Beginners
Presentation transcript:

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

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를 사용하는 것으로 이야기 됨

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

git vs. github https://jahya.net/blog/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..

GitLab vs. GitHub vs. Bitbucket To view Comparison of github vs. gitlab vs. bitbucket Goto http://www.slant.co/topics/153/compare/~github_vs_gitlab_vs_bitbucket

Example of github service : price_2017

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)

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 그룹별?

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

End of Presentation: Thank you for your attention WMO GSICS Portal http://gsics.wmo.int GSICS Coordination Centre - http://www.star.nesdis.noaa.gov/smcd/GCC/index.php GSICS Product Catalog - http://www.star.nesdis.noaa.gov/smcd/GCC/ProductCatalog.php EUMETSAT’s Data and Management Server http://gsics.eumetsat.int

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

Appendix : Distributed Workflows Centralized Workflow

Appendix : Distributed Workflows Integration-Manager Workflow

Appendix : Distributed Workflows Dictator and Lieutenants Workflow

Appendix : Basic git commands Git task Notes Git commands Tell Git who you are Configure the author name and email 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.email sam@example.com 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 username@host:/path/to/repository https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html

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 https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html

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 https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html

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> https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html

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> https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html

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 1.0.0 <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 https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html

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()" https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html

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. https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html