├── images ├── 2step12GitFlow.png ├── 2step14GitFlow.png ├── 2step16GitFlow.png ├── 2step3GitFlow.png ├── 2step7GitFlow.png ├── 2step9GitFlow.png ├── heading-after.png ├── heading-before.png ├── step1GitFlow.png ├── step5GitFlow.png ├── step6GitFlow.png ├── step7GitFlow.png ├── step9GitFlow.png ├── pull-request-tab.png ├── step3(1)GitFlow.png ├── step3(2)GitFlow.png ├── 2step13(1)GitFlow.png ├── 2step13(2)GitFlow.png ├── pull-request-open.png ├── github-pages-settings.png ├── clone-repository-dialog.png ├── git-flow-summary-table.png └── Gitflow diagrams.xml └── README.md /images/2step12GitFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/2step12GitFlow.png -------------------------------------------------------------------------------- /images/2step14GitFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/2step14GitFlow.png -------------------------------------------------------------------------------- /images/2step16GitFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/2step16GitFlow.png -------------------------------------------------------------------------------- /images/2step3GitFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/2step3GitFlow.png -------------------------------------------------------------------------------- /images/2step7GitFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/2step7GitFlow.png -------------------------------------------------------------------------------- /images/2step9GitFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/2step9GitFlow.png -------------------------------------------------------------------------------- /images/heading-after.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/heading-after.png -------------------------------------------------------------------------------- /images/heading-before.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/heading-before.png -------------------------------------------------------------------------------- /images/step1GitFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/step1GitFlow.png -------------------------------------------------------------------------------- /images/step5GitFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/step5GitFlow.png -------------------------------------------------------------------------------- /images/step6GitFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/step6GitFlow.png -------------------------------------------------------------------------------- /images/step7GitFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/step7GitFlow.png -------------------------------------------------------------------------------- /images/step9GitFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/step9GitFlow.png -------------------------------------------------------------------------------- /images/pull-request-tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/pull-request-tab.png -------------------------------------------------------------------------------- /images/step3(1)GitFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/step3(1)GitFlow.png -------------------------------------------------------------------------------- /images/step3(2)GitFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/step3(2)GitFlow.png -------------------------------------------------------------------------------- /images/2step13(1)GitFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/2step13(1)GitFlow.png -------------------------------------------------------------------------------- /images/2step13(2)GitFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/2step13(2)GitFlow.png -------------------------------------------------------------------------------- /images/pull-request-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/pull-request-open.png -------------------------------------------------------------------------------- /images/github-pages-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/github-pages-settings.png -------------------------------------------------------------------------------- /images/clone-repository-dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/clone-repository-dialog.png -------------------------------------------------------------------------------- /images/git-flow-summary-table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foundersandcoders/git-workflow-workshop-for-two/HEAD/images/git-flow-summary-table.png -------------------------------------------------------------------------------- /images/Gitflow diagrams.xml: -------------------------------------------------------------------------------- 1 | 7V1bU+M42v41VO130ZR1suxLoGF2q2a2pqanancvAxjIToizSZim59d/dmI51islkRVJMVhcdIPjKI7e8/MedEFuXt9/Wk4WL7+Uj8XsAieP7xfk6wXGKMvT6r/6yo/mSpIk2yvPy+ljc2134dv0r0Lc2Fx9mz4WK+nGdVnO1tOFfPGhnM+Lh7V0bbJclt/l257Kmfypi8lz84nJ7sK3h8msUG771/Rx/bK9mmG+u/73Yvr8Ij4Zpfn2lfvJwx/Py/Jt3nzeBSZPm5/ty68TsVbzuauXyWP5vXOJ3F6Qm2VZrre/vb7fFLN6c8W2bd93t+fV9rmXxXxt9Ia8efA/J7O3Qjzz5snWP8RuVG+pNr764/r7y3RdfFtMHupXvlfEr669rF9n1V+o+nWyWmyp8TR9L6pPuH6azmY35axcbhYid3c3X3FWXV+tl+UfhXhlXs7rxZ+Xk8dp9dzgcvN8xXJdvO/9lqjdu4opi/K1WC9/VLc0b8Ak276l4UeeN1/y+464tKHIS4eu4tqkYafnduXdlla/NLu6Z4cxGcEOM4TlHUZpsB3OklFsMJE2mAm2CrDBOBvBBqckkTaYZCzYBrMR7C+jMgMLqQ3BvyG394aw5GvP7X0q5+u7yet0Vu/NTfm2nBbL6vn+WXx3tfey/dOwNtHsPXGhnJW9f52s1puvd7+czB9eFFJUX3Mt77l2K7v73lyazKbP8+rPh2pbqk8g1/WmTSuv7qp54XX6+DjbR+SN11aT9GtyjCT1i9+aJ0ZO6ENl5W4mG9iJezIK3YOk/UVZOOOJgrp/w9Q+Kdj9LJj6QTTqHxMKyd47Ymby4UQBmTiX88erOqqv93Y2Wa2mDzKBDm5W8T5d/7u5sf79P/UOX7Lqr4e35Z+bDd+8NK8e/N/ta5s//9MQY/tAxaMADfZtcPXQ1Yc/iLuaL7KeLJ8LcVuuJ0Rno5lmo8W1ZTGbrKd/yo+h2/3mE34tp9UD7nzcRNaDWAQRYont4zfv6sIGcCEGFiJgoe13VhaqqDj50bltUd+wOvDABHxOQgBvbVfccVq7p2bMFxL9wOjq5u5mYMo5JSmgZDjljNXA/WFZTNbFl5di8ijp6HRW6+TH6Z/Vr8/rzVffXrpfwivVp0r3RfUOxR7lqnpHiSf9Hhb+Gqb/w6TtJ1R1772JWPR/LOIDkphhP07kwwT8Gab/03VscGq86WF8HZYBPI8xW19nDzDo3NfRP7ArX0dQaMy+DlDEeUBFzKOvE8bXAVIkVHsIX0cY+q5EVUpTfL9yuX4pn8v5ZHa7uypr4Q6pWoWMJHW80c7/LdbrH03afPK2LqtLu8V/LsuFiWGQeaELz+3R993glprr+1ODVi5TlCZm+tdCRVJVRf799uqrC7nqbm8w4XIhT6JAoNWZ4VwjkbVwI06NG9S4N8IROuD5oB6Ctl+WDAjUF1iiXPW/tmDTCcJnTJTcIVEGsr3OdRZLsSQ1rVN7RGf1X2iPF2uj/FQPZezKD+LimIbDxZkKjqmC99ETc4jI1iVgUYBAsMeLSyGQdQ5YFcCwsvkRltIQSPZ8A5YFsH6oVLPTj5PVi87MK+Y72fwc3U9ZiJpC2lPMehjoiaSAboZGe/9C7kMdplr734rXcl1svv6irP77Wzmv/v1pun55u/+/jyiPLkQwkQ0UUkVQiyY4UZJqZvznstomSKEf1de+qGvhXxdv1YaOlVQs4UdJhZgfUqVU1Y4nR6oqYL+LVO0hoaCRaqrJFLBET0bnkWqqenhjD2hATkSDf/tyKFLuQUISRUIGIgXuAYVMrp5ujU5fQCFFRxZyByikEU1VsxPy7ocUwDE0cSACfICAhb6iBXDMgAIGux+ulkwkiSKicFg+5EaQkIW+PCjgdq4uMnl/KcHB9A/HY9c/nIDN5+HUj1rlGNWPJpksEygxkw4n2kcthByZdFAMdp8HtM4qnBzFQ0MhuT6NBkw3cpPqwOGXoXJuvOlhcgE0lZNsNLdsuWEE9IjC3h1HZagM6R/YVRlq5h0qPQUGMktM7WHEI2DoljfdQ0O5DOox0VHnmjFgk3LzOa4Yg6sZKX8WepD1yQzJFprhgBZahYdifbIPG58B9cpzhcbe6pOFpjhv7Z6ZjjXJgl1iR626mcaVyPyo6/SYujZ1CDgCC0E14Ejv80T/wM4cAh0upOiYh5fJ/LkuTljXie9pJb7vlxtmrL7I/FHw9OXDahV1z177ksnxBUtU++JN92Sqee9SUSF4X3ru9hUddw+0pN5eFPP+mOo0XJO7uzQ9n3+QgvQt0/S2ZDr/IHdgOlQp/fb71U//+OdP1cWr326vPqqA6QzTbHJfzK7bUY4Srlz/tLeUy8o10nGIA2pzUPrNNOV/qS9HIWSv4EDRMhnJT4mKxfjyxXNVVUa0TEMhEI/mqjXzhZblH3dojdQ0JIz9gOAyOYeTUkvvmBGwEPeEiiD9A7vyjkX73SeEy6RZST048eRSquwy7fxwwCfkknR//HANhdzpeK6R2M4xg2mAsJpSIG9T5xLVW45omhc0DciRSJKEiGhRopGpccBpsuomOs+ChtLnaSaj5kKX9gfUQK9H6mvQS65/YHfKXzdyKyJqXhA1OQZJU9XIeNQ/ak1LhNR6QmocyGKunlvgC1JDiVoVEzE1z5iaPOiNawa9+cLUkNGk21H55ByrkKY3n1wzClHdfqWl+VAXc7vHVgIh60ay39kaDDgDMRUuRsqdCs7wBCzkrs8ZiarHU6C6/T63TMSjsN4+XtgNJ6or9HceOrpEWPz9a7GcVl+8Vt6nDKXeOg3nYqEUySlIntmyEOix57CE3pWzDqaP8eZz9/bXgZkNnB+5Pzm4/unBQNi2pHP1fYFcWci+C6RpPfK4w0NMliEAoobsvECavqKYLdOQCDTHBOy9QEatSR8gXcbNQa0w5hQLKgqqisFKfc1p2z0mFsrAQo7MaTv5CTywM3MXtM9nkEFW5RoBUoZUxiqkERMfHtR5e6hda3EDlvIho2ahUQkZw2riyZ+QmXRKRCTjkN0E5k6pnba1mwyZhaFWpq1f0ZH1TD5HmMbQeQDOQrDuzIMLEViz5JIH1GgejO1LJ6+1gp3frxYdC9oxn/fFU7ks9t24Wkzm4s7F2+plOn/uWOHuq9bGeVmspn9N7jc31IzS+IzV3ez6gtWxbZ3/Xm1T4cjESq/r7Hj96A/V4/6+SZV/oafx7WnBlhwOE5F16Bpn7Ms6aPop+rKIjhkmT5uQWv/ePawRmckFMzEDbkLeuGn0x3dhgOi29SYhXL08bj8oleR5wHA2U9GEiC2qJAJnSKZMDYb8HR/7Oc5PQ5n5gTqhYiSQqhPlRr2nWIPzDzkBCznCFgnWP7AzbDEbPexBwAwhTgLaQk0HacQWfajzXJajVDOl1B+2mI2+SkoRMq7WJPoTsn7lMhFbPG7uYCrN2m6mYCGHuFKOXZP97ibJDI74+DRkxyBM52KYT29ImclwYuaxOE7TaXyI7P2d51Nd5MGQl8DDkiBVzDMGslRnyEyqe3vDoMYyQ+nh58oB22Hp/pO9Z0yCQhlnKkQjIBRGiabE2VclGiYqXOFxi4eIFhGQi8lROLQIExMo4nNvv5hIs2P/cIfKtTBUROsOiwiwZMI/DYDWYeLb4QiD1mGhZobjn4Dh57mogO7rn1CAt+eGUUdf/4Ri/QO78zdGDyRQzAEpQxpDFUiIaJ0PdZ4DOUIBKwFbQxGFrHOgVrhSQCz8rQjX2RpOaO9QAkv4rC1nDhZyB9xgcdJSxOusHSYm4zA55XZkJwyG/Ib5TSu6m4AoEbDbSCM+QhZjAnOoITz1mlICo2dKDz9ZDlmPuU15YxoUUToTaMflgBghpibcvGF2dPSgEQLHHgTF7OjoJ90i8Y3PgtnROOvWSERA0igkZkc/x7BbTPOBuSiIyYbHGrPDYBSyL8wOJ/oHduduhBxWMUg4AScggRUSs2MqmhMxOx/qHHicYTE7ZoIZjUrIwmJ2YgRCxOxsDSe0d/aYnWI5PWJ2rB92EzE7TaetjHdYY3aIQNDeI2bHTDCUiNltpBEibbaYHXStvWF2WJTvmWJ27fQGb5gdM4E0hhmvDYYTCajSrKgE1jDPClHpQAkMIVs4AdFZfcWeb+COz0IWWNzd0NtbNjA/UgXsA85awkwXLCtx2dvisQ7gNlK+CePkJvwYmQGKQgsk5owGCc1SNQDvrbrDDatV1L+pVpdH0jYY/NmcSrHHe10FU1WfQ59DdNU4Vu0oUZwb3O/BUun+001BGhJSIDzP2fXATAGHiIKgfQhLkOoiDMUSVNv5Zf1jUUYrcBSfg66T5qBVj0ZAVyPdgKsQW62/uUSu9H9vpXjhy3bszVV1A6KL992LYpVfl2UlLq+vm61EHX7YLqvAuPfWTCKdU+SXUwwOmjjXKB8wpTrTnOiKvKXxUp273p3TZMtFCnNeNxPGksVbpfNrRZOInK6OlfYMhIocZlMNDHrHtSwmJoS5Z7H9EYljzQUnmkXF5ZWtwClJPFG5SsdUTgqkjMbrOxh7eXhvZRf0afPzAXCslixtbRuMSYwzJWCljIOHcYeYE4GpRmRpRzccDlkiyEOmqtnkkWSqKAUof5tx6o8fw5UQWMml4KnFqN0TBQELfObzAXd0U0M/rf+E97OIudz5ztxI+ZmhyxA4eQkh2yQ/gQtBJelq5MaeB3YFsxGk86992cVhwmw52GLNMFxvZlHstjuz2O7xSMwimCyH2tPJekPtcCHkbUgSwWF7rtqjAEnOLqSjADN84fIowMban4sXQB68rYvoywopSG608IbrhDrU7hmyei5n1iDsuJkz9WZRwCaUqaWyvnqziGagjMcdHmJzEAVprbZrNoS9NRoW86m3nwEUgGrOl/e3/WrCILZmqRIC1DwxHPjmAnAnmiErbl2TMK1ZRGzQYBzVDJQBEW4ZeyIGVqKJn+ATwcolwh1Hn3HWi1I2TpOA5lAz6yV2Z3nQ6CiBkqSZB+Ct/IMYjXYZmZiJPQkiZs6TH2Nrz1JtHjwRz956Ym9n6xGjWSexP+sQpANQOSIO5+mN6cCoXxyz6YPsvg8Q+jRNMQgc3q2SxZS+0L2m3EysezvFcB6xONd8r8JJIOfl0hsceNH9cnyxnKVLHgYqKBGH0ZQpByortXP5faiYsJ1SAwSyYF1i5VOrOK4/ly5k3nSY+08Au9NUjWm87b9mrkhEEjUyAt0nrKK93qBEo6kgHwBKFD7KYGwWgYnAdp5k71IwMLkf0QSs5CrVifY8sjMvyGgGyqcGOSjKIDEDWkTNLJKIJfrQ6RmUJNG1HQRLNBo9MjIxowEhe9YPW4hYooHNsx7EoaxEwEoOI76eM1gilqg5cA8gMSSzBJEJrKCnHkN9Fk9UNJZsBQS0RIsVD5v6KgEUxNx9EDv8ZBlkvVx6w+mOdKoqGtgbOXmtDfn8frXouGodP+2+adfV39htyl28rV7kwQFyy66lF7gsVtO/JvebG2rObchQ3c2uL1gNpUze1uW2JXTriRxzB9flYvvoD9Xj/l7/8fULtdWdsk94CHN14K+ICTA7WFKTe8a+/BXN6IG+3DR52jZ6R2Y6PzORBBtwE/LGTQ6q0z7ANKOzeUiEXaadH3iMBeVUft3SusJhuQybNSD2bp9SQrWmJcD4yWguveF062rUe/6pG65wjvdQP0T8zHWgdBxsZE9N2FZOs4Dj7QgPCUcNVJxA0MNC5uG4czhqbA2MJAF5bGZbGK6uBIEth6gED1qAcKZWsRRi7akG6vXWK8ZNnN1PXWOQZjB/rcl1eNNtWUhXbaD7D93hgGfHkEx11WKNh4ZGwAEj4gCKEDUe4tSwj17jIcpHB+MWcAxgu9bV7esW8BysRBOwkqNom8PxKuKRnQXPmUkjxadOPnMFkklCWkQ12oo1Hh50OoeTIUjImfFtj0UUs06NR8CgOnOe6h9bjYdq80R54OnWEx6p6TCozvql+mONh2bCGwaaM7OcB8Vhzy7l/gZCZb4PxP00NR48y4+QxZjA0MMWnVzu/WIYRTcKfu+TUch6ufQGB460Ci1ZZuWT12L5fEqGJGbXO7E8A5yCuYq3+Muu5yaAV8yu26quNEe67HmnWO3y9Nx6CivXmGF/e1+tpikOyPo9Gc2lN5yu1XKThqNPnQxM4XS1lvoh4haR2I+5dTcwAIPpj7YKNQgMkIdE2wYqTjCjGjL/kato2yFzHHPrGpMDBIjBIybMzSpcCQIKDqPB3HlRRYQBPgQMkPeDASLhNeRSnExLiVdWSpG/Hp88V+lc7bFwJsrl+qV8LueT2e3uqozpdJhAmzLtwj4tBiRe+W+xXv/4tg2x62i7urT7yJ/LTQh92KA4Cu7s2etUvoEHNKbQhTLmm6MrueObdvLnmEtUgIuWBhygSYWZGTRiMnSdrQADqe0IphQma0xlrz/4seeDXGEZNDHJAX74+ko4jBFp5qL6qq+kyeiHwadMlrwchdSdox9hljIAASea8Uz+9l/NAcXySg2NZE2fadpbfFVXUmTi3g2/upKiwbkcwGvMoUQZe/sMLJT6cTg40T+wM39DkGjENV8g656nAY2h5nzaWFnpQZ1z0COVI037uq+MCjU6BXdUQlbtNQ4oZc4zKqMrrAT2rqKf5QwlxXLCYUwOYTLNIcQn0n1suHoqEmeCWtR2Dr8Y8N4ykL96Whr29OMPXVYJK88UshgTGAKyCfFTgMThELakOdNlPzIPWY9Jb3DgRDsY1RYL6PYroTQ5VECXEOSigA4OkUtE15NrDFlxhQjt+WTMbX9dO9l0xBU/CDKVoH4Q/zRkx/9A9x/YIRQSEsX98LZYcaXRURTSz1oPw5VgpOHQUcQm6FcMED5dgCDIHOluT3folFBbgYcrIVis6ZLwRKVzLLgKWHCljFZCtn18x1dyyTch580NNGkNPbRUbUrw56E5OFrRf4TdAkGS3B+KsaV0qaj9GY6Sh5FnS/Pewrq34seHsPqG//ylz4dDelhSl4ieGAvA/5J0f8C6nmAWZZaK+ALOUBMcto6M3t6ygdkEDk/WSLKAuXMctpDsI+w/wiH33wS16hlENZs8kiCKw6NjEbGMntWV/HWtUKKDy5TylLfFY13HsrGusef3qChDAiaiOj5IhQrRAWHdkzY65En/91aumy34sh3QcVXdgOjiffeiUqQkLlw180MWb5VqrjkiEdWnLWvca+qZ5BM9evKLNNjDL9PMJvfF7Hry8Mfz5rpUbF//nBawnxbBgZHtmdBiXQ4TnebuOQzbWIt4Wvl2GYiRYevTysFKGTVzv63sRMiyt3P1siAMB6IgHLCZhYwemEIIHI2WcdVyenOCSciZmQPdfwAV5GKeWpD9V7Ge2M2ikxGg9kVfQYh2FuL7JMtA7SyioG0wbgHCYifbLiVLkA7B05lyBFZyBMtV5lLfWOUMliMhYaFBFtvvDucTxNQcDeBPI6uwUGxp8aHTMQXCz1Xwzx9iQHUg0MjFLGRGlDovXRpbT4tq82xrh9WVYDGMw6haSH2sXbInPJjxlMOTUcwJn8hTf3I4dsol4U3glNjVspVHdJgs5gQGHnae+zmyFuFM9osry42OPBoFE6cSJL3jdFeamoBLZ6+6+bB9LQjl5EBjS54nDvpaEEphkl4oEtcsjKA/1EyS7fFoSHqHAw4OCc8NsrMCIQYVCw3YWkFDzrMaKgEQIEBIgJQ6P1tmbL0tlZpSmsMsa5Y1S0G97tJhjGNlRxopeKjMGh3hoWuS2Mq8shSCit0h6cX3jw0utgx2MufAVmLror56qUOl04hQXfjgg6tCTgkbapYbeHFIwOghvDhx6sCwI/ET+1/Y4KyAEqAimDsx9/wyuJRhhW7/MBwiSYi4PUaOMt9I5AgabBDGykg0y5FadfrhYIuNL8AHK03AidujvagYVDzeHo9qk+FgJQHLhjA8ohc7jD+pkWNrj/KQdYN0twhu2jeZKppqDzfyLDibaSxgeqpPau5QhK1b/BiCFXLmD+vXpBq7p3RmDybAcmt0RlmKg6VcRlM6SDb2T50ozQoFNROk/JVDMQOsdfUyWdS/Ps2K90aur4+6yXtMlZagZ8dOQgm+aCbahWXWlTschmViUrQPwVdx2V9uf/vp1kCArY/LnhVPa40cuzgsu2XGPU1vHUPuuPBRgWLU4zl1/OdE0rkq2Kd7xI3j2/jEUmwrYazoE3vEqQ4T2gIwITxi8fEd4ZxW1uz9ckMuSPKdqUPH/WMDZc1UIlyTu7vq65/PQSZibvoOslIdZG3DKHZBj6AnYX2MCAWJFt4QEUrqvHIgRigCinUQoSDkb4ISjwDvycQncKIDzYkd7SlBErwLjyZm2M+kdQoHp9PccXkeHz28S+HgYybG6gRBd0ePAqr7n4bc/wgCnqhlKRwXzTiI3821LFyJ+UMCeIQAneMCKgFFQjUIApiNYdoJwaC4KRVnVYYYdpLF85xOdUopMHc0tyw6UFZKYdTvUF2K2plY1WjLXqfyDZz+nNqenErgSXLKSi75ZvRHfROYKklDnvWd9etA+DBli8PR5+L83pa84lzN3nKpMoqfTlciPAb4yM5QBVGpG6Mqd1FV7iyqgvGZK7AKfpCwK+7YCgc1JoMES6DtFghhCGOSm4CFEZQ+KNgcA+XbcnXvidOZPNYfSDksyHA11Z/veX53Uj56SJTDkpg2vxBEykef9lX3Pw25/zHre6qOBcOgKpfH9qx0ZSXm7yzEXBerRUj6NFFWCJiolWr+IGnhtEdZdifLtnjpca3gykWCH5Q2GWVXLhIT/DpmE62kQcIVZrFk9N3YaQYDUc1ZFv723wQIiGmoQ2o1gWBNYnvwkbJS6i2dwJKwExj31oabklcusG709vlMKdSZLLGkOYbJKG5G896mFPbsC+baf9YhhOP5SSBk9eeyrM9T2t1eKfCXX8rHor7j/wE= -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | **Author**: [@PiotrBerebecki](https://github.com/PiotrBerebecki) 2 | **Maintainer**: [@PiotrBerebecki](https://github.com/PiotrBerebecki) 3 | 4 | # Git Workflow Workshop for Two Programmers 💻 💻 5 | 6 | 7 | 8 | 9 | ## Workshop summary 10 | 11 | An exercise to practice git workflow skills. The workshop should be undertaken by two programmers, working on two computers. The skills practiced include: 12 | 13 | - cloning a repository 14 | - creating branches 15 | - switching branches 16 | - adding changes to staging area 17 | - committing changes 18 | - pulling latest version from the remote master branch 19 | - merging master branch into recently created branch 20 | - resolving merge conflicts 21 | - pushing to remote repository 22 | - creating a pull request on GitHub 23 | - merging a pull request on GitHub 24 | 25 | 26 | 27 | 28 | # Initial setup :rocket: 29 | 30 | You're working in a team of two on a project for a new client. Steps 1 to 8 in this section should be completed by one of you, which we'll refer to as `Programmer 1`. 31 | 32 | ## Step 1 - Programmer 1 creates a new GitHub repo and clones it 33 | 34 | 1. Go to your cohort's GitHub organisation and create a new repo, initialising it with a `README.md`. 35 | 36 | 2. [Clone](https://help.github.com/articles/cloning-a-repository/) this new repository using your terminal. 37 | 38 | clone repository dialog 39 | 40 | ```sh 41 | $ git clone 'PASTE THE URL OF YOUR REPOSITORY HERE' 42 | ``` 43 | 44 | 3. Move into the newly created directory. 45 | 46 | ```sh 47 | $ cd your-repo-name-here 48 | ``` 49 | This is what your remote and local repositories look like after this. HEAD is a reference to your current location.
50 | repo visual after step 1 51 | 52 | 53 | ## Step 2 - Raise your issues on the work to be done 54 | 55 | Normally, you would decide on which "features" you were going to build and then break these down into smaller issues before starting the work. 56 | 57 | For the sake of this exercise, we're just going to [add one issue](https://help.github.com/articles/creating-an-issue/) at the moment. Your client wants a beautifully styled heading for the homepage. It should be simple, bold, black writing with a background shadow that makes it stand out. 58 | 59 | 1. Raise a new issue with a descriptive title. 60 | 61 | 2. In the body of the issue, provide more detail about how to complete the work. 62 | 63 | 3. Assign yourselves to this issue. 64 | 65 | 66 | 67 | 68 | 69 | ## Step 3 - Create and move to a new branch 70 | 71 | There are many types of workflow. At FAC, we use [the GitHub flow](https://guides.github.com/introduction/flow/), where the `master` [branch](](https://help.github.com/articles/about-branches/)) is always deployable. In this flow, each branch is used for a separate feature. 72 | 73 | 1. Create a branch with a unique and descriptive name. For example, `create-heading-with-shadow`. 74 | 75 | ```sh 76 | $ git branch create-heading-with-shadow 77 | ``` 78 |
79 | repo visual after step 1 80 | 2. Leave the master branch by switching to the new branch you have just created. 81 | 82 | ```sh 83 | $ git checkout create-heading-with-shadow 84 | ``` 85 |
86 | repo visual after step 1 87 | 88 | 89 | ## Step 4 - Write enough HTML & CSS to satisfy the requirements 90 | 91 | 1. Add the following code into a file called `index.html`. 92 | ```html 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | Git Workflow Workshop 101 | 102 | 103 | 104 | 105 |

GIT WORKFLOW WORKSHOW

106 | 107 | 108 | 109 | 110 | ``` 111 | 112 | 2. Create a new file called `style.css` which contains: 113 | ```css 114 | * { 115 | margin: 0; 116 | padding: 0; 117 | } 118 | 119 | .page-heading { 120 | box-sizing: border-box; 121 | font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif; 122 | font-size: 3.5rem; 123 | padding: 5rem 3rem; 124 | text-align: center; 125 | text-rendering: optimizeLegibility; 126 | color: #131313; 127 | background-color: #e7e5e4; 128 | letter-spacing: .15em; 129 | text-shadow: 1px -1px 0 #767676, -1px 2px 1px #737272, -2px 4px 1px #767474, -3px 6px 1px #787777, -4px 8px 1px #7b7a7a, -5px 10px 1px #7f7d7d, -6px 12px 1px #828181, -7px 14px 1px #868585, -8px 16px 1px #8b8a89, -9px 18px 1px #8f8e8d, -10px 20px 1px #949392, -11px 22px 1px #999897, -12px 24px 1px #9e9c9c, -13px 26px 1px #a3a1a1, -14px 28px 1px #a8a6a6, -15px 30px 1px #adabab, -16px 32px 1px #b2b1b0, -17px 34px 1px #b7b6b5, -18px 36px 1px #bcbbba, -19px 38px 1px #c1bfbf, -20px 40px 1px #c6c4c4, -21px 42px 1px #cbc9c8, -22px 44px 1px #cfcdcd, -23px 46px 1px #d4d2d1, -24px 48px 1px #d8d6d5, -25px 50px 1px #dbdad9, -26px 52px 1px #dfdddc, -27px 54px 1px #e2e0df, -28px 56px 1px #e4e3e2; 130 | } 131 | ``` 132 | 133 | 134 | 135 | 136 | ## Step 5 - Add the new files to the staging area 137 | 138 | 1. Add `index.html` and `style.css` to the [staging area](http://softwareengineering.stackexchange.com/questions/119782/what-does-stage-mean-in-git). 139 | 140 | ```sh 141 | $ git add index.html style.css 142 | ``` 143 | repo visual after step 1 144 | 145 | 146 | ## Step 6 - Commit your changes 147 | 148 | The history of a project is made up of ["commits"](https://stackoverflow.com/questions/2745076/what-are-the-differences-between-git-commit-and-git-push). Each commit is a snapshot of your whole repository at one particular time. 149 | 150 | 1. Commit the files that are in the staging area. 151 | 152 | Before closing the commit message with a quote symbol you can press enter on your keyboard to continue typing in the new terminal line. The text in the second line can be used as an additional message. 153 | 154 | It is a good practice to link your commit to an existing issue by typing `Relates #1`. Thanks to using the hash symbol followed by the relevant issue number your commit will be [automatically linked to an existing issue](https://help.github.com/articles/autolinked-references-and-urls/). 155 | 156 | ```sh 157 | $ git commit -m 'add git workshop heading & shadow styling 158 | > Relates #1' 159 | ``` 160 | repo visual after step 1 161 | 162 | 163 | ## Step 7 - Push your local version up to GitHub 164 | 165 | At this point, your remote repo looks exactly the same as at the beginning. You need to push your changes. 166 | 167 | 1. [Push](https://help.github.com/articles/pushing-to-a-remote/) the `create-heading-with-shadow` branch up to the "origin" i.e. the GitHub repo that you cloned from. 168 | 169 | ```sh 170 | $ git push origin create-heading-with-shadow 171 | ``` 172 | 173 | repo visual after step 1 174 | 175 | 176 | ## Step 8 - Create a pull request 177 | 178 | 1. Programmer 1 navigates to the repository on GitHub.com and creates a [pull request](https://help.github.com/articles/creating-a-pull-request/#creating-the-pull-request). 179 | 180 | + Add a descriptive title (e.g. `Create page heading`) and leave a comment linking the pull request to the issue. 181 | 182 | + Select Programmer 2 as an [assignee](https://help.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/). 183 | 184 | open pull request page 185 | 186 | 187 | 188 | 189 | ## Step 9 - Programmer 2 merges the pull request :+1: 190 | You should never merge your own pull requests. A PR gives the rest of your team the chance to review before your changes are merged into `master`. In your projects, you will be asking the other pair to do this. 191 | 192 | 1. Programmer 2 reviews the changes and [merges the pull request](https://help.github.com/articles/merging-a-pull-request/#merging-a-pull-request-on-github) on GitHub.com. 193 | 194 | pull request tab button 195 | 196 | Now your remote repo looks like this:
197 | repo visual after step 1 198 | 199 | 200 | 201 | # Splitting the work 202 | Your client has just called you and asked to improve heading on their [company website](https://piotrberebecki.github.io/git-workflow-workshop-for-two/). 203 | 204 | There are two issues that when resolved will make the heading look really nice: 205 | 206 | 1. Spelling mistake in the heading (the word 'WORKSHOW' should be replaced with 'WORKSHOP') 207 | 1. The name of the css class in the heading needs to be updated so that existing styles in the `style.css` file can take effect (`class="some-heading"` should be replaced with `class="page-heading"`). 208 | 209 | Current heading: 210 | 211 | git workflow workshop heading without css style 212 | 213 | When you apply the two changes above the heading will look like this: 214 | 215 | git workflow workshop heading with css style 216 | 217 | 218 | You decide that one of you **(Programmer 1) will resolve issue number 1** while the other person **(Programmer 2) will resolve issue number 2**. When you begin working on your weekly projects, you will always be pairing. So programmer 1 represents "pair 1" and programmer 2 represents "pair 2". 219 | 220 | **Note: Only one line in the `index.html` file needs to be modified.** 221 | 222 | 223 | 224 | ## Step 1 - Programmer 2 clones the repo 225 | 226 | 1. Make sure both teammates have a cloned, so you each have a local version on your own computer 227 | 228 | ```sh 229 | $ git clone 'PASTE THE URL OF YOUR REPOSITORY HERE' 230 | ``` 231 | 232 | 233 | 234 | 235 | ## Step 2 - Raise these 2 new issues 236 | 237 | 1. Create the following two issues and assign each one to a different person 238 | 239 | + `Fix spelling typo in

heading` (Programmer 1) 240 | 241 | + `Correct the class name of

heading to match the existing class name in the css file` (Programmer 2) 242 | 243 | 244 | 245 | ## Step 3 - Both programmers create one branch each and switch to them 246 | 247 | 1. Both programmers create one branch each: `fix-typo-heading` (Programmer 1) and `update-class-heading` (Programmer 2). 248 | 249 | ```sh 250 | # Programmer 1: 251 | $ git branch fix-typo-heading 252 | 253 | # Programmer 2: 254 | $ git branch update-class-heading 255 | ``` 256 | 257 | 1. Both programmers leave the master branch by switching to the new branches. 258 | 259 | ```sh 260 | # Programmer 1: 261 | $ git checkout fix-typo-heading 262 | 263 | # Programmer 2: 264 | $ git checkout update-class-heading 265 | ``` 266 | 267 | Note: You can achieve both steps _at once_ with `git checkout -b `.
268 | repo visual after step 1 269 | 270 | 271 | ## Step 4 - Both programmers open their `index.html` files and make one requested change each 272 | 273 | 1. **Programmer 1 fixes only the spelling typo** in the heading (WORKSHOW -> WORKSHOP). Please do not update the class name. This is dealt with by Programmer 2. 274 | 275 | ```html 276 |

GIT WORKFLOW WORKSHOP

277 | ``` 278 | 279 | 1. **Programmer 2 updates only the class name** of the heading (`class="some-heading"` -> `class="page-heading"`). Please do not fix the spelling mistake. This is dealt with by Programmer 1. 280 | 281 | ```html 282 |

GIT WORKFLOW WORKSHOW

283 | ``` 284 | 285 | 286 | 287 | 288 | ## Step 5 - Both programmers save their `index.html` files and check status 289 | 290 | 1. Both programmers save their `index.html` files. 291 | 292 | 2. Both programmers check the [status](https://git-scm.com/docs/git-status) of their files, to confirm that `index.html` has been modified. 293 | 294 | ```sh 295 | $ git status 296 | ``` 297 | 298 | 299 | 300 | 301 | ## Step 6 - Both programmers add the modified `index.html` file to the staging area 302 | 303 | 1. Both programmers add their modified `index.html` files to the staging area. 304 | 305 | ```sh 306 | $ git add index.html 307 | ``` 308 | 309 | 310 | 311 | 312 | ## Step 7 - Both programmers commit their changes 313 | 1. Both programmers commit the changes. Don't forget the multi-line commit message with the referenced issue. 314 | 315 | ```sh 316 | # Programmer 1: 317 | $ git commit -m 'Fix typo in page heading 318 | > Relates #' 319 | 320 | # Programmer 2: 321 | $ git commit -m 'Update class name in heading 322 | > Relates #' 323 | ``` 324 | 325 | repo visual after step 1 326 | 327 | 328 | ## Step 8 - Programmer 1 switches to `master` branch and pulls down the remote `master` branch 329 | We have so many programmers working on this project now, who knows what changes may have happened to the `master` branch since the last time we looked at the remote version that's on GitHub? 330 | 331 | 1. Programmer 1 switches to `master` branch. 332 | 333 | ```sh 334 | $ git checkout master 335 | ``` 336 | 337 | 1. Programmer 1 [pulls](https://git-scm.com/docs/git-pull) the `master` branch from the remote (GitHub repo) to make sure that the local version of `master` is up to date with the remote (GitHub) version of `master`. (There should be no changes since neither of you has pushed any changes to the remote yet.) **It is a good practice to regularly check for changes on the remote before pushing your local changes.** 338 | 339 | ```sh 340 | $ git pull origin master 341 | ``` 342 | 343 | 1. Programmer 1 switches back to the `fix-typo-heading` branch. 344 | 345 | ```sh 346 | $ git checkout fix-typo-heading 347 | ``` 348 | 349 | 350 | 351 | 352 | ## Step 9 - Programmer 1 pushes `fix-typo-heading` branch to remote 353 | 354 | 1. Programmer 1 [pushes](https://help.github.com/articles/pushing-to-a-remote/) `fix-typo-heading` branch to remote 355 | 356 | ```sh 357 | $ git push origin fix-typo-heading 358 | ``` 359 | 360 | repo visual after step 1 361 | 362 | 363 | ## Step 10 - Programmer 1 creates a pull request 364 | 365 | 1. Programmer 1 navigates to the repository on GitHub.com and creates a [pull request](https://help.github.com/articles/creating-a-pull-request/#creating-the-pull-request). 366 | 367 | + Add a descriptive title (e.g. `Fix the spelling mistake in page heading`) and leave a comment linking the pull request to the issue. 368 | 369 | + Select Programmer 2 as an [assignee](https://help.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/). 370 | 371 | open pull request page 372 | 373 | 374 | 375 | 376 | ## Step 11 - Programmer 2 reviews the pull request 377 | 378 | Programmer 2 [reviews the pull request](https://help.github.com/articles/about-pull-request-reviews/) 379 | 380 | 1. Step through each commit (in this case one) 381 | 382 | 2. Check the "Files changed" tab for a line-by-line breakdown. 383 | 384 | 2. Click "Review changes" and choose: 385 | + "Comment" 386 | + "Approve" 387 | + "Request changes" 388 | 389 | 390 | 391 | 392 | ## Step 12 - Programmer 2 merges the pull request :+1: 393 | 394 | 1. Programmer 2 [merges the pull request](https://help.github.com/articles/merging-a-pull-request/#merging-a-pull-request-on-github) on GitHub.com. 395 | 396 | pull request tab button 397 | 398 | 2. Programmer 2 opens the live website on GitHub pages to double check that the spelling mistake has been corrected. Go to the repository settings on Github and scroll down until you find Github Pages title. Select the master branch as the source and save, and you'll then see the URL where the live website is. 399 | 400 | repo visual after step 1 401 | 402 | 403 | 404 | ## Step 13 - Programmer 2 switches to `master` branch, pulls the remote `master` branch, tries to merge it into `update-class-heading` branch and :collision: resolves merge conflicts :collision: 405 | 406 | 1. Programmer 2 switches to `master` branch. 407 | 408 | ```sh 409 | $ git checkout master 410 | ``` 411 | 412 | 2. Programmer 2 [pulls](https://git-scm.com/docs/git-pull) the remote `master` branch to make sure that the latest version of the project is available locally. 413 | 414 | ```sh 415 | $ git pull origin master 416 | ``` 417 | 418 | repo visual after step 1 419 | 420 | 3. Programmer 2 switches back to the `update-class-heading` branch. 421 | 422 | ```sh 423 | $ git checkout update-class-heading 424 | ``` 425 | 426 | 4. Programmer 2 tries to merge `master` branch into `update-class-heading` branch. 427 | 428 | ```sh 429 | $ git merge master 430 | ``` 431 | 432 | 5. There should be a :collision: merge conflict :collision: since the line with the `

` heading is different. [Merge conflict should be highlighted with HEAD and master markers](http://stackoverflow.com/questions/7901864/git-conflict-markers) as follows: 433 | 434 | ```html 435 | 436 | 437 | <<<<<<< HEAD 438 |

GIT WORKFLOW WORKSHOW

439 | ======= 440 |

GIT WORKFLOW WORKSHOP

441 | >>>>>>> master 442 | 443 | 444 | ``` 445 | 446 | 6. Programmer 2 removes HEAD and master markers and leaves only one line with `

` heading so that both issues are addressed. 447 | 448 | ```html 449 | 450 | 451 |

GIT WORKFLOW WORKSHOP

452 | 453 | 454 | ``` 455 | 456 | 7. Programmer 2 adds the `index.html` file to staging area and commits the changes occurred during the merge conflict. 457 | 458 | ```sh 459 | # First add to staging area 460 | $ git add index.html 461 | 462 | # Then commit changes 463 | $ git commit -m 'Fix merge conflict 464 | > Relates # and #' 465 | ``` 466 | 467 | repo visual after step 1 468 | 469 | 470 | ## Step 14 - Programmer 2 pushes `update-class-heading` branch to remote 471 | 472 | 1. Programmer 2 [pushes](https://help.github.com/articles/pushing-to-a-remote/) `update-class-heading` branch to remote. 473 | 474 | ```sh 475 | $ git push origin update-class-heading 476 | ``` 477 | 478 | repo visual after step 1 479 | 480 | 481 | 482 | ## Step 15 - Programmer 2 creates a pull request 483 | 484 | 1. Programmer 2 navigates to the repository on GitHub.com and creates a [pull request](https://help.github.com/articles/creating-a-pull-request/#creating-the-pull-request) selecting `master` as a base branch and `update-class-heading` as a head branch. Please add a descriptive title (e.g. `Update class name in page heading`) and leave a comment linking the pull request with the issue `#`. Please also select Programmer 1 as an [assignee](https://help.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/). 485 | 486 | 487 | 488 | 489 | ## Step 16 - Programmer 1 merges the pull request :+1: 490 | 491 | 1. Programmer 1 reviews and [merges the pull request](https://help.github.com/articles/merging-a-pull-request/#merging-a-pull-request-on-github) on GitHub.com. 492 | 493 | repo visual after step 1 494 | 495 | 2. Programmer 1 opens the live website on GitHub pages to double check the new heading style. 496 | 497 | git workflow workshop heading with css style 498 | 499 | 500 | 501 | 502 | ## That's it 😄 Thank you for checking out the 'Git Workflow Workshop for Two Programmers' :clap: 503 | 504 | ***A summary of the above commands and what they do can be found [here](/images/git-flow-summary-table.png) in a neat little table.*** 505 | 506 | 507 | **Note**: This workshop does not introduce the very popular idea of forking a repository, which is very useful when wanting to contribute to existing open source projects 💯. Forking is not required when starting a new repository under `foundersandcoders` or `FAC-X` organisations since all your fellow students will be automatically added as contributors. 508 | 509 | Having said that, we recommend you read about forking to be able to contribute to open source projects. You can read more about it [here](https://help.github.com/en/articles/fork-a-repo). 510 | --------------------------------------------------------------------------------