SlideShare a Scribd company logo
1 of 38
Download to read offline
PERSONAL GIT WORKFLOW... FOR
EVERYONE!
FOR BETTER, COLLABORATIVE DEVELOPMENT
Presentation by Chris Russo of Savas Labs
WHAT WE'LL COVER
Brief discussion of what git is
Discuss the why of the proposed workflow
Look at the theory
Eff it, , step by step
Q&A
we'll do it live
PREREQUESITES
IT'S BEST IF YOU ALREADY...
use git for your development
know the git add, commit, push, and pull commands
take me, at most, 82.5% seriously
WHAT IS GIT?
is a distributed "SCMS" or "version control" software tool optimized for
team collaboration
documentation
deployment
git
GIT STRENGTHS VS. OTHER SCMS TOOLS
Staging area
Data integrity
Distributed
WHAT ARE WE TRYING TO ACCOMPLISH?
THE IDEA OF THE PROPOSED WORKFLOW ENSURES THAT YOU ARE...
backing up code frequently
sharing the best of your code with your peers regardless of what your journey looked like
Worse yet
WHAT DOES THE WORKFLOW ADDRESS?
. Developers/perfectionists/humans have it.
You feel vulnerable
The pursuit of “something better”
Unrealistic expectations
Feeling “trapped”
Inconsistent backups due to #FoC.
Inefficient development due to #FoC. Preserve your possibly sloppy yet efficient development
workflow and share only the best!
Fear of Commitment
Lack of .
You give yourself a code review!
WHAT DOES THE WORKFLOW ADDRESS?
self-reflection
STOP TALKING ALREADY!!! WHAT IS THE
WORKFLOW?
1. Commit, commit, commit. Did you commit yet?
2. Push up to a personal, private repository
3. Polish, rewind history, and rewrite
4. Share away!
5. Rinse, repeat as needed
SPECIFICS, THOUGH!
1. git commit, git add, git commit, git add, git commit
2. git push [backup-private-repository] [WIP-feature-branch]
3. git reset [commit-before-wip-commits] --hard
4. git checkout [WIP-feature-branch] .
5. git reset HEAD
6. git add -p
7. git commit -v
8. git cat-file -p
9. git push [shared-repository] [SHARED-BRANCH]
10. ...
11. profit
Yes.
I AM ANGRY! IS IT REALLY THAT SIMPLE?
STEP 1
COMMIT THE GOOD, THE BAD, THE UGLY
git show forgotten-buckets-feature^^^^^^
+}
+
+/**
+ * Function to queue up text and email reminders from cron runs.
+ */
+function compost_customizations_queue_forgotten_bucket_emails() {
+
+ // Retrieve all members who have been marked as a forgotten
+ // bucket but have not yet been notified
+ $query = new EntityFieldQuery();
+
+ $query->entityCondition('entity_type', 'user')
+ ->fieldCondition('field_active', 'value', 1);
+ //->fieldCondition('field_reminded_about_forgotten_b', 'value', 0);
+
+ $result = $query->execute();
+ $user_uids = array_keys($result['user']);
|
TRC source commit on github.com
Go back Go forward
And push, push, push!
STEP 2
FIND YOU A NICE, PRIVATE REPOSITORY
...THAT NOBODY KNOWS ABOUT
git remote -v
backup git@bitbucket.org:savaslabs/tilthy-rich-compost.git (fetch)
backup git@bitbucket.org:savaslabs/tilthy-rich-compost.git (push)
upstream git@github.com:chrisarusso/Tilthy-Rich-Compost-Website.git (fetch)
upstream git@github.com:chrisarusso/Tilthy-Rich-Compost-Website.git (push)
STEP 2.PEPA
PA, PUSH IT REAL GOOD!
STEP 2.5
FINISH UP AND POLISH CODE IN LAST COMMIT
Add helpful comments
Make sure isn't after you ( )
Test
Push up to your private repository
DCS Drupal Coding Standards
POLISHED CODE
+}
+
+/**
+ * Loop through and queue up reminder notifications to subscribers
+ * who have not notified us of a collection that can be skipped
+ */
+function compost_customizations_queue_forgotten_bucket_emails() {
+
+ // Retrieve all members who have been marked as a forgotten
+ // bucket but have not yet been notified
+ $query = new EntityFieldQuery();
+
+ $query->entityCondition('entity_type', 'user')
+ ->fieldCondition('field_active', 'value', 1)
+ // We started this new system in 2015-July, so let's ignore any records
+ // before we changed to field collections
+ ->fieldCondition('field_forgotten_bucket', 'value', '0', '>=');
Was this
STEP 2.668686
MARK THE TREE
Disclaimer: upcoming deeper dive
Note: Tree = ...
UNDERSTANDING THE COMMIT OBJECT
CAR-computer:trc chris$ git cat-file -p b464b45
tree f2f767cefda3d283f0fb3b68fd4f377e554b7f57
parent a313c886ac6f2f85d97679faae12dc78900d34c9
author Chris Russo <chris.andrews.russo@gmail.com> 1436206446 -0400
committer Chris Russo <chris.andrews.russo@gmail.com> 1436206446 -0400
Final commit after testing, clean up time!
f2f767c
Forward
Note: This is the git project root
UNDERSTANDING THE TREE OBJECT
CAR-computer:trc chris$ git cat-file -p f2f767
040000 tree 58c541257a7944223814aa69b13d0a73204995e9 assets
040000 tree 6bbcedb9daddca2da40e994137a9922630a88fa7 civicrm
040000 tree 49a4db16751992f17eb998cd8464bf7b31534165 drupalroot
040000 tree 421e8ebc4a7eed08583b24cc20298cf8cc8426fd scripts
Note: These are typical Drupal files in the drupal docroot
UNDERSTANDING A TREE OBJECT WITH BLOBS (FILES)
CAR-computer:trc chris$ git cat-file -p 49a4db1
100644 blob a1211d6396d2c011ea756410658b1c6b60b2078c .gitignore
100644 blob b7c9dc638c1072ab6fb97a00940016074df275d5 .htaccess
100644 blob 5ba3523ade1dc77ae3ffe1de50795cb4b9193db6 CHANGELOG.txt
100644 blob dc8a855fbbecf09f939dba807fa5ebc1d8a26a05 COPYRIGHT.txt
100644 blob 95a873433350f02a4621124d054e531c83df984b INSTALL.mysql.txt
100644 blob 8fe80433bd67d4659831ceaa729c534c70544c16 INSTALL.pgsql.txt
100644 blob 8e57d60cc0d793862706f41dcfdcef5252fdb1e8 INSTALL.sqlite.txt
100644 blob 6f02c05ae6dfd799a8a0566fccb54963ca9a595a INSTALL.txt
100644 blob d159169d1050894d3ea3b98e1c965c4058208fe1 LICENSE.txt
100644 blob f5cf6f893abdb884ae8b95536c86224bc196400e MAINTAINERS.txt
100644 blob 60d3da592e9ca5e77a4d40f1cc87e9f326bcf1b8 README.txt
100644 blob e870ff0f0ec39cb94b775e7689cbfec7a0a43afa UPGRADE.txt
100644 blob 3ea2b20ace5146a5983dcebe6178fd5a53f00bd3 authorize.php
100644 blob c6ce5317e88fda48a6543ebcbcc09ec93e9d99ac cron.php
040000 tree 64ae554e8a2d34a1065f19781155defae2321eed includes
100644 blob 8b831997815f521b150c5b0c27038f6b04e3cf40 index.php
STEP 3
ROLLBACK
Rollback code to before you made any of your updates. This is likely where master is, or at least
was when you made your feature branch.
CAR-computer:drupalroot chris$ git branch -v --contains 96edd7c2a5b0baccc9fe3233c4482d0254a41386
* forgotten-buckets-feature b464b45 Final commit after testing, clean up time!
CAR-computer:drupalroot chris$ git branch -v --contains 96edd7c2a5b0baccc9fe3233c4482d0254a41386^
* forgotten-buckets-feature b464b45 Final commit after testing, clean up time!
CAR-computer:drupalroot chris$ git branch -v --contains 96edd7c2a5b0baccc9fe3233c4482d0254a41386^^
* forgotten-buckets-feature b464b45 Final commit after testing, clean up time!
CAR-computer:drupalroot chris$ git branch -v --contains 96edd7c2a5b0baccc9fe3233c4482d0254a41386^^^
forgotten-buckets-feature b464b45 Final commit after testing, clean up time!
* master 808f61e Hide extra links for blog content type
THE ROLLBACK
CAR-computer:drupalroot chris$ git reset 96edd7c2a5b0baccc9fe3233c4482d0254a41386^^^ --hard
HEAD is now at 3e4a0cc Remove bucket size from subscriber option
CAR-computer:drupalroot chris$ git status
On branch master
Your branch is behind 'upstream/master' by 13 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
nothing to commit, working directory clean
STEP 3.5
CHECKOUT POLISHED CODE TO WORKING TREE
Now we'll bring back all the code we just worked on, but not the commits with them.
CAR-computer:tilthy-rich-compost chris$ git checkout forgotten-buckets-feature .
CAR-computer:tilthy-rich-compost chris$ git status
On branch master
Your branch is behind 'upstream/master' by 13 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: drupalroot/sites/all/modules/contrib/bcc/LICENSE.txt
new file: drupalroot/sites/all/modules/contrib/bcc/README.TXT
new file: drupalroot/sites/all/modules/contrib/bcc/bcc.info
new file: drupalroot/sites/all/modules/contrib/bcc/bcc.install
new file: drupalroot/sites/all/modules/contrib/bcc/bcc.module
new file: drupalroot/sites/all/modules/contrib/field_collection/LICENSE.txt
new file: drupalroot/sites/all/modules/contrib/field_collection/README.txt
new file: drupalroot/sites/all/modules/contrib/field_collection/ctools/relationships/field_collection_from_field.inc
new file: drupalroot/sites/all/modules/contrib/field_collection/field-collection-item.tpl.php
STEP 3.848
RESET STAGED FILES
We'll reset everything not with --hard so that nothing is staged
CAR-computer:tilthy-rich-compost chris$ git reset HEAD
Unstaged changes after reset:
M drupalroot/sites/all/modules/custom/compost_customizations/compost_customizations.module
CAR-computer:tilthy-rich-compost chris$ git status
On branch master
Your branch is behind 'upstream/master' by 13 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: drupalroot/sites/all/modules/custom/compost_customizations/compost_customizations.module
Untracked files:
(use "git add <file>..." to include in what will be committed)
drupalroot/sites/all/modules/contrib/bcc/
STEP 4
MAKE ALL NEW COMMITS
use git add -p
break code into logical features/sections
Make nice commit messages
NEW GIT HISTORY
CAR-computer:tilthy-rich-compost chris$ git log 3706ca31771312646f0caf0356cbc9ee3b2f4533
commit 3706ca31771312646f0caf0356cbc9ee3b2f4533
Author: Chris Russo <chris.andrews.russo@gmail.com>
Date: Mon Jul 6 14:21:20 2015 -0400
Notify subscribers for missed collections
Add a template file for email copy
Add logic to cron to loop through and mail
users after they've not notified us
but have not left their bucket out
Remove old paypal templates and libraries
that aren't being used
commit f79d6b54a3a7ee25cb391f0978abf85314113461
Author: Chris Russo <chris.andrews.russo@gmail.com>
STEP 4.5
VERIFY TREES ARE EXACTLY THE SAME
CAR-computer:trc chris$ git cat-file -p 3706ca31771312646f0caf0356cbc9ee3b2f4533
tree f2f767cefda3d283f0fb3b68fd4f377e554b7f57
parent f79d6b54a3a7ee25cb391f0978abf85314113461
author Chris Russo <chris.andrews.russo@gmail.com> 1436206880 -0400
committer Chris Russo <chris.andrews.russo@gmail.com> 1436207673 -0400
Notify subscribers for missed collections
Add a template file for email copy
Add logic to cron to loop through and mail
users after they've not notified us
but have not left their bucket out
Remove old paypal templates and libraries
that aren't being used
Old Tree
STEP 5
PUSH TO SHARED REPOSITORY
PAT YOURSELF ON THE BACK... AND HEAD TO ...
THE DRUM CIRCLE
... AND GET YOUR FACE PAINTED ...
FRAGMENTS
Hit the next arrow...
... to step through ...
... a fragmented slide.
FRAGMENT STYLES
There's different types of fragments, like:
shrink
highlight-red
highlight-blue
SPEAKER VIEW
There's a . It includes a timer, preview of the upcoming slide as well as your speaker
notes.
speaker view
Press the S key to try it out.
PREGUNTAS?!
Follow us por favor! Yes, no, maybe?... Yes!
Eh-tee-tee-pee double-u, double-u, double-u...
WE ARE
SAVAS LABS!
@Savas_Labs
savaslabs.com/

More Related Content

Recently uploaded

Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Delhi Call girls
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663Call Girls Mumbai
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Delhi Call girls
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLimonikaupta
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...singhpriety023
 
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$kojalkojal131
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...Escorts Call Girls
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...SofiyaSharma5
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...Neha Pandey
 

Recently uploaded (20)

VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
 
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 

Featured

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 

Featured (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

Personal git workflow, for everyone!

  • 1. PERSONAL GIT WORKFLOW... FOR EVERYONE! FOR BETTER, COLLABORATIVE DEVELOPMENT Presentation by Chris Russo of Savas Labs
  • 2. WHAT WE'LL COVER Brief discussion of what git is Discuss the why of the proposed workflow Look at the theory Eff it, , step by step Q&A we'll do it live
  • 3. PREREQUESITES IT'S BEST IF YOU ALREADY... use git for your development know the git add, commit, push, and pull commands take me, at most, 82.5% seriously
  • 4. WHAT IS GIT? is a distributed "SCMS" or "version control" software tool optimized for team collaboration documentation deployment git
  • 5. GIT STRENGTHS VS. OTHER SCMS TOOLS Staging area Data integrity Distributed
  • 6. WHAT ARE WE TRYING TO ACCOMPLISH? THE IDEA OF THE PROPOSED WORKFLOW ENSURES THAT YOU ARE... backing up code frequently sharing the best of your code with your peers regardless of what your journey looked like
  • 8. WHAT DOES THE WORKFLOW ADDRESS? . Developers/perfectionists/humans have it. You feel vulnerable The pursuit of “something better” Unrealistic expectations Feeling “trapped” Inconsistent backups due to #FoC. Inefficient development due to #FoC. Preserve your possibly sloppy yet efficient development workflow and share only the best! Fear of Commitment
  • 9. Lack of . You give yourself a code review! WHAT DOES THE WORKFLOW ADDRESS? self-reflection
  • 10. STOP TALKING ALREADY!!! WHAT IS THE WORKFLOW? 1. Commit, commit, commit. Did you commit yet? 2. Push up to a personal, private repository 3. Polish, rewind history, and rewrite 4. Share away! 5. Rinse, repeat as needed
  • 11. SPECIFICS, THOUGH! 1. git commit, git add, git commit, git add, git commit 2. git push [backup-private-repository] [WIP-feature-branch] 3. git reset [commit-before-wip-commits] --hard 4. git checkout [WIP-feature-branch] . 5. git reset HEAD 6. git add -p 7. git commit -v 8. git cat-file -p 9. git push [shared-repository] [SHARED-BRANCH] 10. ... 11. profit
  • 12. Yes. I AM ANGRY! IS IT REALLY THAT SIMPLE?
  • 13. STEP 1 COMMIT THE GOOD, THE BAD, THE UGLY git show forgotten-buckets-feature^^^^^^ +} + +/** + * Function to queue up text and email reminders from cron runs. + */ +function compost_customizations_queue_forgotten_bucket_emails() { + + // Retrieve all members who have been marked as a forgotten + // bucket but have not yet been notified + $query = new EntityFieldQuery(); + + $query->entityCondition('entity_type', 'user') + ->fieldCondition('field_active', 'value', 1); + //->fieldCondition('field_reminded_about_forgotten_b', 'value', 0); + + $result = $query->execute(); + $user_uids = array_keys($result['user']); | TRC source commit on github.com Go back Go forward
  • 14. And push, push, push! STEP 2 FIND YOU A NICE, PRIVATE REPOSITORY ...THAT NOBODY KNOWS ABOUT git remote -v backup git@bitbucket.org:savaslabs/tilthy-rich-compost.git (fetch) backup git@bitbucket.org:savaslabs/tilthy-rich-compost.git (push) upstream git@github.com:chrisarusso/Tilthy-Rich-Compost-Website.git (fetch) upstream git@github.com:chrisarusso/Tilthy-Rich-Compost-Website.git (push)
  • 15. STEP 2.PEPA PA, PUSH IT REAL GOOD!
  • 16. STEP 2.5 FINISH UP AND POLISH CODE IN LAST COMMIT Add helpful comments Make sure isn't after you ( ) Test Push up to your private repository DCS Drupal Coding Standards
  • 17. POLISHED CODE +} + +/** + * Loop through and queue up reminder notifications to subscribers + * who have not notified us of a collection that can be skipped + */ +function compost_customizations_queue_forgotten_bucket_emails() { + + // Retrieve all members who have been marked as a forgotten + // bucket but have not yet been notified + $query = new EntityFieldQuery(); + + $query->entityCondition('entity_type', 'user') + ->fieldCondition('field_active', 'value', 1) + // We started this new system in 2015-July, so let's ignore any records + // before we changed to field collections + ->fieldCondition('field_forgotten_bucket', 'value', '0', '>='); Was this
  • 19.
  • 21. Note: Tree = ... UNDERSTANDING THE COMMIT OBJECT CAR-computer:trc chris$ git cat-file -p b464b45 tree f2f767cefda3d283f0fb3b68fd4f377e554b7f57 parent a313c886ac6f2f85d97679faae12dc78900d34c9 author Chris Russo <chris.andrews.russo@gmail.com> 1436206446 -0400 committer Chris Russo <chris.andrews.russo@gmail.com> 1436206446 -0400 Final commit after testing, clean up time! f2f767c Forward
  • 22. Note: This is the git project root UNDERSTANDING THE TREE OBJECT CAR-computer:trc chris$ git cat-file -p f2f767 040000 tree 58c541257a7944223814aa69b13d0a73204995e9 assets 040000 tree 6bbcedb9daddca2da40e994137a9922630a88fa7 civicrm 040000 tree 49a4db16751992f17eb998cd8464bf7b31534165 drupalroot 040000 tree 421e8ebc4a7eed08583b24cc20298cf8cc8426fd scripts
  • 23. Note: These are typical Drupal files in the drupal docroot UNDERSTANDING A TREE OBJECT WITH BLOBS (FILES) CAR-computer:trc chris$ git cat-file -p 49a4db1 100644 blob a1211d6396d2c011ea756410658b1c6b60b2078c .gitignore 100644 blob b7c9dc638c1072ab6fb97a00940016074df275d5 .htaccess 100644 blob 5ba3523ade1dc77ae3ffe1de50795cb4b9193db6 CHANGELOG.txt 100644 blob dc8a855fbbecf09f939dba807fa5ebc1d8a26a05 COPYRIGHT.txt 100644 blob 95a873433350f02a4621124d054e531c83df984b INSTALL.mysql.txt 100644 blob 8fe80433bd67d4659831ceaa729c534c70544c16 INSTALL.pgsql.txt 100644 blob 8e57d60cc0d793862706f41dcfdcef5252fdb1e8 INSTALL.sqlite.txt 100644 blob 6f02c05ae6dfd799a8a0566fccb54963ca9a595a INSTALL.txt 100644 blob d159169d1050894d3ea3b98e1c965c4058208fe1 LICENSE.txt 100644 blob f5cf6f893abdb884ae8b95536c86224bc196400e MAINTAINERS.txt 100644 blob 60d3da592e9ca5e77a4d40f1cc87e9f326bcf1b8 README.txt 100644 blob e870ff0f0ec39cb94b775e7689cbfec7a0a43afa UPGRADE.txt 100644 blob 3ea2b20ace5146a5983dcebe6178fd5a53f00bd3 authorize.php 100644 blob c6ce5317e88fda48a6543ebcbcc09ec93e9d99ac cron.php 040000 tree 64ae554e8a2d34a1065f19781155defae2321eed includes 100644 blob 8b831997815f521b150c5b0c27038f6b04e3cf40 index.php
  • 24. STEP 3 ROLLBACK Rollback code to before you made any of your updates. This is likely where master is, or at least was when you made your feature branch. CAR-computer:drupalroot chris$ git branch -v --contains 96edd7c2a5b0baccc9fe3233c4482d0254a41386 * forgotten-buckets-feature b464b45 Final commit after testing, clean up time! CAR-computer:drupalroot chris$ git branch -v --contains 96edd7c2a5b0baccc9fe3233c4482d0254a41386^ * forgotten-buckets-feature b464b45 Final commit after testing, clean up time! CAR-computer:drupalroot chris$ git branch -v --contains 96edd7c2a5b0baccc9fe3233c4482d0254a41386^^ * forgotten-buckets-feature b464b45 Final commit after testing, clean up time! CAR-computer:drupalroot chris$ git branch -v --contains 96edd7c2a5b0baccc9fe3233c4482d0254a41386^^^ forgotten-buckets-feature b464b45 Final commit after testing, clean up time! * master 808f61e Hide extra links for blog content type
  • 25. THE ROLLBACK CAR-computer:drupalroot chris$ git reset 96edd7c2a5b0baccc9fe3233c4482d0254a41386^^^ --hard HEAD is now at 3e4a0cc Remove bucket size from subscriber option CAR-computer:drupalroot chris$ git status On branch master Your branch is behind 'upstream/master' by 13 commits, and can be fast-forwarded. (use "git pull" to update your local branch) nothing to commit, working directory clean
  • 26. STEP 3.5 CHECKOUT POLISHED CODE TO WORKING TREE Now we'll bring back all the code we just worked on, but not the commits with them. CAR-computer:tilthy-rich-compost chris$ git checkout forgotten-buckets-feature . CAR-computer:tilthy-rich-compost chris$ git status On branch master Your branch is behind 'upstream/master' by 13 commits, and can be fast-forwarded. (use "git pull" to update your local branch) Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: drupalroot/sites/all/modules/contrib/bcc/LICENSE.txt new file: drupalroot/sites/all/modules/contrib/bcc/README.TXT new file: drupalroot/sites/all/modules/contrib/bcc/bcc.info new file: drupalroot/sites/all/modules/contrib/bcc/bcc.install new file: drupalroot/sites/all/modules/contrib/bcc/bcc.module new file: drupalroot/sites/all/modules/contrib/field_collection/LICENSE.txt new file: drupalroot/sites/all/modules/contrib/field_collection/README.txt new file: drupalroot/sites/all/modules/contrib/field_collection/ctools/relationships/field_collection_from_field.inc new file: drupalroot/sites/all/modules/contrib/field_collection/field-collection-item.tpl.php
  • 27. STEP 3.848 RESET STAGED FILES We'll reset everything not with --hard so that nothing is staged CAR-computer:tilthy-rich-compost chris$ git reset HEAD Unstaged changes after reset: M drupalroot/sites/all/modules/custom/compost_customizations/compost_customizations.module CAR-computer:tilthy-rich-compost chris$ git status On branch master Your branch is behind 'upstream/master' by 13 commits, and can be fast-forwarded. (use "git pull" to update your local branch) Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: drupalroot/sites/all/modules/custom/compost_customizations/compost_customizations.module Untracked files: (use "git add <file>..." to include in what will be committed) drupalroot/sites/all/modules/contrib/bcc/
  • 28. STEP 4 MAKE ALL NEW COMMITS use git add -p break code into logical features/sections Make nice commit messages
  • 29. NEW GIT HISTORY CAR-computer:tilthy-rich-compost chris$ git log 3706ca31771312646f0caf0356cbc9ee3b2f4533 commit 3706ca31771312646f0caf0356cbc9ee3b2f4533 Author: Chris Russo <chris.andrews.russo@gmail.com> Date: Mon Jul 6 14:21:20 2015 -0400 Notify subscribers for missed collections Add a template file for email copy Add logic to cron to loop through and mail users after they've not notified us but have not left their bucket out Remove old paypal templates and libraries that aren't being used commit f79d6b54a3a7ee25cb391f0978abf85314113461 Author: Chris Russo <chris.andrews.russo@gmail.com>
  • 30. STEP 4.5 VERIFY TREES ARE EXACTLY THE SAME CAR-computer:trc chris$ git cat-file -p 3706ca31771312646f0caf0356cbc9ee3b2f4533 tree f2f767cefda3d283f0fb3b68fd4f377e554b7f57 parent f79d6b54a3a7ee25cb391f0978abf85314113461 author Chris Russo <chris.andrews.russo@gmail.com> 1436206880 -0400 committer Chris Russo <chris.andrews.russo@gmail.com> 1436207673 -0400 Notify subscribers for missed collections Add a template file for email copy Add logic to cron to loop through and mail users after they've not notified us but have not left their bucket out Remove old paypal templates and libraries that aren't being used Old Tree
  • 31. STEP 5 PUSH TO SHARED REPOSITORY PAT YOURSELF ON THE BACK... AND HEAD TO ...
  • 33. ... AND GET YOUR FACE PAINTED ...
  • 34. FRAGMENTS Hit the next arrow... ... to step through ... ... a fragmented slide.
  • 35. FRAGMENT STYLES There's different types of fragments, like: shrink highlight-red highlight-blue
  • 36. SPEAKER VIEW There's a . It includes a timer, preview of the upcoming slide as well as your speaker notes. speaker view Press the S key to try it out.
  • 38. Follow us por favor! Yes, no, maybe?... Yes! Eh-tee-tee-pee double-u, double-u, double-u... WE ARE SAVAS LABS! @Savas_Labs savaslabs.com/