# December 2023 Git Flow
---
For this event everyone is working on the same website so the flow will be a little different. Here is a step by step visual guide to the process.
___
## **Step 1**
---
### Team Leads
* ## Create a github organization from their personal github account

* ## Chose Free

* ## Give it a name

* ## Invite members now or skip and add later (See Step 3 if inviting later)

* ## Now your ready to fork the repo
- [BeeDev Helper](https://github.com/beedevservices/beedev-helper)
## Step 2
---
### Team lead
* ## Fork base repository into the organization

* ## Make sure to chose the Organization as owner

* ## Keep name the same but uncheck copy main branch only

* ## Verify you are in the forked repo

## **Step 3**
---
### Team lead
* ## Click on the people tab and then the green invite member button

* ## Type in the git username of a group memeber and when found click invite

* ## Chose role, I recommend just making everyone an owner or at least have 1 other member an owner and then send the invitation

* ## Once you see this screen the invite is sent and it is up to the team member to accept the invite

## Developers
* You should have an email with the invitation be sure to click this link within the next 7 days
* Sometimes you may see a notification in your github that you have this invite.
## Everyone
* As organizations are much like github id's they will all have different names so you can be a part of any and all of them for this event.
## **Step 4**
---
### Developers
- git clone

- cd into repo

- change to the dev branch as this will be your base

- make a new branch for your feature

- used git status to show that changes to files were made (in red)

- add files to the "package" to go to github

- commit or "seal the box" with a message

- push your changes to the team repo

## **Step 5**
---
Feature complete ready for development testing
### Developers
- Create a pull request
- Make sure that you are on the same repo so change the base (will be on the left back to your team repo name)
- It should have dev branch on left and your feature branch on right

- after clicking creat pull request fill out the form and create the PR

- PR is now ready for the lead

## **Step 6**
---
### Team Leads
- click on pull requests

- If all looks good merge the request

- As a double check now confirm it

## **Step 7**
---
### Team Leads
- Feature is done (try to do this every feature not multiple) - create a new pull request

- Be sure to have the base repo (beedevservices) Dev branc on left and team repo dev branch on right

- Follow same steps as in step 5 to create the request
- Post in the pull-request-status channel that you have made a PR (see pinned post in channel for exampl)

## **Step 8**
---
### Event Leads
- Verify and approve pull requests into base Repo Dev branch
- Once merged on the base repo anyone can now click deployements and click the latest one live through github pages

- All github users that touch the repo will be added as a collaborator to the main website once dev gets pushed to main at the end of the event. Then you can see your name on the about page
- Update the status of the PR in the channel and tag @channel (see pinned post in channel for example)

- This announcement should then trigger ALL teams to complete step 8
[BeeDev Helper Site](https://helper.beedev-services.com)
[About page](https://helper.beedev-services.com/about)
## **Step 9**
---
### **Team Leads**
* ## After any pull requets to base dev have been approved the following steps need to be completed to ensure your team has all of the latest code
* ## Make sure you are in your teams repo
* ## You may see that your version is out of sync and a sync fork drop down

* ## Change to your teams dev branch then click that drop down and update branch

* ## Once this is done make sure all developers follow the steps below
### **Developers**
- Once the above has been done developers need to complete the following steps
- switch to the dev branch and pull down all updates

- change back to your branch if just getting updates and pull from team dev branch. If your feature was complete you can just create a new branch from the team dev
