Ben Emmons presented on using Git and BitBucket for version control. He discussed configuring Git locally, establishing a workflow with remote repositories and branches, troubleshooting when issues arise, using SSH keys with BitBucket, and additional resources. The goal is a 3-tier version control system with 10 or fewer daily commands to manage changes across development, test, and production environments via pull requests on BitBucket.
With these slides we introduce the concept of source control and teach the core features to using Git, GitHub and BitBucket. You can find the accompanying video here. https://youtu.be/lZpNrCgGvuI
This document provides an overview of Git and BitBucket. It begins with an introduction to source code management systems and describes Git as a decentralized version control system. Popular open source projects that use Git and web-based hosting services are listed. The document then covers Git commands and workflows, including initializing a repository, staging changes, committing, branching and merging. BitBucket is introduced as a code hosting platform that supports both Git and Mercurial repositories.
1. The document discusses Git and Git-Flow, including how to install Git and Git-Flow on Windows, Linux, and Mac systems.
2. It provides steps for initializing Git-Flow on a repository and describes the basic branches and workflows in Git-Flow like feature, release, and hotfix branches.
3. Git-Flow is used to manage development and releases through branches to allow multiple developers to work together and release versions through a clear branching model.
Bitbucket is a hosting site for Git and Mercurial repositories that allows for effective collaboration without requiring a centralized server. While Git does not require a central server, it is good to have Bitbucket to host code repositories. Git uses a distributed version control system that allows developers to directly exchange changes and work independently of network access. Benefits of using Git with Bitbucket include free hosting for academic users, the ability to work offline or on planes, and fast branching and merging of code.
This document discusses version control systems, Git, and Bitbucket. It provides an overview of version control, describes why it is useful, and discusses different version control systems including local, centralized, and distributed systems. It focuses on Git, explaining what it is, why it was created, how it works and differs from other version control systems. Finally, it covers Bitbucket, describing what it is, why developers should use it, how to create repositories on it, and how to integrate it with Eclipse.
Bitbucket is an online repository system that allows multiple developers to work on a single project simultaneously without interfering with each other's code. It uses Git for version control and allows users to create repositories for storing and managing code. The document then provides step-by-step instructions for signing up for a Bitbucket account, creating repositories on Bitbucket, initializing and cloning repositories locally, making changes to code and committing/pushing them to Bitbucket repositories. It also discusses features like creating and managing branches on Bitbucket.
Software Versioning with Bitbucket and EclipseH¨¹seyin Ergin
?
This is a presentation I have prepared for a software engineering class that I am a teaching assistant. It summarizes versioning with a repo on bitbucket using eclipse's own git client. Thanks to Conner Hansen for some slides.
This document provides an overview of Git and its basic commands for beginners. It covers installing Git, creating repositories on Bitbucket and GitHub, tracking changes with commands like add, commit, push, pull, and resolving merge conflicts. It also discusses branching, tagging, reverting changes, and ignoring files. Key concepts explained include distributed version control, staging changes, commit histories, and setting up aliases and submodules.
Bitbucket is a web-based hosting service that provides unlimited private repositories for up to 5 developers using Mercurial or Git revision control systems. It allows teams to work collaboratively through features like pull requests, code reviews, and inline comments directly in source code. Bitbucket also provides visibility into repository and commit history through tools to compare changes across branches, files, and forks.
Here is the difference between gitlab vs github vs bitbucket.nce you read through the article, you will have a clear idea on which of the solutions you should be using the next time for your needs.
This document provides an overview of using Git for version control, including how to create and clone repositories, commit and update files both locally and remotely, and use SSH to access remote repositories. It compares Git to SVN and outlines basic Git commands like init, add, commit, push, and pull. Resources for learning more about Git are also listed.
Basic Introduction to Git and Github. Covers the basic work flow of init, clone, add, commit and push. Other commands like git remote, git pull etc are briefly touched.
Hosting code online allows developers to securely store code, experiment safely without risk of damage, and gain feedback through collaboration. Services like BitBucket offer free hosting of Git and Mercurial projects, including wikis, issue tracking, and pull requests. BitBucket is written in Python using the Django framework and provides similar functionality to GitHub for hosting Git repositories.
Git is an open source distributed version control system (VCS) developed by Linus Torvalds in 2005. Version control allows tracking changes to files over time through commits, enabling recall of specific versions. GitHub is a code hosting platform that allows collaboration on projects remotely using Git. Common Git commands include git init to create a repository, git add to stage files, git commit to save changes, and git push to sync a local repository with a remote one. Pull requests allow proposing and reviewing changes before merging into a main branch like master.
AtlasCamp 2015: Bitbucket: Building kick-ass tools for 2.5M developersAtlassian
?
Tim Pettersen
With over 2.5 million users, Bitbucket is an exciting platform to integrate with. There is a huge opportunity to integrate static analysis, deployment, testing and monitoring tools into the Bitbucket experience. In this talk, Tim will show off Bitbucket's brand new integration framework and highlight best practices for building scalable, tightly integrated services that developers will love.
Git is a distributed version control system designed to handle small and large projects with speed and efficiency. It allows for fast branching and merging. Git keeps an archive of all code changes over time, allows comparing changes and reverting to old releases, and provides accountability. The basic Git workflow involves modifying files in the working directory, staging files to add a snapshot to the staging area, and committing files which permanently stores the snapshot. Remote branches allow collaborating on code by fetching and pushing changes between local and remote repositories. Common commands include pull, push, commit, branch, tag, merge, and checkout.
This document provides an introduction to Git, a distributed version control system. It discusses what Git is, its history and general features, how and where it can be used. It then provides a quick overview of installing Git, basic usage through a demo, why Git is advantageous compared to other version control systems like SVN, and some everyday Git commands and tools. Resources for learning more about Git are also listed.
Bitbucket is our Git repository management solution designed for professional teams. It gives you a central place to manage git repositories, collaborate on your source code and guide you through the development flow. It provides awesome features that include: Acces control to restrict access to your source code
Git is a distributed version control system that allows developers to collaborate on projects. It allows developers to create branches to develop features independently and merge them together later. Developers can also rewrite history by rebasing or reverting commits. The document provides tutorials on basic Git commands like init, add, commit, status, log, checkout, branch, merge, and remote repositories. It explains how to set up a local Git repository and share code between remote repositories for collaboration.
This document provides an introduction to GitHub. It defines Git as a version control system that records changes to files and allows users to revert files to earlier versions. GitHub is described as a hosting service for Git repositories that provides a graphical interface and collaboration features. The document outlines key GitHub concepts like repositories, branches, commits, forking, pull requests and issues. It also summarizes the typical GitHub workflow and includes a link to download GitHub Desktop for a demo.
Github is a code hosting platform that allows developers to collaborate on projects. It uses Git for version control and storing a project's codebase and file history. Developers can work together using features like forking repositories, creating branches, submitting pull requests, and discussing code changes through issues. This allows teams to efficiently build and maintain projects together.
This document provides an introduction to Git and its basic functions. It discusses what version control and Git are used for, including tracking history and facilitating collaboration. The key components of Git are explained, such as branches, the central repository, and the three trees. Common Git commands and workflows are outlined, like cloning, adding, committing, pushing changes, branching, merging, and pulling updates. Resources for learning more about Git commands and documentation are provided at the end.
This document provides an introduction to version control with Git and GitHub. It explains how Git tracks changes to files over time through commits, and how branches allow for separate lines of development. GitHub is introduced as a hosting service for open source projects that uses Git for version control and allows for collaboration through features like pull requests. Basic Git commands are covered like init, add, commit, status, log and checkout. The steps for contributing to a project on GitHub through forking, branching, committing and pushing changes are outlined.
This document provides an overview of Git and GitHub for contributing to open source projects during Hacktoberfest. It defines version control systems and how Git is a distributed VCS that allows developers to work asynchronously. Key Git commands and GitHub workflows are described, including creating branches, committing changes, and submitting pull requests. The steps for contributing to projects during Hacktoberfest via forking repositories and making pull requests are also outlined.
Two days git training with labs
First day covers git basis and essential commands
Second day covers git additional command with a big lab using a git workflow
This document provides an introduction to version control with Git. It discusses the basic Git model and workflow, including cloning repositories, making local changes, staging files, and committing changes. It compares Git to centralized version control systems like Subversion and highlights Git's distributed and non-linear development advantages. Basic Git commands are explained like add, commit, status, diff, log, pull and push. Branching and merging with Git are also introduced.
Bitbucket is a web-based hosting service that provides unlimited private repositories for up to 5 developers using Mercurial or Git revision control systems. It allows teams to work collaboratively through features like pull requests, code reviews, and inline comments directly in source code. Bitbucket also provides visibility into repository and commit history through tools to compare changes across branches, files, and forks.
Here is the difference between gitlab vs github vs bitbucket.nce you read through the article, you will have a clear idea on which of the solutions you should be using the next time for your needs.
This document provides an overview of using Git for version control, including how to create and clone repositories, commit and update files both locally and remotely, and use SSH to access remote repositories. It compares Git to SVN and outlines basic Git commands like init, add, commit, push, and pull. Resources for learning more about Git are also listed.
Basic Introduction to Git and Github. Covers the basic work flow of init, clone, add, commit and push. Other commands like git remote, git pull etc are briefly touched.
Hosting code online allows developers to securely store code, experiment safely without risk of damage, and gain feedback through collaboration. Services like BitBucket offer free hosting of Git and Mercurial projects, including wikis, issue tracking, and pull requests. BitBucket is written in Python using the Django framework and provides similar functionality to GitHub for hosting Git repositories.
Git is an open source distributed version control system (VCS) developed by Linus Torvalds in 2005. Version control allows tracking changes to files over time through commits, enabling recall of specific versions. GitHub is a code hosting platform that allows collaboration on projects remotely using Git. Common Git commands include git init to create a repository, git add to stage files, git commit to save changes, and git push to sync a local repository with a remote one. Pull requests allow proposing and reviewing changes before merging into a main branch like master.
AtlasCamp 2015: Bitbucket: Building kick-ass tools for 2.5M developersAtlassian
?
Tim Pettersen
With over 2.5 million users, Bitbucket is an exciting platform to integrate with. There is a huge opportunity to integrate static analysis, deployment, testing and monitoring tools into the Bitbucket experience. In this talk, Tim will show off Bitbucket's brand new integration framework and highlight best practices for building scalable, tightly integrated services that developers will love.
Git is a distributed version control system designed to handle small and large projects with speed and efficiency. It allows for fast branching and merging. Git keeps an archive of all code changes over time, allows comparing changes and reverting to old releases, and provides accountability. The basic Git workflow involves modifying files in the working directory, staging files to add a snapshot to the staging area, and committing files which permanently stores the snapshot. Remote branches allow collaborating on code by fetching and pushing changes between local and remote repositories. Common commands include pull, push, commit, branch, tag, merge, and checkout.
This document provides an introduction to Git, a distributed version control system. It discusses what Git is, its history and general features, how and where it can be used. It then provides a quick overview of installing Git, basic usage through a demo, why Git is advantageous compared to other version control systems like SVN, and some everyday Git commands and tools. Resources for learning more about Git are also listed.
Bitbucket is our Git repository management solution designed for professional teams. It gives you a central place to manage git repositories, collaborate on your source code and guide you through the development flow. It provides awesome features that include: Acces control to restrict access to your source code
Git is a distributed version control system that allows developers to collaborate on projects. It allows developers to create branches to develop features independently and merge them together later. Developers can also rewrite history by rebasing or reverting commits. The document provides tutorials on basic Git commands like init, add, commit, status, log, checkout, branch, merge, and remote repositories. It explains how to set up a local Git repository and share code between remote repositories for collaboration.
This document provides an introduction to GitHub. It defines Git as a version control system that records changes to files and allows users to revert files to earlier versions. GitHub is described as a hosting service for Git repositories that provides a graphical interface and collaboration features. The document outlines key GitHub concepts like repositories, branches, commits, forking, pull requests and issues. It also summarizes the typical GitHub workflow and includes a link to download GitHub Desktop for a demo.
Github is a code hosting platform that allows developers to collaborate on projects. It uses Git for version control and storing a project's codebase and file history. Developers can work together using features like forking repositories, creating branches, submitting pull requests, and discussing code changes through issues. This allows teams to efficiently build and maintain projects together.
This document provides an introduction to Git and its basic functions. It discusses what version control and Git are used for, including tracking history and facilitating collaboration. The key components of Git are explained, such as branches, the central repository, and the three trees. Common Git commands and workflows are outlined, like cloning, adding, committing, pushing changes, branching, merging, and pulling updates. Resources for learning more about Git commands and documentation are provided at the end.
This document provides an introduction to version control with Git and GitHub. It explains how Git tracks changes to files over time through commits, and how branches allow for separate lines of development. GitHub is introduced as a hosting service for open source projects that uses Git for version control and allows for collaboration through features like pull requests. Basic Git commands are covered like init, add, commit, status, log and checkout. The steps for contributing to a project on GitHub through forking, branching, committing and pushing changes are outlined.
This document provides an overview of Git and GitHub for contributing to open source projects during Hacktoberfest. It defines version control systems and how Git is a distributed VCS that allows developers to work asynchronously. Key Git commands and GitHub workflows are described, including creating branches, committing changes, and submitting pull requests. The steps for contributing to projects during Hacktoberfest via forking repositories and making pull requests are also outlined.
Two days git training with labs
First day covers git basis and essential commands
Second day covers git additional command with a big lab using a git workflow
This document provides an introduction to version control with Git. It discusses the basic Git model and workflow, including cloning repositories, making local changes, staging files, and committing changes. It compares Git to centralized version control systems like Subversion and highlights Git's distributed and non-linear development advantages. Basic Git commands are explained like add, commit, status, diff, log, pull and push. Branching and merging with Git are also introduced.
Git is a popular distributed version control system that is designed to handle large projects with speed and efficiency. It is "stupidly fast" for local operations and branching/merging. Repositories are also "stupidly small" in size. Git is decentralized, with anyone able to act as a server, and everyone having a full local repository. This allows for benefits like no single point of failure and trivial backups. Git differs from centralized systems like Subversion in ways like its use of the index/staging area and commands like rebase. Overall, Git provides a powerful and flexible system for version control.
This document provides an overview of Git, including:
1. Git is an open source distributed version control system that allows for distributed workflows where each clone is a full backup.
2. Basic Git commands include configuring user information, cloning repositories, ignoring files, adding and committing changes, branching, tagging, and undoing actions.
3. A typical Git workflow involves writing code, staging changes, reviewing changes, committing changes locally, and pushing changes to a remote repository. It also covers merging, resolving conflicts, and rolling back if needed.
This document provides an overview of Git, including:
1. Git allows tracking changes to source code, allowing multiple people to work together and deploy to multiple servers.
2. Basic Git commands are used to initialize a repository, add files, commit changes, pull and push from remote repositories.
3. More advanced features include tags for releases, branches for different versions, and commands for reverting changes and amending commits.
4. Various Git tools and hosting services are referenced for visualizing repositories and collaborating online.
- Git stores snapshots of files and file trees in commits rather than tracking differences between file versions. This allows it to be very efficient and perform well on large projects.
- Git is highly local - all operations can be performed offline and it stores its data locally rather than relying on remote servers like many other version control systems.
- Git has strong integrity checks built-in to ensure data integrity and detect unintended changes to files.
Git is a distributed version control system that allows developers to work on projects locally before pushing changes to remote repositories. It uses snapshots of file changes and checksums rather than file version numbers to track file history. The basic Git workflow involves modifying files locally, staging changes, and committing snapshots of the staged changes to the local repository. Changes can then be pulled from and pushed to remote repositories like GitHub.
This document provides an overview of basic Git commands and concepts:
- Git is a distributed version control system that allows developers to work locally without an internet connection and includes built-in backup of repositories.
- Common Git commands are demonstrated for initializing and cloning repositories, tracking and committing changes, branching, merging, and more.
- The document also discusses installing Git on various platforms and using GUI tools to help visualize repositories and histories.
This document provides an introduction and overview of using Git for version control. It discusses the basics of version control systems including local version control, centralized version control, and distributed version control. It then walks through setting up Git locally and configuring it, generating SSH keys, creating repositories on GitHub, forking repositories, and basic Git commands and workflows for branching, merging, and working with remotes.
Git is a distributed version control system that is used for software development, and allows many software developers to work on a given project without requiring them to share a common network.
This presentation helps you to know what is Git, how it works, and how you can use it.
This document provides an overview of version control and Git. It discusses what version control is, why it is used, and common types including local, centralized, and distributed. It then focuses on Git, covering its history and origins from Linux kernel development. Key Git concepts are explained like data storage, file lifecycles, basic commands like clone, add, commit, branch, merge, and working with remotes. Tips are provided on installation, ignoring files, using with IDEs, and further learning resources.
Git is a distributed version control system, created by Linus Torvalds, and used worldwide by many software developers for a large number of well known software projects.
In this presentation, I explain the fundamentals of the Git software and some of its internal workings and related terminology. The target audience is individuals who have used Git before in a limited capacity and want expand their knowledge of the software to improve their daily use of it. The presentation could also be useful for those with knowledge of Git and a desire to improve their understanding of some of the more technically elements.
This document provides an overview of Git commands and workflows:
- It introduces basic Git commands for setting up a local repository, adding and committing files, viewing the status and differences between commits, ignoring files, and more.
- Common workflows are demonstrated including cloning a repository, making changes and committing them locally, and pushing changes to a remote repository.
- More advanced topics are covered like branching, merging, rebasing, resolving conflicts, and using tools to help with these processes.
- Configuration options and tips are provided to customize Git behavior and inspect repositories.
This document provides an introduction and overview of Git version control system. It covers basic Git concepts and workflows, how to install and configure Git, perform common operations like committing, branching and merging, and additional tools and resources for learning more about Git. The document is intended as a starting point for those new to Git to learn the fundamentals and get started using it.
This document provides an introduction and overview of Git version control system. It covers basic Git concepts and workflows, how to install and configure Git, perform common operations like adding, committing, branching and merging, and also discusses more advanced topics like rebasing, cherry-picking, ignoring files and migrating from other VCS. The document aims to equip readers with essential knowledge for using Git in development projects.
This document provides an overview of Git and Gitflow. It explains that Git is a distributed version control system (DVCS) that allows tracking changes to files, committing changes locally and to remote repositories, and reverting changes. It also describes the basic Git commands for initializing and cloning repositories, making commits, branching, merging, and resolving conflicts. Finally, it introduces Gitflow workflow which defines main and supporting branches to support parallel development and releases in a project.
Git is a free and open source distributed version control system that allows for easy branching and merging. It was created by Linus Torvalds in 2005 to manage development of the Linux kernel. Git allows developers to work independently on their own branches and then merge changes together later. Common Git commands include git add to stage files, git commit to commit changes locally, and git push to publish commits to a remote repository. More advanced commands include git branch to create and switch branches, and git merge to integrate branch changes.
2. Prerequisites
10/22/2013
? Basic understanding of version control and Git
(see Mike Hagedon¡¯s presentation for a refresher)
? Acknowledge that Git is better than the competition
(let¡¯s not waste time on flame wars)
? command line is your friend ?
Source:
Google Trends
3. Agenda
10/22/2013
? Local
? Git config ¨C go beyond user.name and user.email
? Start with goal in mind ¨C desired end-state
? Workflow ¨C remote repositories, branches, submodules
? When things go wrong¡
? Remote
? SSH
? BitBucket
? Pro Tips & Additional resources
15. Git config ¨C alias
10/22/2013
? ¡°svn status -u¡± equivalent?
16. Git config ¨C alias (git check)
10/22/2013
? git config --global alias.check '!f() { local branch=`git rev-parse
--abbrev-ref HEAD`; git fetch origin --quiet && git diff --name-
status $branch origin/$branch $1; }; f'
17. Git config ¨C alias
10/22/2013
? Other aliases (explained later)
? git config --global alias.changed 'diff-tree --no-commit-id --name-only
-r'
? git config --global alias.release '!git push; git tag -a "`date
+%Y%m%d`-`whoami`-`date +%s`" -m `date +%s`; git push --tags;'
? git config --global alias.hotfix '!git tag -a "`date +%Y%m%d`-`whoami`-
`date +%s`-hotfix" -m `date +%s`'
? git config --global alias.bleach '!git reset --hard -q; git clean -d -f
-n; read -p "Apply changes? (Y/n) " -n 1 -r; echo; if [[ $REPLY =~
^[Yy]$ ]]; then git clean -d -f; fi'
? Optional (ignores executable bit differences)
? git config --global core.filemode false
# git status
old mode 100755
new mode 100644
18. Agenda
10/22/2013
? Local
? Git config ¨C go beyond user.name and user.email
? Start with goal in mind ¨C desired end-state
? Workflow ¨C remote repositories, branches, submodules
? When things go wrong¡
? Remote
? SSH
? BitBucket
? Pro Tips & Additional resources
19. Goal
10/22/2013
3-tier version control with 10 or less daily commands:
? git status ? checks local repo to see if there are any pending changes to
add/push
? git check ? checks local and remote repo to see if there are any pending changes
? git pull ? applies pending changes to local repo
? git info <file> ? brief report on status of file
? git add <file> (or git add .) ? adds a file (or many files) to git
? git rm <file> ? deletes a version controlled file (normal rm works as well)
? git commit <file> -m 'My descriptive commit message' (or git commit -am 'My
descriptive commit message') ? commits changes to local repo
? git push ? pushes changes to remote repo branch
? git release ? pushes changes to remote repo branch and tags it as a release
? https://bitbucket.org/<account>/<site>/pull-requests ? review and pull changes
from one environment to another (e.g. test > master)
20. Agenda
10/22/2013
? Local
? Git config ¨C go beyond user.name and user.email
? Start with goal in mind ¨C desired end-state
? Workflow ¨C remote repositories, branches, submodules
? When things go wrong¡
? Remote
? SSH
? BitBucket
? Pro Tips & Additional resources
23. Workflow (continued)
10/22/2013
? .gitignore file: https://gist.github.com/anonymous/8610387
(note: the sites/* line includes a subtle hack to avoid tracking .gitmodules files in the Drupal
core repository; this will cause two side effects: a false error will be thrown upon submodule
creation and you need to run git commands in both core and site folders)
? Allow ¡°git pull¡±: git checkout ¨Ct origin/master
? In DEV and TEST, delete master branch: git branch ¨Cd master
? Allow ¡°git push¡±: git push ¨Cu origin master
? Use BitBucket pull requests to move code between branches
(more on this in a second¡)
24. Agenda
10/22/2013
? Local
? Git config ¨C go beyond user.name and user.email
? Start with goal in mind ¨C desired end-state
? Workflow ¨C remote repositories, branches, submodules
? When things go wrong¡
? Remote
? SSH
? BitBucket
? Pro Tips & Additional resources
26. When things go wrong¡
10/22/2013
Analyze
1. git l ? see detailed info regarding recent commits
2. git changed <commit hash> ? list files changed in specific commit
3. git d <path/to/filename> ? see local modifications to a single file
4. git d <path/to/folder/> (or simply 'git d¡¯ for current folder) ? see local
modifications to all files within a folder (recursive)
5. git d <tagname> HEAD --stat ? shows changed files between tagged release
and current local version
6. git d <tagname> HEAD <path/to/changed/filename> ? shows change in
specific file between tagged release and current local file
27. When things go wrong¡
10/22/2013
Undo
7. git r <path/to/filename> ? revert local uncommitted modifications to a single file
8. git r . ? revert all local uncommitted modifications within a folder (recursive)
9. git reset <path/to/filename> ? reverts 'git add' of a single file
10. git reset . ? reverts all 'git add' commands within a folder (recursive)
11. git reset --hard ? reverts all file modifications and 'git add' commands
12. git clean -d -f -n . ? dry-run test to see what untracked files would be deleted
within a folder (recursive)
13. git clean -d -f . ? delete untracked files within a folder (recursive)
14. git bleach ? reverts all file modifications and new/unignored files (does NOT
delete gitignored files/folders; use with caution)
Pro Tip: when in doubt, git stash
28. When things go wrong¡
10/22/2013
Rollback
15. git commit --amend -m "New commit message" ? change most recent
commit message
16. git reset HEAD~1 <or commit hash> ? use to uncommit most recent commit
but keep modifications (ONLY use if commit is NOT pushed)
17. git reset --hard HEAD~1 <or commit hash> ? use to fully rollback most recent
commit (ONLY use if commit is NOT pushed)
18. git revert HEAD <or commit hash> ? use to fully rollback most recent pushed
commit (type ":wq" to accept the default commit message, then type "git push" to
submit the rollback)
29. Agenda
10/22/2013
? Local
? Git config ¨C go beyond user.name and user.email
? Start with goal in mind ¨C desired end-state
? Workflow ¨C remote repositories, branches, submodules
? When things go wrong¡
? Remote
? SSH
? BitBucket
? Pro Tips & Additional resources
30. SSH
10/22/2013
? Use Secure Shell (SSH) keys for communicating between servers:
ssh-keygen ¨Ct rsa ¨Cb 2048 ¨CC your@email.com
? ~/.ssh/id_rsa file is your private key (protect like you would a password)
? ~/.ssh/id_rsa.pub file is your public key (share with anyone, including
BitBucket)
31. Agenda
10/22/2013
? Local
? Git config ¨C go beyond user.name and user.email
? Start with goal in mind ¨C desired end-state
? Workflow ¨C remote repositories, branches, submodules
? When things go wrong¡
? Remote
? SSH
? BitBucket
? Pro Tips & Additional resources
32. BitBucket
10/22/2013
? Why not GitHub ? BitBucket provides free, unlimited public and private
repositories for higher education
? Supports SSH keys: /account/user/<usename>/ssh-keys
? Supports Personal and Team accounts (with role-based groups and
authorization rules)
? Supports Pull Requests to pull changes from another repository or
branch
? Clean, intuitive interface with similar functionality to GitHub (wiki, issue
tracking, dashboard, etc.)
? Issue tracking integration with commit messages: http://goo.gl/HoC75k
? Integration options with other Atlassian products such as JIRA and
Confluence
33. BitBucket (continued)
10/22/2013
? On /account/user/<team account>/groups
o Set up Administrators, Developers, and Readers groups (Pro Tip: add Team
account username to Administrators group by typing full name since it may not appear
in auto-search)
? On /<account>/<repo>/admin/access (Pro Tip: gear icon in top-right is easy to miss)
o Add users and apply appropriate permission (usually ¡°write¡±)
? On /<account>/<repo>/admin/branches
o Limit pushes for master to ¡°<account>:administrators¡° group
o Optionally limit pushes for test and dev
o Prevent deletion of master, test, dev branches (Pro Tip: due to BitBucket bug
when clicking on textbox initially you may get dropdown, but you must type name not
select from dropdown)
o Optionally prevent history re-writes (rebase)
35. Agenda
10/22/2013
? Local
? Git config ¨C go beyond user.name and user.email
? Start with goal in mind ¨C desired end-state
? Workflow ¨C remote repositories, branches, submodules
? When things go wrong¡
? Remote
? SSH
? BitBucket
? Pro Tips & Additional resources
36. Pro Tips
10/22/2013
? After a site is ¡°live¡±, code only ¡°moves upstream¡± (dev ¡ú test
¡ú master), except for TEST bug fixes and PROD hotfixes
? After a site is ¡°live¡±, the database (content) and files only
¡°move downstream¡± (dev ¡û test ¡û master)
? Beware any git command including --force
DEV
PROD
37. Additional Resources
10/22/2013
? ¡°Pro Git¡± eBook (free): http://git-scm.com/
? Other Git models:
? http://svn.haxx.se/users/archive-2007-10/att-
0101/SCMBranchingModels.pdf
? http://nvie.com/posts/a-successful-git-branching-model/
? Other Git workflows: https://www.atlassian.com/git/workflows
? http://gitignore.io/
? UITS Web & Mobile Services Git documentation (* restricted
access, complex, and customized to our environment so email me offline if you
want a copy):
http://confluence.arizona.edu/display/uitswt/GIT+and+BitBucket+documentation