0. (gitea) create repo 1. (gitea) create branch 'develop' from master 2. (gitea) set branch 'develop' as default branch 3. (gitea) enable branch protection with option 'disable push' for branch 'master' 4. (gitea) enable branch protection with option 'disable push' for branch 'develop' 5. (local) clone repo 6. (gitea) create branch 'feat-a' from develop 7. (local) get branch 'feat-a', add files, push and delete branch $ git fetch -p && git branch -a $ git checkout feat-a add file a $ git add . $ git commit -m "feat: add a file" $ git push && git checkout develop && git branch -D feat-a 8. (gitea) create pull request with 'merge into: develop' ... 'pull from: feat-a' 9. (gitea) merge this pull request with mode 'rebase and merge (--no-ff)' 10. (gitea) delete branch 'feat-a' ---- 11. (gitea) create branch 'feat-b' from develop 12. (local) get branch 'feat-b', add files, push and delete branch $ git fetch -p && git branch -a $ git checkout feat-b add file b0 $ git add . $ git commit -m "feat: add b0 file" add file b1 $ git add . $ git commit -m "feat: add b1 file" $ git push && git checkout develop && git branch -D feat-b 13. (gitea) create pull request with 'merge into: develop' ... 'pull from: feat-b' 14. (gitea) if displayed 'update branch' 15. (gitea) merge this pull request with mode 'rebase and merge (--no-ff)' 16. (gitea) delete branch 'feat-b' ---- 17. (gitea) create branch 'release-1' from develop 18. (local) get branch 'release-1', add release info, push and delete branch $ git fetch -p && git branch -a $ git checkout release-1 add file release $ git add . $ git commit -m "chore: update release info" $ git push && git checkout develop && git branch -D release-1 19. (gitea) create pull request with 'merge into: develop' ... 'pull from: release-1' 20. (gitea) merge this pull request with mode 'rebase and merge' 21. (gitea) DO NOT delete branch 'release-1' 22. (gitea) create pull request with 'merge into: master' ... 'pull from: release-1' 23. (gitea) merge this pull request with mode 'merge pull request' 24. (gitea) delete branch 'release-1' ---- 25. (gitea) create branch 'feat-c' from develop 26. (gitea) create branch 'feat-d' from develop 27. (local) get all new branches $ git fetch -p && git branch -a 28. (local) checkout branch 'feat-c', add files and push branch $ git checkout feat-c add file c0 $ git add . $ git commit -m "feat: add c0 file" $ git push ---- 29. (local) create shared file with entry for feat-c $ git checkout -b create-shared develop add shared file $ git add . $ git commit -m "feat: update shared" 30. (local) push and delete branch $ git push -u origin create-shared && git checkout develop && git branch -D create-shared 31. (gitea) create pull request with 'merge into: develop' ... 'pull from: create-shared' 32. (gitea) merge this pull request with mode 'rebase and merge' 33. (gitea) delete branch 'create-shared' 34. (gitea) create pull request with 'merge into: develop' ... 'pull from: feat-c' 35. (gitea) ONLY 'update branch' 36. (local) pull shared file to feat-c $ git checkout feat-c $ git pull ---- 37. (local) add file to branch 'feat-c' $ git checkout feat-c add file c1 $ git add . $ git commit -m "feat: add c1 file" $ git push ---- 38. (local) checkout branch 'feat-d', add files, push and delete branch $ git checkout feat-d add file d $ git add . $ git commit -m "feat: add d file" $ git push && git checkout develop && git branch -D feat-d 39. (gitea) create pull request with 'merge into: develop' ... 'pull from: feat-d' 40. (gitea) if displayed 'update branch' 41. (gitea) merge this pull request with mode 'rebase and merge (--no-ff)' 42. (gitea) delete branch 'feat-d' ---- 43. (gitea) create branch 'release-2' from develop 44. (local) get branch 'release-2', add release info, push and delete branch $ git fetch -p && git branch -a $ git checkout release-2 update file release $ git add . $ git commit -m "chore: update release info" $ git push && git checkout develop && git branch -D release-2 45. (gitea) create pull request with 'merge into: develop' ... 'pull from: release-2' 46. (gitea) merge this pull request with mode 'rebase and merge' 47. (gitea) DO NOT delete branch 'release-2' 48. (gitea) create pull request with 'merge into: master' ... 'pull from: release-2' 49. (gitea) DO NOT 'update branch' 50. (gitea) merge this pull request with mode 'merge pull request' 51. (gitea) delete branch 'release-2' ---- 52. (local) checkout branch 'feat-c', add files, push and delete branch $ git checkout feat-c add file c2 $ git add . $ git commit -m "feat: add c2 file" add file c3 $ git add . $ git commit -m "feat: add c3 file" $ git push && git checkout develop && git branch -D feat-c 53. (gitea) go to pull request 'feat-c' 54. (gitea) if displayed 'update branch' 55. (gitea) merge this pull request with mode 'rebase and merge (--no-ff)' 56. (gitea) delete branch 'feat-c' ---- 57. (gitea) create branch 'feat-e' from develop 58. (local) get branch 'feat-e', add files and push branch $ git fetch -p && git branch -a $ git checkout feat-e add file e0 $ git add . $ git commit -m "feat: add e0 file" $ git push ---- 59. (local) create shared file with entry for feat-e $ git checkout -b update-shared develop add shared file $ git add . $ git commit -m "feat: update shared" 60. (local) push and delete branch $ git push -u origin update-shared && git checkout develop && git branch -D update-shared 61. (gitea) create pull request with 'merge into: develop' ... 'pull from: update-shared' 62. (gitea) merge this pull request with mode 'rebase and merge' 63. (gitea) delete branch 'update-shared' 64. (gitea) create pull request with 'merge into: develop' ... 'pull from: feat-e' 65. (gitea) ONLY 'update branch' 66. (local) pull shared file to feat-e $ git checkout feat-e $ git pull ---- 67. (local) add file to branch 'feat-e', push and delete branch $ git checkout feat-e add file e1 $ git add . $ git commit -m "feat: add e1 file" $ git push && git checkout develop && git branch -D feat-e 68. (gitea) go to pull request 'feat-e' 69. (gitea) if displayed 'update branch' 70. (gitea) merge this pull request with mode 'rebase and merge (--no-ff)' 71. (gitea) delete branch 'feat-e' ---- 72. (gitea) create branch 'release-3' from develop 73. (local) get branch 'release-3', add release info, push and delete branch $ git fetch -p && git branch -a $ git checkout release-3 update file release $ git add . $ git commit -m "chore: update release info" $ git push && git checkout develop && git branch -D release-3 74. (gitea) create pull request with 'merge into: develop' ... 'pull from: release-3' 75. (gitea) merge this pull request with mode 'rebase and merge' 76. (gitea) DO NOT delete branch 'release-3' 77. (gitea) create pull request with 'merge into: master' ... 'pull from: release-3' 78. (gitea) DO NOT 'update branch' 79. (gitea) merge this pull request with mode 'merge pull request' 80. (gitea) delete branch 'release-3'