Git

From BC$ MobileTV Wiki
Revision as of 03:40, 12 May 2022 by Bcmoney (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

git is an SCM methodology and technology using an (arguably) simplified set of commands for version control in comparison to similar methodologies (namely, CVS and SVN), and allowing for distributed repositories such that a developer first "pulls" a full copy of the repository locally with its own versioning. Once they are satisfied with a particular set of code updates or new feature addition, they can "push" all of their code from local (as per traditional SCM), or, simply push the changes which can then be first piped through a "Code Review" step in the SCM pipeline before being merged back to the main repository, which via DIFF can show exactly what changes were made and whether there are any conflicts with the latest version of the repository. If there are conflicts the updated code never gets merged back to the main tree directly, another pull request will get the developer's repository up-to-date first, and then they can try again. This in theory, reduces situations where small incremental updates from widely dispersed teams of developers wipe out the work of other developers in the main "branch".



Distributed Repositories

git versioning stores code in a repository (commonly abbreviated as repo). The repo is by default held on your own system with branches separate from master; however that configuration is of limited use to larger teams. It is much better to run in distributed version control mode to realize the full power of git. Some popular sites & web services have cropped up to support distributed git modes, and will be summarized below.


GitLab

GitLab is an open source SCM tool that combines a web-based GIT platform with a desktop client (via Gitorious acquisition)[1], and a strong focus on CI/CD.[2][3]

[4] [5] [6] [7] [8] [9] [10]

BitBucket

BitBucket is an SCM tool that provides both GIT and Mercurial repository hosting either in a Cloud or Self-Hosted model. Tthe Self=Hosted option is formerly known as "Stash" before Atlassian acquired BitBucket and merged the two tools under the BitBucket banner[11], taking the BitBucket name)

Stash

[13] [14] [15] [16] [17] [18] [19]

BitBucket Cloud

[26] [27]

[36] [37]

BitBucket Pipelines

[44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85]


Workflows

[89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105]


BitBucket Deployments

[106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117][118][119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132]

Git LFS
  • GIT Large File Storage (LFS): https://git-lfs.github.com/ (open source Git extension for versioning large files... partnership between rivals GitHub & BitBucket created this OSS extension to GIT)

[133] [134] [135] [136] [137] [138] [139] [140] [141]

[142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154]

GitHub

GitHub was "the" original web-based GIT platform. Aside from being a robust platform with good uptime, it also offers "subscription0-based" plans for Private repositories and [GitHub Pages] (a free project-info/landing-page hosting service), as well as a number of other useful features (including integrations to the most popular development tools).

[155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171]

Branching Models

[172]


Centralized

Similar to SVN.


Feature Branching

Branch-per-issue or Feature (i.e. "User Story" in Agile), branching off of "master". [173] [174] [175]


Gitflow

Branch-per-issue or Feature (i.e. "User Story" in Agile), but this time branching off of a "develop" branch which gets synched with changes (hotfixes) down from "master" as soon as possible. We can cut a "release" branch off of the "develop" branch when a significant enough amount of work has been Code Reviewed through a Pull Request (PR), giving us a release candidate that gets merged into "master". If any changes whatsoever occur in "release" they must be merged down to "develop" as well to ensure consistency.

The main goal is to keep "master" releasable (aka. ever-green), while also separating bug fix type of work from new feature development or project work.

[177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190]


Gitflow 2.0

Branch-per-issue or Feature (i.e. "User Story" in Agile), but differing from the first Gitflow proposal because now we branch any long-lived (lasting a Sprint or longer) features being developed, off of a project-specific "develop/project" branch which originates off of the "master" branch rather than a single long-lived "develop" branch. Then we cut our "release" branches directly off of the "develop/project" branches as they are completed, giving us a release candidate for production which needs to get synched with any changes (hotfixes) down from "master" as soon as they are made.

The main goal is still to keep "master" releasable (aka. ever-green) but the secondary goal is to also prevent any unwanted code from the project branches getting merged (i.e. unfinished work, half-baked feature, feature intentionally being withheld).

[199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211]

GitOps

A term coined by Operations engineers at WeaveWorks (and possibly elsewhere in the SRE/DevOps communities) following and promoting the philosophy of "versioning everything that moves/changes" or in other words "Everything-as-code" (i.e. Configuration-as-Code, Infrastructure-as-Code, Network-as-Code, Database-as-Code, Pipeline-as-Code, etc). In particular, the "GitOps movement" tends to gravitate towards git as the preferred SCM tool due to its flexibility and powerful history/branching/commit models it enables.

[212] [213] [214]

Tools

SourceTree

[222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232]


Resources


Tutorials

[236]

[237]

[242] [243]


External Links

[249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260]


References

  1. Gitorious was acquired by GitLab in 2016: http://getgitorious.com/
  2. GitLab Opens CI/CD to GitHub Users: https://dzone.com/articles/gitlab-opens-cicd-to-github-users
  3. Continuous Integration with Jenkins and GitLab: https://medium.com/@teeks99/continuous-integration-with-jenkins-and-gitlab-fa770c62e88a
  4. GitLab pricing: https://about.gitlab.com/pricing/#gitlab-com
  5. GitLab - Feature Comparison: https://about.gitlab.com/pricing/self-managed/feature-comparison/
  6. GitHub vs. Bitbucket vs. GitLab vs. Coding: https://medium.com/flow-ci/github-vs-bitbucket-vs-gitlab-vs-coding-7cf2b43888a1
  7. The Key Differences -- GitLab vs GitHub vs BitBucket: https://www.amarinfotech.com/gitlab-vs-github-vs-bitbucket.html
  8. Basic comparison of "GitLab vs GitHub vs BitBucket": https://stackshare.io/stackups/bitbucket-vs-github-vs-gitlab
  9. GitLab Outlines Scope of DevOps Ambitions: https://devops.com/gitlab-outlines-scope-of-devops-ambitions/
  10. GitLab Raises $268M to Expand its Leading DevOps Platform to Security, Monitoring, and More: https://about.gitlab.com/press/releases/2019-09-17-gitlab-raises-268m-to-expanding-leading-devops-platform.html
  11. 1 in 3 Fortune 500 companies agree -- Bitbucket is the Git solution for professional teams: http://blogs.atlassian.com/2015/09/1-3-fortune-500-companies-agree-bitbucket-git-solution-professional-teams/
  12. Bitbucket Server Download Archives: https://www.atlassian.com/software/bitbucket/download
  13. Atlassian supported Jenkins integration for Bitbucket Server: https://community.atlassian.com/t5/Bitbucket-articles/Atlassian-supported-Jenkins-integration-for-Bitbucket-Server/ba-p/1148326
  14. Atlassian announces "journey to the cloud" migration: https://www.atlassian.com/migration/assess/journey-to-cloud (BitBucket Server/Stash to be made EOL, BitBucket Data Center to have sizable price increase, only recommended for very large organizations with bespoke implementations going forward with most companies likely to move to Atlassian cloud offerings)
  15. Atlassian cloud shift quickens with Data Center price hikes: https://www.techtarget.com/searchitoperations/news/252490839/Atlassian-cloud-shift-quickens-with-Data-Center-price-hikes
  16. Announcement -- End-of-life for Bitbucket Server hosting on Windows: https://community.developer.atlassian.com/t/announcement-end-of-life-for-bitbucket-server-hosting-on-windows/54847
  17. Atlassian cloud sweetens licensing deal for enterprises: https://www.techtarget.com/searchitoperations/news/252495776/Atlassian-cloud-sweetens-licensing-deal-for-enterprises
  18. Atlassian cloud woos enterprises with SLA, security boost: https://www.techtarget.com/searchitoperations/news/252470234/Atlassian-cloud-woos-enterprises-with-SLA-security-boost
  19. Observations On The Atlassian Outage: https://www.forrester.com/blogs/observations-on-the-atlassian-outage/
  20. Migrate from Stash to Bitbucket: https://answers.atlassian.com/questions/33132594/migrate-from-stash-to-bitbucket
  21. Atlassian Stash or BitBucket for Git integration?: http://www.di.net.au/Atlassian-Stash-or-BitBucket/ (head-to-head feature comparison from 2014, just before the Atlassian merger & acquisition)
  22. How to mirror Bitbucket Cloud and GitHub repositories to Bitbucket Server (Stash): http://stiltsoft.com/blog/2015/10/how-to-mirror-bitbucket-cloud-and-github-repositories-to-bitbucket-server-stash/
  23. Sync from BitBucket to Stash: http://answers.atlassian.com/questions/21635053/sync-from-bitbucket-to-stash
  24. How to properly mirror a git repository: http://blog.plataformatec.com.br/2013/05/how-to-properly-mirror-a-git-repository
  25. Forking a Repository in BitBucket Cloud: https://confluence.atlassian.com/bitbucket/forking-a-repository-221449527.html
  26. BitBucket - ActiveDirectory & LDAP integration: https://confluence.atlassian.com/bitbucketserver/connecting-bitbucket-server-to-an-existing-ldap-directory-776640403.html
  27. Awesome Graphs for Bitbucket: https://blog.bitbucket.org/2015/08/05/awesome-graphs-for-bitbucket-visualized-statistics-for-git-and-mercurial-repositories/ | BitBucket | Stash (visualized statistics for Git and Mercurial repositories)
  28. The new Bitbucket webhooks: https://blog.bitbucket.org/2015/06/24/the-new-bitbucket-webhooks/
  29. Troubleshoot Webhooks: https://confluence.atlassian.com/bitbucket/troubleshoot-webhooks-757727842.html
  30. Tutorial -- Create and Trigger a Webhook: https://confluence.atlassian.com/bitbucket/tutorial-create-and-trigger-a-webhook-747606432.html
  31. BitBucket + Jenkins via WebHooks:
  32. BitBucket Server (Stash) plugin for Jenkins: https://marketplace.atlassian.com/plugins/com.nerdwin15.stash-stash-webhook-jenkins/server/overview
  33. Configure Bitbucket hook for jenkins: https://gist.github.com/joseraya/6838271
  34. BitBucket Jenkins integration: https://community.atlassian.com/t5/Bitbucket-questions/Bit-Bucket-Jenkins-Integration/qaq-p/219232
  35. Integrate with BitBucket -- build after each commit: https://www.youtube.com/watch?v=nNaR5Q_pIa4
  36. SourceTree password after opening Bitbucket account with gmail: https://stackoverflow.com/questions/15079971/sourcetree-password-after-opening-bitbucket-account-with-gmail
  37. What to do if you've committed sensitive data to a Bitbucket Cloud repository: https://community.atlassian.com/t5/Bitbucket-articles/What-to-do-if-you-ve-committed-sensitive-data-to-a-Bitbucket/ba-p/1293546
  38. Bitbucket Pipelines FAQ: https://confluence.atlassian.com/bitbucket/bitbucket-pipelines-faq-827104769.html (a replacement for Bamboo Cloud; "CI server" - Bamboo still exists as standalone self-hosted Bamboo Server version - that grew out of Atlassian research into GIT Workflows)
  39. Bamboo Cloud - "End Of Life" announcement (replaced by BitBucket Pipelines): https://confluence.atlassian.com/bamboocloud/bamboo-cloud-eol-827125716.html
  40. Bamboo Cloud - glossary: https://confluence.atlassian.com/bamboocloud/glossary-737184508.html (many similarities to list of supported terms in BitBucket Pipeline)
  41. An inside look at Bitbucket Pipelines, now with team variables: https://blog.bitbucket.org/2016/08/04/inside-look-bitbucket-pipelines-now-team-variables/
  42. Git Workflows a-la-carte: https://summit.atlassian.com/archives/2013/inside-the-development-team/git-workflows-a-la-carte
  43. BitBucket -- Language Guides: https://confluence.atlassian.com/bitbucket/language-guides-856821477.html
  44. Bitbucket Pipelines Provides Continuous Delivery within Atlassian’s Bitbucket Cloud: https://www.infoq.com/news/2016/06/atlassian-bitbucket-pipelines
  45. Increment a number in Bitbucket Pipelines: https://community.atlassian.com/t5/Bitbucket-questions/Increment-a-number-in-Bitbucket-pipelines/qaq-p/348030
  46. Unable to resolve dependency when the artifact is in a private repository/installed manually: https://issues.apache.org/jira/browse/MANTRUN-196
  47. BitBucket Jenkins Continuous Integration - Webhook & ngrok: https://www.youtube.com/watch?v=rcRQRJ7yRag
  48. Notifications for Bitbucket Pipelines: https://confluence.atlassian.com/bitbucket/notifications-for-bitbucket-pipelines-857053284.html
  49. Troubleshoot connections with Jira applications: https://confluence.atlassian.com/bitbucket/troubleshoot-connections-with-jira-applications-794374489.html
  50. Connect Bitbucket Cloud to Jira Software Cloud: https://confluence.atlassian.com/bitbucket/connect-bitbucket-cloud-to-jira-software-cloud-814190686.html
  51. JIRA-BitBucket integrations: https://www.atlassian.com/software/jira/bitbucket-integration
  52. Environment variables in BitBucket Pipelines: https://confluence.atlassian.com/bitbucket/environment-variables-in-bitbucket-pipelines-794502608.html
  53. Tips for scripting tasks with Bitbucket Pipelines: https://www.atlassian.com/continuous-delivery/tips-for-scripting-tasks-with-Bitbucket-Pipelines
  54. Bitbucket pipeline - possibility to merge one branch to another: https://stackoverflow.com/questions/43954327/bitbucket-pipeline-possibility-to-merge-one-branch-to-another
  55. Increment a number in Bitbucket pipelines: https://community.atlassian.com/t5/Bitbucket-questions/Increment-a-number-in-Bitbucket-pipelines/qaq-p/348030
  56. Build number that increments on every build: https://bitbucket.org/site/master/issues/12838/build-number-that-increments-on-every ($BITBUCKET_BUILD_NUMBER now available)
  57. Add structure to your pipeline with multiple steps in Bitbucket Pipelines: https://blog.bitbucket.org/2017/10/03/multiple-steps-in-bitbucket-pipelines/
  58. BrowserStack - Bitbucket Pipelines test integration: https://bitbucket.org/9ikhan/test-repo
  59. Configuring BitBucket Pipelines: https://confluence.atlassian.com/bitbucket/configure-bitbucket-pipelines-yml-792298910.html
  60. Analyze Code with Code Climate (Pipelines integration): https://bitbucket.org/ian_buchanan/pipeline-example-codeclimate
  61. How to access my local repository (from within a Pipeline): https://community.atlassian.com/t5/Bitbucket-questions/How-do-access-my-local-repository/qaq-p/752382
  62. BitBucket Pipelines + BrowserStack integration: https://www.browserstack.com/automate/continuous-integration#bitbucket
  63. BitBucket Pipeline tasks: https://confluence.atlassian.com/bitbucket/tasks-958765631.html
  64. Building a Bitbucket Pipe as a casual coder: https://community.atlassian.com/t5/Bitbucket-Pipelines-articles/Building-a-Bitbucket-Pipe-as-a-casual-coder/ba-p/1033004?utm_source=list&utm_medium=email&utm_campaign=corporate_online-community&utm_content=bitbucket-community-newsletter_EML-4581&jobid=104049800&subid=1242378284
  65. Run a set of command on deployment server after bitbucket pipeline push?: https://stackoverflow.com/questions/46744598/run-a-set-of-command-on-deployment-server-after-bitbucket-pipeline-push
  66. YAML anchors support in BitBucket Pipelines: https://confluence.atlassian.com/bitbucket/yaml-anchors-960154027.html (keep DRY with named "repeatable steps")
  67. Limit Bitbucket pipelines to specific branches: https://code-maven.com/limit-bitbucket-pipelines-to-specific-branches
  68. Bitbucket Pipelines share some steps (to achieve DRY) between branches: https://stackoverflow.com/questions/45558284/bitbucket-pipelines-share-some-steps-between-branches
  69. Branch workflows in BitBucket Pipelines: https://confluence.atlassian.com/bitbucket/branch-workflows-856697482.html
  70. Using artifacts in steps: https://confluence.atlassian.com/bitbucket/using-artifacts-in-steps-935389074.html
  71. Test reporting in Pipelines: https://confluence.atlassian.com/bitbucket/test-reporting-in-pipelines-939708543.html
  72. Bitbucket Pipeline fails saying that step is empty, null or missing: https://community.atlassian.com/t5/Bitbucket-Pipelines-questions/Bitbucket-Pipeline-fails-saying-that-step-is-empty-null-or/qaq-p/1057440
  73. Debug your pipelines locally with Docker: https://confluence.atlassian.com/bitbucket/debug-your-pipelines-locally-with-docker-838273569.html
  74. Troubleshooting Bitbucket Pipelines: https://confluence.atlassian.com/bitbucket/troubleshooting-bitbucket-pipelines-792298903.html
  75. Incomplete error message in Pipelines: https://bitbucket.org/site/master/issues/13650/incomplete-error-message-in-pipelines
  76. Fix "package 'chromium-browser' has no installation candidate" error in Docker containers: https://stackoverflow.com/questions/47203812/package-chromium-browser-has-no-installation-candidate (by first installing all required depedencies)
  77. How to configure the CHROME_BIN in pipeline: https://community.atlassian.com/t5/Bitbucket-Pipelines-questions/How-to-configure-the-CHROME-BIN-in-pipeline/qaq-p/1018855
  78. Chrome remote installation: https://gist.github.com/nicobytes/e92b9b4fb7070a925662a48dd038cf67
  79. Example demonstrating using Puppeteer to launch a headless Chromium instance for headless browser testing inside Bitbucket Pipelines: https://bitbucket.org/bitbucketpipelines/example-chromium-headless-puppeteer/src/master/
  80. Running Lighthouse using headless Chrome: https://github.com/GoogleChrome/lighthouse/blob/master/docs/headless-chrome.md#running-lighthouse-using-headless-chrome
  81. environment variable CHROME_PATH must be set to executable of a build of Chromium: https://github.com/GoogleChrome/lighthouse/issues/5424
  82. Continuous Testing at scale: The new mabl and Bitbucket Pipelines CI/CD integration: https://bitbucket.org/blog/continuous-testing-at-scale-the-new-mabl-and-bitbucket-ci-cd-integration
  83. How to configure Bitbucket Pipelines for an Android project: https://proandroiddev.com/bitbucket-pipelines-android-6eeff631f2eb
  84. It’s official! Announcing Runners in Bitbucket Pipelines: https://bitbucket.org/blog/pipelines-runners
  85. Configure your runner in bitbucket-pipelines.yml: https://support.atlassian.com/bitbucket-cloud/docs/configure-your-runner-in-bitbucket-pipelines-yml/
  86. Branching a Repository: https://confluence.atlassian.com/bitbucket/branching-a-repository-223217999.html?_ga=2.167489337.626764153.1496772028-1637114785.1468603717
  87. Workflow for Git feature branching: https://confluence.atlassian.com/bitbucket/workflow-for-git-feature-branching-814201830.html?_ga=2.54327336.1254686475.1496913344-100737214.1470925294
  88. Using branches in Bitbucket Server: https://confluence.atlassian.com/bitbucketserver/using-branches-in-bitbucket-server-776639968.html (Configuring branching models --> Branch types)
  89. Introducing code-aware search for Bitbucket Cloud: https://blog.bitbucket.org/2017/05/02/introducing-code-aware-search-for-bitbucket-cloud/
  90. What are the Bitbucket Cloud IP addresses I should use to configure my corporate firewall?: https://confluence.atlassian.com/bitbucket/what-are-the-bitbucket-cloud-ip-addresses-i-should-use-to-configure-my-corporate-firewall-343343385.html
  91. Branch permission patterns: https://confluence.atlassian.com/bitbucketserver/branch-permission-patterns-776639814.html
  92. Bringing you speed, power and flexibility with 12 new features in Bitbucket Pipelines: https://blog.bitbucket.org/2017/08/22/bringing-speed-power-flexibility-12-new-features-bitbucket-pipelines/
  93. Atlassian -- Stash/BitBucket-JIRA Integration Plugin (REST Resources): https://developer.atlassian.com/static/rest/stash/3.11.3/stash-jira-integration-rest.html?_ga=2.157625402.1000852708.1505931611-1172524177.1500495842
  94. Get commits info of a JIRA issue using REST API: https://community.atlassian.com/t5/Answers-Developer-Questions/Get-commits-info-of-a-JIRA-issue-using-REST-API/qaq-p/530323
  95. Syncing and merging come to Bitbucket: https://blog.bitbucket.org/2013/02/04/syncing-and-merging-come-to-bitbucket/
  96. BitBucket-JIRA integration: https://confluence.atlassian.com/bitbucketserver/jira-integration-776639874.html
  97. Use Smart Commits: https://confluence.atlassian.com/bitbucket/processing-jira-software-issues-with-smart-commit-messages-298979931.html
  98. Smart Commits -- apply only for specific branches?: https://community.atlassian.com/t5/Jira-questions/Smart-Commits-apply-only-for-specific-branches/qaq-p/176435
  99. Is there any Bitbucket Pipeline API available? : https://community.atlassian.com/t5/Answers-Developer-Questions/Is-there-any-Bitbucket-Pipeline-API-available/qaq-p/538056
  100. BitBucket Pipelines API -- trigger a pipeline remotely, query about past runs, etc: https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/pipelines/
  101. fatal: bad revision when using git log with BITBUCKET_COMMIT: https://community.atlassian.com/t5/Bitbucket-questions/fatal-bad-revision-when-using-git-log-with-BITBUCKET-COMMIT/qaq-p/886297
  102. How to keep DRY with BitBucket-Pipelines?: https://community.atlassian.com/t5/Answers-Developer-Questions/How-to-keep-DRY-with-BitBucket-Pipelines/qaq-p/501315
  103. How to integrate Android project deployment to Hokeyapp with Bitbucket Pipelines: https://medium.com/@ivan.dimitrov.work/integrate-hokeyapp-with-bitbucket-for-android-project-d7f3751b2bb4
  104. Permission denied from Bitbucket Pipeline: https://stackoverflow.com/questions/52973719/permission-denied-from-bitbucket-pipeline
  105. Trigger Pipeline (from a BitBucket Pipeline): https://bitbucket.org/atlassian/trigger-pipeline/src/0.3.0/
  106. Confidence to release early and often -- Introducing Bitbucket Deployments: https://blog.bitbucket.org/2017/12/05/introducing-bitbucket-deployments/
  107. yCombinator News -- Atlassian announces Bitbucket Deployments: https://news.ycombinator.com/item?id=15852929
  108. Atlassian announces Bitbucket Deployments: Giving teams confidence to release early and often: https://www.reddit.com/r/programming/comments/7hqw5k/atlassian_announces_bitbucket_deployments_giving/
  109. Deploy build artifacts to Bitbucket Downloads: https://confluence.atlassian.com/bitbucket/deploy-build-artifacts-to-bitbucket-downloads-872124574.html
  110. Deploying websites to FTP or Amazon S3 with BitBucket Pipelines: https://www.savjee.be/2016/06/Deploying-website-to-ftp-or-amazon-s3-with-BitBucket-Pipelines/
  111. Getting a download from BitBucket with Curl (wget doesn’t work): https://invent.life/nesity/getting-a-download-from-bitbucket-with-curl-wget-doesnt-work/
  112. Download private BitBucket repository zip file using http authentication: https://stackoverflow.com/questions/17682143/download-private-bitbucket-repository-zip-file-using-http-authentication
  113. Unable to download files hosted on Bitbucket after OAuth setting credentials: https://github.com/composer/composer/issues/5584#issuecomment-250239952 (things learned while troubleshooting)
  114. Is it possible to use multiple docker images in bitbucket pipeline?: https://stackoverflow.com/questions/40166537/is-it-possible-to-use-multiple-docker-images-in-bitbucket-pipeline
  115. Javascript (Node.js) with Bitbucket Pipelines: https://confluence.atlassian.com/bitbucket/javascript-node-js-with-bitbucket-pipelines-873891287.html
  116. Use Docker images as build environments: https://confluence.atlassian.com/bitbucket/use-docker-images-as-build-environments-792298897.html
  117. BitBucket Pipelines - YAAT CI/CD (PRESENTATION): http://bailey-jones.com/bitbucket-presentation/presentation/ (Yet Another Approach To Continuous Integration & Continuous Delivery)
  118. Debug your pipelines locally with Docker: https://confluence.atlassian.com/bitbucket/debug-your-pipelines-locally-with-docker-838273569.html
  119. Example "bitbucket-pipelines.yml" for LAMP (PHP & MySQL) project: https://github.com/QoboLtd/project-template/blob/master/bitbucket-pipelines.yml
  120. Building and pushing Docker images: https://bitbucket.org/site/master/issues/12790/building-and-pushing-docker-images
  121. How do I set up ssh public-key authentication so that I can use ssh, sftp or scp from my Bitbucket Pipelines pipeline?: https://community.atlassian.com/t5/Bitbucket-questions/How-do-I-set-up-ssh-public-key-authentication-so-that-I-can-use/qaq-p/171671
  122. Use SSH keys in Bitbucket Pipelines: https://confluence.atlassian.com/bitbucket/use-ssh-keys-in-bitbucket-pipelines-847452940.html (a crucial step is to create the my_known_hosts file and add it to your repo)
  123. Problem getting BitBucket Pipelines to commit back version change to its own GIT repo: https://community.atlassian.com/t5/Bitbucket-questions/Problem-getting-BitBucket-Pipelines-to-commit-back-version/qaq-p/760022 (MY QUESTION)
  124. Increment a number in Bitbucket pipelines: https://community.atlassian.com/t5/Bitbucket-questions/Increment-a-number-in-Bitbucket-pipelines/qaq-p/348030
  125. How can I use SSH in Bitbucket Pipelines?: https://community.atlassian.com/t5/Bitbucket-questions/How-can-I-use-SSH-in-Bitbucket-Pipelines/qaq-p/347345
  126. BitBucket Cloud docs -- Push back to your repository: https://support.atlassian.com/bitbucket-cloud/docs/push-back-to-your-repository/
  127. BitBucket community -- Push back to remote from Pipelines: https://bitbucket.org/site/master/issues/13213/push-back-to-remote-from-pipelines
  128. Trouble with SSH and Bitbucket Pipelines: https://community.atlassian.com/t5/Bitbucket-questions/Trouble-with-SSH-and-Bitbucket-Pipelines/qaq-p/604330
  129. Using artifacts in BitBucket Pipelines build steps: https://confluence.atlassian.com/bitbucket/using-artifacts-in-steps-935389074.html
  130. Run BitBucket Pipelines manually: https://confluence.atlassian.com/bitbucket/run-pipelines-manually-861242583.html
  131. Enhance Deployments to support flexible environments: https://bitbucket.org/site/master/issues/15362/enhance-deployments-to-support-flexible
  132. Customize your deployment environments: https://confluence.atlassian.com/bitbucket/customize-your-deployment-environments-969532122.html
  133. Git Large File Storage in Bitbucket: https://confluence.atlassian.com/bitbucket/git-large-file-storage-in-bitbucket-829078514.html
  134. Use Git LFS with Bitbucket: https://confluence.atlassian.com/bitbucket/use-git-lfs-with-bitbucket-828781636.html (limited to 1GB files for Free account, 5GB files for regular, 10GB files for Premium; up to 100GB "extra file storage" can be "purchased")
  135. What kind of limits do you have on repository/file/upload size?: https://confluence.atlassian.com/bitbucket/what-kind-of-limits-do-you-have-on-repository-file-upload-size-273877699.html
  136. Push back to remote from Pipelines: https://bitbucket.org/site/master/issues/13213/push-back-to-remote-from-pipelines
  137. Ability to run a set of commands before every pipeline, like "before_script" in gitlab-ci: https://bitbucket.org/site/master/issues/13773/ability-to-run-a-set-of-commands-before
  138. How can I configure my pipeline to control versioning? : https://community.atlassian.com/t5/Answers-Developer-Questions/How-can-I-configure-my-pipeline-to-control-versioning/qaq-p/553721
  139. How can I add code to a numeric list's item without breaking the numbering?: https://stackoverflow.com/questions/29150086/how-can-i-add-code-to-a-numeric-lists-item-without-breaking-the-numbering
  140. Markdown -- continue numbered list: https://stackoverflow.com/questions/18088955/markdown-continue-numbered-list#18089124
  141. New IP addresses for Bitbucket Cloud: https://blog.bitbucket.org/2018/07/02/new-ip-addresses-bitbucket-cloud/
  142. How Bitbucket enriches their Slack app UX with user mapping: https://medium.com/slack-developer-blog/how-bitbucket-enriches-their-slack-app-ux-with-user-mapping-a39e06d610a6
  143. Meet Bitbucket Cloud’s new chatbot: https://blog.bitbucket.org/2018/04/04/meet-bitbucket-clouds-new-chatbot/
  144. BitBucket Cloud .vs. BitBucket Server (Stash) - Feature matrix: https://www.atlassian.com/software/bitbucket/features
  145. Atlassian's perspective on Bitbucket Cloud .vs. GitLab Cloud: https://bitbucket.org/product/comparison/bitbucket-vs-gitlab
  146. Atlassian's perspective on Bitbucket Server (Stash) .vs. GitLab Server: https://www.atlassian.com/software/bitbucket/server/comparison/bitbucket-data-center-vs-gitlab
  147. 6 new Bitbucket Cloud features that spark joy: https://bitbucket.org/blog/6-new-bitbucket-cloud-features-that-spark-joy
  148. BitBucket Cloud -- Set email aliases: https://confluence.atlassian.com/bitbucket/set-email-aliases-792298714.html
  149. Map existing commits to username aliases: https://confluence.atlassian.com/bitbucket/map-existing-commits-to-username-aliases-272597445.html
  150. Continuous Integration -- A Complete Guide to Using BitBucket Pipelines With Maven Repositories: https://www.cloudrepo.io/articles/continuous-integration-a-complete-guide-to-bitbucket-pipelines-with-maven-repositories.html
  151. Squash commits when merging a Git branch with Bitbucket: https://bitbucket.org/blog/git-squash-commits-merging-bitbucket
  152. I can not commit my Git LFS files to BitBucket: https://community.atlassian.com/t5/Sourcetree-questions/I-can-not-commit-my-Git-LFS-files-to-bitbucket/qaq-p/909522 (common cause is size of commit/file too big, or, error due to VPN/Proxy/Firewalls)
  153. Broken pipe when pushing to git repository: https://www.thetopsites.net/article/54238315.shtml
  154. Windows - Fail to clone repository with git lfs and large files > 5GB: https://stackoverflow.com/questions/41716509/fail-to-clone-repository-with-git-lfs (run the following: git lfs install --skip-smudge then git clone <URL> then git lfs pull lastly git lfs install --force)
  155. Adding a new SSH key to your GitHub account: https://help.github.com/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account
  156. 15 Tips to Enhance your Github Flow: https://hackernoon.com/15-tips-to-enhance-your-github-flow-6af7ceb0d8a3
  157. Issue and Pull Request templates: https://blog.github.com/2016-02-17-issue-and-pull-request-templates/
  158. A bright future for GitHub: https://blog.github.com/2018-06-04-github-microsoft/
  159. Microsoft + GitHub = Empowering Developers: https://blogs.microsoft.com/blog/2018/06/04/microsoft-github-empowering-developers/
  160. When GitHub met Microsoft: Good for enterprise DevOps?: https://techbeacon.com/when-github-met-microsoft-good-enterprise-devops
  161. How GitHub Democratized Coding, Built a $2 Billion Business, and Found a New Home at Microsoft: https://medium.com/@hnshah/how-github-democratized-coding-built-a-2-billion-business-and-found-a-new-home-at-microsoft-bd94d2dea2a9
  162. Game Of Codes -- Reasons Why Developers Use Only Three Repositories: https://www.cleveroad.com/blog/github-vs-bitbucket-vs-gitlab-developers-research
  163. GitHub Draft Pull Requests Enable New Collaboration Workflows: https://www.infoq.com/news/2019/02/github-draft-pull-requests
  164. Customizing your GitHub profile - Scripting: https://blog.frankel.ch/customizing-github-profile/1/
  165. Customizing your GitHub profile - Building: https://blog.frankel.ch/customizing-github-profile/2/ (automated builds within GitHub using "GitHub Actions")
  166. GitHub abandons 'master' term (using "main" in its place) to avoid slavery row: https://www.bbc.com/news/technology-53050955
  167. Git password authentication is shutting down: https://github.blog/changelog/2021-08-12-git-password-authentication-is-shutting-down/
  168. Token authentication requirements for Git operations: https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/#what-you-need-to-do-today
  169. GitHub deprecates account passwords for authenticating Git operations: https://www.bleepingcomputer.com/news/security/github-deprecates-account-passwords-for-authenticating-git-operations/
  170. Proactively prevent secret leaks with GitHub Advanced Security secret scanning: https://github.blog/2022-04-04-push-protection-github-advanced-security/
  171. Dependabot alerts now surface if your code is calling a vulnerability: https://github.blog/2022-04-14-dependabot-alerts-now-surface-if-code-is-calling-vulnerability/
  172. Git branching -- master vs. origin/master vs. remotes/origin/master: https://stackoverflow.com/questions/10588291/git-branching-master-vs-origin-master-vs-remotes-origin-master
  173. Use Sourcetree branches to merge an update: https://confluence.atlassian.com/bitbucket/use-sourcetree-branches-to-merge-an-update-732268925.html
  174. Merge or Rebase?: https://blog.sourcetreeapp.com/2012/08/21/merge-or-rebase/
  175. Git Rebase .vs. Git Merge explained: https://reflectoring.io/git-rebase-merge/
  176. GitFlow -- what is difference between release and master branches?: https://stackoverflow.com/questions/39902639/gitflow-what-is-difference-between-release-and-master-branches
  177. Gitflow - the easy release management workflow: https://blog.axosoft.com/gitflow/
  178. Git Flow Workflow: https://leanpub.com/git-flow/read
  179. Learn Version Control with Git & Gitflow: https://www.git-tower.com/learn/git/ebook/en/desktop-gui/advanced-topics/git-flow
  180. Git branching done right with Gitflow & improving code quality with code reviews: https://dev.to/hitman666/git-branching-done-right-with-gitflow--improving-code-quality-with-code-reviews
  181. Git Flow Versioning: http://ajake.ginnivan.net/git-flow-versioning/
  182. Make Jenkins speak Git Flow: https://neoteric.eu/make-jenkins-speak-git-flow
  183. A real-life git workflow. Why git flow does not work for us: http://luci.criosweb.ro/a-real-life-git-workflow-why-git-flow-does-not-work-for-us/
  184. Still using GitFlow? What about a simpler alternative?: https://hackernoon.com/still-using-gitflow-what-about-a-simpler-alternative-74aa9a46b9a3
  185. Git & gitflow - commands quick reference: https://www.slideshare.net/frangarcia/git-and-git-flow
  186. A practical take on GitFlow and Semantic Versioning: https://www.fredonism.com/a-practical-take-on-gitflow-and-semantic-versioning
  187. Gitflow — Branch Guide: https://medium.com/@rafavinnce/gitflow-branch-guide-8a523360c053
  188. 30 Days of DevOps (at NTT Data group) - Gitflow vs Github flow: https://eoblog.net/2019/05/01/30-days-of-devops-gitflow-vs-github-flow/
  189. Trunk-based Development vs. Git Flow: https://www.toptal.com/software/trunk-based-development-git-flow
  190. Gitflow considered harmful: http://endoflineblog.com/gitflow-considered-harmful
  191. GitHub Flow (inspried by git-flow): http://scottchacon.com/2011/08/31/github-flow.html
  192. Five tips for CI-friendly Git repos: https://www.atlassian.com/git/articles/ci-friendly-git-repos
  193. What is the difference between `git merge` and `git merge --no-ff`?: https://stackoverflow.com/questions/9069061/what-is-the-difference-between-git-merge-and-git-merge-no-ff
  194. “Merge pull request” Considered Harmful: https://blog.spreedly.com/2014/06/24/merge-pull-request-considered-harmful/#.Vf2oMyBVikp
  195. What is AVH??: https://github.com/petervanderdoes/gitflow-avh/issues/242 (ANSWER: AVH="A Virtual Home", the author of the fork's blog from which he customizes software)
  196. Git or SVN? How Nuance Healthcare chose a Git branching model?: https://www.atlassian.com/git/articles/git-or-svn-git-branching-model (they chose Gitflow)
  197. GitFlow practical uses of branches over time: https://buildamodule.com/video/change-management-and-version-control-deploying-releases-features-and-fixes-with-git-how-to-use-a-scalable-git-branching-model-called-gitflow#viewing
  198. A short introduction to Git Flow: https://vimeo.com/16018419
  199. A successful Git branching model considered harmful: https://barro.github.io/2016/02/a-succesful-git-branching-model-considered-harmful/
  200. Understanding the "GitHub flow": https://guides.github.com/introduction/flow/ (significantly simpler than full "gitflow"... basically advises feature branches that release then merge back to mainline branch)
  201. Trunk-based Development: https://trunkbaseddevelopment.com/
  202. git-bisect - Use binary search to find the commit that introduced a bug: https://git-scm.com/docs/git-bisect
  203. git-gc - Cleanup unnecessary files and optimize the local repository: https://git-scm.com/docs/git-gc
  204. Please stop recommending Git Flow!: https://georgestocker.com/2020/03/04/please-stop-recommending-git-flow/
  205. HackerNews -- Please stop recommending Gitflow: https://news.ycombinator.com/item?id=22485489
  206. Gitflow is a Poor Branching Model Hack: https://hackernoon.com/gitflow-is-a-poor-branching-model-hack-d46567a156e7
  207. Git flow for agile teams is a no no: https://medium.com/@raphaelyoshiga/git-flow-for-agile-teams-is-a-no-no-4c202647ac09
  208. GitFlow considered harmful: https://www.endoflineblog.com/gitflow-considered-harmful
  209. GitFlow is anti-agile: https://jhall.io/archive/2021/03/09/gitflow-is-anti-agile/
  210. Gitflow Agile Tweak: https://www.reddit.com/r/programming/comments/3vb2aa/gitflow_agile_tweak/
  211. Enhanced Git Flow Explained: https://www.toptal.com/gitflow/enhanced-git-flow-explained
  212. GitOps -- ‘Git Push’ All the Things (review of the presentation): https://thenewstack.io/gitops-git-push-all-the-things/
  213. GitOps 101 -- What Is GitOps, and Why Would You Use It?: https://www.twistlock.com/2018/08/06/gitops-101-gitops-use/
  214. Is GitOps the next big thing in DevOps?: https://www.atlassian.com/git/tutorials/gitops
  215. Giggle - A graphical (Ubuntu) frontend for the git content tracker: http://www.ubuntugeek.com/giggle-a-graphical-frontend-for-the-git-content-tracker.html#more-4356
  216. How to disable Git Credential Manager for Windows?: https://stackoverflow.com/questions/37182847/how-to-disable-git-credential-manager-for-windows
  217. ignoring any 'bin' directory on a git project: https://stackoverflow.com/questions/1470572/ignoring-any-bin-directory-on-a-git-project
  218. SourceTree for Windows 2.0: New UI, faster performance, and Microsoft Git Virtual File System support: https://blog.sourcetreeapp.com/2017/04/27/sourcetree-for-windows-2-0-new-ui-faster-performance-and-microsoft-git-virtual-file-system-support/
  219. sourcetree won't open - gcmw.zip error: https://community.atlassian.com/t5/Sourcetree-questions/sourcetree-won-t-open-gcmw-zip-error/qaq-p/652774
  220. Cannot clone a repository from Github using Sourcetree, embedded git command line works perfectly: https://community.atlassian.com/t5/Sourcetree-questions/Cannot-clone-a-repository-from-Github-using-Sourcetree-embedded/qaq-p/30371
  221. About git path for Sourcetree -- resolve the "template not found" warnings: https://community.atlassian.com/t5/Git-questions/About-git-path-for-Sourcetree/qaq-p/186483 (FIX is to add [init] templatedir = C:/Users/<USERNAME>/AppData/Local/Programs/Git/mingw64/share/git-core/templates to "C:/Users/<USERNAME>/.gitconfig", where the "[init]" part appears above followed by a linebreak... on Mac use [init] templatedir = /Applications/SourceTree.app/Contents/Resources/git_local/share/git-core/templates )
  222. Can't install Sourcetree on Windows 10: https://community.atlassian.com/t5/Sourcetree-questions/can-t-install-Sourcetree-on-Windows-10/qaq-p/763806
  223. Sourcetree keeps asking for bitbucket password on Windows: https://community.atlassian.com/t5/Sourcetree-questions/Sourcetree-keeps-asking-for-bitbucket-password-on-windows/qaq-p/241278
  224. Sourcetree keeps asking for login and password on MAC: https://community.atlassian.com/t5/Sourcetree-questions/Sourcetree-keeps-asking-for-login-and-password/qaq-p/146765
  225. Unbundle Git-LFS and git-flow dependencies in Sourcetree: https://confluence.atlassian.com/sourcetreekb/unbundle-git-lfs-and-git-flow-dependencies-in-sourcetree-950827825.html
  226. Sourcetree 2.6.10 ArgumentException encountered. An item with the same key has already been added : https://community.atlassian.com/t5/Sourcetree-questions/Sourcetree-2-6-10-ArgumentException-encountered-An-item-with-the/qaq-p/909718
  227. Error "An item with the same key(...)" when pulling / pushing from Azure DevOps: https://jira.atlassian.com/browse/SRCTREEWIN-10730
  228. Sourcetree 2.6.10 ArgumentException encountered. An item with the same key has already been added : https://community.atlassian.com/t5/Sourcetree-questions/Sourcetree-2-6-10-ArgumentException-encountered-An-item-with-the/qaq-p/909718 (suggests downgrading System GIT from 2.19.1 to 2.19.0... OR... upgrading just Git Credential Manager to a patch version until the fix gets bundled in a new "msysgit" release)
  229. Sourcetree keeps asking for bitbucket password on windows : https://community.atlassian.com/t5/Sourcetree-questions/Sourcetree-keeps-asking-for-bitbucket-password-on-windows/qaq-p/241278
  230. In SourceTree, how do I squash commits?: https://community.atlassian.com/t5/Sourcetree-questions/In-SourceTree-how-do-I-squash-commits/qaq-p/345666
  231. SourceTree log file location: https://confluence.atlassian.com/sourcetreekb/sourcetree-logfile-location-675384748.html
  232. SourceTree on Windows is not prompting for password when connecting to git repository: https://community.atlassian.com/t5/Sourcetree-questions/SourceTree-on-Windows-is-not-prompting-for-password-when/qaq-p/390492
  233. Git - SVN users' Crash Course guide: http://git.or.cz/course/svn.html (backup of main link)
  234. Choosing a Git Branching Strategy: https://medium.com/@jezhalford/choosing-a-git-branching-strategy-cd7a774a68a1
  235. MSysGit -- InstallMSysGit step-by-step: https://git.wiki.kernel.org/index.php/MSysGit:InstallMSysGit (NOTE: msysgit project has been partially integrated into "GIT for Windows" then phased out)
  236. Getting Started - Git Basics: https://git-scm.com/book/en/v2/Getting-Started-Git-Basics
  237. Git Server Like GitHub? [closed]: http://stackoverflow.com/questions/5507489/git-server-like-github
  238. My Git Workflow: https://web.archive.org/web/20140216105224/http://blog.osteele.com/posts/2008/05/my-git-workflow
  239. The Thing About Git: 2ndscale.com/rtomayko/2008/the-thing-about-git
  240. How I stopped missing Darcs and started loving Git:https://web.archive.org/web/20160406224409/http://blog.moertel.com/posts/2007-12-10-how-i-stopped-missing-darcs-and-started-loving-git.html
  241. Git Forks and Upstreams -- How-to and a cool tip: https://www.atlassian.com/git/tutorials/git-forks-and-upstreams
  242. Top 20 Git Commands With Examples: https://dzone.com/articles/top-20-git-commands-with-examples
  243. 35 GIT commands with examples: https://dzone.com/articles/top-35-git-commands-with-examples-and-bonus
  244. Basic Branching and Merging: https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging'
  245. A Tutorial on Git Merge: https://dzone.com/articles/a-tutorial-on-git-merge
  246. How to checkout a previous Tag in Git: https://pinkstone.co.uk/how-to-checkout-a-previous-tag-in-git/
  247. Git Basics - Tagging: https://git-scm.com/book/en/v2/Git-Basics-Tagging
  248. Don’t Fear The Rebase: https://hackernoon.com/dont-fear-the-rebase-bca683888dae
  249. Don't Be Scared of git rebase: https://nathanleclaire.com/blog/2014/09/14/dont-be-scared-of-git-rebase/
  250. A Git Workflow Using Rebase: https://medium.com/singlestone/a-git-workflow-using-rebase-1b1210de83e5
  251. Master the Rebase (and the Other Way Around): https://blog.algolia.com/master-git-rebase/
  252. The Git Rebase Introduction I Wish I'd Had: https://dev.to/maxwell_dev/the-git-rebase-introduction-i-wish-id-had
  253. How I got over my irrational fear of git: https://codeburst.io/how-i-got-rid-of-my-irrational-fear-of-git-rebase-25a12095e45e
  254. Git, Feature Branches, and Jenkins – or how I learned to stop worrying about broken builds: https://twasink.net/2011/09/20/git-feature-branches-and-jenkins-or-how-i-learned-to-stop-worrying-about-broken-builds/
  255. A Git Workflow for Agile Teams: http://reinh.com/blog/2009/03/02/a-git-workflow-for-agile-teams.html
  256. A Rebase Workflow for Git: https://randyfay.com/content/rebase-workflow-git
  257. A rebase-based workflow: https://brokenco.de/2010/04/02/a-rebase-based-workflow.html
  258. How to make Git pull use rebase by default for all my repositories?: https://stackoverflow.com/questions/13846300/how-to-make-git-pull-use-rebase-by-default-for-all-my-repositories#13974638
  259. System.ComponentModel.Win32Exception - The System cannot find the file specified error message usually just means GIT can't be found: https://community.atlassian.com/t5/Sourcetree-questions/System-ComponentModel-Win32Exception-The-System-cannot-find-the/qaq-p/295635
  260. Opening repositories fails with System.ComponentModel.Win32Exception: The system cannot find the file specified: https://jira.atlassian.com/browse/SRCTREEWIN-7964?error=login_required&error_description=Login+required&state=3ae7daf6-07d5-4c54-b8ec-f4fa007f92ce (switch to separate "embedded GIT" if problem persists)
  261. Linus Torvalds on GIT merge .vs. rebase -- Re: [git pull] drm-next: https://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg39091.html
  262. What GIT branching model works for you?: https://stackoverflow.com/questions/2621610/what-git-branching-models-work-for-you
  263. Squash several Git commits into a single commit: https://makandracards.com/makandra/527-squash-several-git-commits-into-a-single-commit
  264. How to use git merge --squash?:https://stackoverflow.com/questions/5308816/how-to-use-git-merge-squash
  265. Squash my last X commits together using Git: https://stackoverflow.com/questions/5189560/squash-my-last-x-commits-together-using-git
  266. How to squash commits in git after they have been pushed?: https://stackoverflow.com/questions/5667884/how-to-squash-commits-in-git-after-they-have-been-pushed
  267. In git, what is the difference between merge --squash and rebase?: https://stackoverflow.com/questions/2427238/in-git-what-is-the-difference-between-merge-squash-and-rebase
  268. GIT -- How to squash several commits that have been pushed to a remote repo?: https://stackoverflow.com/questions/7774801/git-how-to-squash-several-commits-that-have-been-pushed-to-a-remote-repo
  269. Cherry-pick automation with Bash: https://blog.frankel.ch/cherry-pick-automation-bash/
  270. Setting up a git remote origin: https://stackoverflow.com/questions/7259535/setting-up-a-git-remote-origin
  271. GitHub guide to adding a remote: https://help.github.com/en/articles/adding-a-remote

See Also

SCM | SSH | CVS | SVN