Instructions for Working with GlueX Git Repositories
Let's use the halld_recon repository as an example.
- Create local repository in the current directory
- Create a local branch
git branch bug_removal
- Check-out the new branch
git checkout bug_removal
- ... work on topic branch, make changes, add them, commit them...
- Push local branch to public branch
git push origin -u bug_removal
- creates branch "bug_removal" on public repository
- Issue pull request
- go to the GitHub site and log in
- navigate to the repository page (https://github.com/JeffersonLab/halld_recon)
- click on "branches" on the "code" tab
- find the line for the "bug_removal" branch
- click on "pull request" on that line
- fill in and submit web form
- essentially creates action item on GitHub, a request that changes on branch "bug_removal" be merged into master branch
- Ask someone else to act on pull request. Pull requesters cannot merge their own request. The person doing the merge:
- goes to the GitHub site and logs in
- navigates to the repository page (e.g., https://github.com/JeffersonLab/halld_recon)
- clicks on "pull requests" in the right-hand column
- selects the relevant pull request
- if required, submits a review of the pull request
- fills in the merge form and initiates the merge
Notes on this Workflow
- Everyone needs an account on GitHub.
- Anyone can push to the master branch from their private repository. No one should.
- Changes should go onto topic branches; this is enforced only administratively.