Confirmed users
195
edits
(formatting) |
(edit) |
||
| (12 intermediate revisions by 2 users not shown) | |||
| Line 2: | Line 2: | ||
This section includes instructions for Alopex Product + Design teams. | This section includes instructions for Alopex Product + Design teams. | ||
=== Github Training Sessions === | |||
We set up 2 Github training sessions for FxOS design and product teammates: | |||
* Monday, Nov 2, 2015 | |||
* Thursday, Nov 5, 2015 | |||
* Contact Jean for details on times! | |||
[https://docs.google.com/presentation/d/1pbT7_J_iHuBZVbjt6pVZi0ZqliU4rqCq36l41NkmQgY See materials from the training session here]. | |||
<hr> | |||
=== Create a Github Account === | === Create a Github Account === | ||
# Create your account at [http://www.github.com Github.com] | # Create your account at [http://www.github.com Github.com] | ||
# Email your Github handle to ehunt@mozilla.com - she'll add you to the Github org as a Member. | # Email your Github handle to ehunt@mozilla.com - she'll add you to the Github org as a Member. | ||
# You'll receive an email invitation inviting you to join [https://github.com/fxos-product-design FxOS Product Design]. You need to accept the invitation before doing the next step - Set | # You'll receive an email invitation inviting you to join [https://github.com/fxos-product-design FxOS Product Design]. You need to accept the invitation before doing the next step - [[Open Design#Set up Github Desktop|Set up Git on your computer]]. | ||
<hr> | <hr> | ||
=== Set up Git on your computer === | === Set up Git on your computer === | ||
To work with Github, you need to set up [https://git-scm.com/ Git] on your computer. For Product and Design teams, we recommend you use '''[[Open Design#Set up Github Desktop|Github Desktop]]''' to work with Git. | To work with Github, you need to set up [https://git-scm.com/ Git] on your computer. For Product and Design teams, we recommend you use '''[[Open Design#Set up Github Desktop|Github Desktop]]''' to work with Git. | ||
| Line 51: | Line 63: | ||
Github repositories on your computer are called "local repos." Local repos are where you save your work. Then you "push" your work to the remote repo on Github, where other people can see it. | Github repositories on your computer are called "local repos." Local repos are where you save your work. Then you "push" your work to the remote repo on Github, where other people can see it. | ||
Repositories on Github are called "remote repos" because they are remote from | Repositories on Github are called "remote repos" because they are remote from the computer where you do your work. Remote repos are also sometimes called "upstream repos." | ||
To get started with Alopex, you need the | To get started with Alopex, you need to clone the remote repo for Alopex. When you "clone" the remote repo, you copy the current state of the remote repo and paste it to your computer as a new local repo. | ||
:1. '''Decide on a location for your local repositories.''' | :1. '''Decide on a location for your local repositories.''' | ||
| Line 93: | Line 105: | ||
<hr> | <hr> | ||
=== Example Workflow === | === Example Workflow === | ||
# '''Create something you want to share in public.''' | # '''Create something you want to share in public.''' | ||
| Line 106: | Line 119: | ||
This workflow is a simplified way to interact with Github. We're using this approach so team members who aren't familiar with Github can get used to it, before we move on to more sophisticated methods. | This workflow is a simplified way to interact with Github. We're using this approach so team members who aren't familiar with Github can get used to it, before we move on to more sophisticated methods. | ||
In this workflow, you're pushing directly to the master Github branch with no 2nd person review. As with Dropbox and Box, it’s possible to | In this workflow, you're pushing directly to the master Github branch with no 2nd person review. As with Dropbox and Box, it’s possible to experience conflicts if someone else pushed the same file you did. | ||
:1. '''Open Github Desktop.''' | :1. '''Open Github Desktop.''' | ||
:2. ''' | :2. '''Get latest files from the remote repo.''' | ||
::As other people work on and push files to the remote repo, your local repo will become out of sync with the remote repo. | ::As other people work on and push files to the remote repo, your local repo will become out of sync with the remote repo. So you'll want to "pull" files from the remote repo before you push any changes. | ||
::When you "pull" from the remote repo, Github Desktop looks at the difference between files in your local repo and files on the remote repo. If there is a difference, Github Desktop copies them to your local repo. | |||
::[[File:repo pull.png|none|550px|Repo Pull]] | ::There are 2 ways to do this in Github Desktop: | ||
:::* Option 1: Go to ''Repository > Pull''. | |||
::::[[File:repo pull.png|none|550px|Repo Pull]] | |||
:::*Option 2: Click the "Sync" button in the upper right corner. | |||
::::[[File:sync.png|none|550px|Sync]] | |||
:3. '''Confirm that your changes appear in your local repo.''' | :3. '''Confirm that your changes appear in your local repo.''' | ||
| Line 125: | Line 143: | ||
:5. '''Prepare your commit.''' | :5. '''Prepare your commit.''' | ||
::"Committing" means you are saving a particular state of your local repo. If you changed just one file, your commit consists only of that file. If you changed several files, your commit consists of all the changed files. | ::"Committing" means you are saving a particular state of your local repo. If you changed just one file, your commit consists only of that file. If you changed several files, your commit consists of all the changed files. | ||
::* Enter a title for your commit in the Summary field. For example, Updated PTW spec." | ::* Enter a title for your commit in the Summary field. For example, "Updated PTW spec." | ||
::* Enter a longer description for your commit in the Description field. Here you can describe the difference between your changes and the current versions on the remote Github repo. For example, you could copy your Change Log details into the Description field. | ::* Enter a longer description for your commit in the Description field. Here you can describe the difference between your changes and the current versions on the remote Github repo. For example, you could copy your Change Log details into the Description field. | ||
::: | ::: ''Note: the Summary and Description are displayed on the Github remote repo, so other people can see what you’ve changed.'' | ||
::[[File:commit info.png|none|550px|Prepare commit]] | ::[[File:commit info.png|none|550px|Prepare commit]] | ||
| Line 134: | Line 152: | ||
::[[File:commit info 2.png|none|550px|Commit]] | ::[[File:commit info 2.png|none|550px|Commit]] | ||
: | ::The screen will update to show that your changes were committed and there are no uncommitted changes. | ||
::[[File:committed.png|none|550px| | ::[[File:committed.png|none|550px|Committed]] | ||
:: | :7. '''Push to Github.''' | ||
::[[File: | ::"Pushing" immediately sends your committed changes to the remote repo, and creates a new version for each changed file. | ||
::There are 2 ways to do this in Github Desktop: | |||
:::* Option 1: Go to ''Repository > Push''. | |||
::::[[File:push.png|none|550px|Repo Push]] | |||
: | :::*Option 2: Click the "Sync" button in the upper left corner. | ||
::::[[File:push sync.png|none|550px|Push Sync]] | |||
:8. '''Confirm your changes on Github.''' | |||
::Go to the [https://github.com/fxos-product-design/alopex remote repo] and browse the folders where you expect to see your changed files. | |||
::If it doesn't look the way you expect it to, repeat Steps 2-8. ''Note: once you get used to using Github, you probably won't need to do this step.'' | |||
'' | :''Tip:'' | ||
* If you need to stop in the middle of Steps 2-7 and start over later, it's a good idea to start over again at Step 2. This helps | ::* If you need to stop in the middle of Steps 2-7 and start over later, it's a good idea to start over again at Step 2. This helps to avoid merge conflicts. | ||
* | ::* If you do experience a merge conflict (Github will tell you!), try googling to find a solution or reach out to some of your dev teammates to help you through it. | ||
=== Gathering Feedback from Team and Collaborators === | === Gathering Feedback from Team and Collaborators === | ||
| Line 165: | Line 186: | ||
<hr> | <hr> | ||
=== Github Roles === | === Github Roles === | ||
* '''Members:''' Everyone on a project team is invited to the | * '''Members:''' Everyone on a project team is invited to the Github organization, e.g., FxOS Product Design, as a Member. Members can clone, pull, and push to any of the organization's repositories. | ||
* '''Collaborators:''' Collaborators can clone and pull any repository. They can also open issues and comment on any issue. | * '''Collaborators:''' Collaborators can clone and pull any repository. They can also open issues and comment on any issue. | ||