The Information Technology have led us into an era where the production, sharing and use of information are now part of everyday life and of which we are often unaware actors almost: it is now almost inevitable not leave a digital trail of many of the actions we do every day; for example, by digital content such as photos, videos, blog posts and everything that revolves around the social networks (Facebook and Twitter in particular). Added to this is that with the "internet of things", we see an increase in devices such as watches, bracelets, thermostats and many other items that are able to connect to the network and therefore generate large data streams. This explosion of data justifies the birth, in the world of the term Big Data: it indicates the data produced in large quantities, with remarkable speed and in different formats, which requires processing technologies and resources that go far beyond the conventional systems management and storage of data. It is immediately clear that, 1) models of data storage based on the relational model, and 2) processing systems based on stored procedures and computations on grids are not applicable in these contexts. As regards the point 1, the RDBMS, widely used for a great variety of applications, have some problems when the amount of data grows beyond certain limits. The scalability and cost of implementation are only a part of the disadvantages: very often, in fact, when there is opposite to the management of big data, also the variability, or the lack of a fixed structure, represents a significant problem. This has given a boost to the development of the NoSQL database. The website NoSQL Databases defines NoSQL databases such as "Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open source and horizontally scalable." These databases are: distributed, open source, scalable horizontally, without a predetermined pattern (key-value, column-oriented, document-based and graph-based), easily replicable, devoid of the ACID and can handle large amounts of data. These databases are integrated or integrated with processing tools based on the MapReduce paradigm proposed by Google in 2009. MapReduce with the open source Hadoop framework represent the new model for distributed processing of large amounts of data that goes to supplant techniques based on stored procedures and computational grids (step 2). The relational model taught courses in basic database design, has many limitations compared to the demands posed by new applications based on Big Data and NoSQL databases that use to store data and MapReduce to process large amounts of data.
Course Website http://pbdmng.datatoknowledge.it/
Contact me to download the slides
Présentation de GIT par Sébastien Dawans, Senior Engineer R&D au Cetic. http://www.cetic.be
Présenté le 26 Novembre 2013 à Louvain-la-Neuve
A practical step-by-step guide to Git, taking you through each phase of a project and explaining the use of Git at each step of the development process. Expect lots of how-to, but also some how-not-to, to avoid going down the wrong path.
This document provides an overview of a Git training course titled "Git-4-Geeks". It introduces Git and its history, explaining how Linus Torvalds created Git as a replacement for BitKeeper. It then covers common Git commands like init, clone, add, commit, branch, merge, rebase, and resolve conflicts. It discusses distributed version control and branching workflows. It also addresses tagging, remote repositories, and resolving merge conflicts. The goal is to teach attendees the fundamentals of using Git through scenario-based problems and solutions.
The document provides an overview of Git, including its history and development, how it compares to other version control systems like SVN, basic Git commands and workflows, branching and merging, resolving conflicts, and best practices. It discusses how Git is decentralized, offers offline support, and fast/reliable. It also recommends some GUI tools for visualizing Git repositories and resolving conflicts.
This document provides a summary of the key concepts and commands of the Git version control system. It begins with introductions to basic Git concepts and commands for initializing and configuring a Git repository, making commits, and viewing the commit history. It then covers more advanced topics like branches, merges, rebasing, reflogs, aliases and various Git commands.
This document provides an overview of Git and common Git workflows. It defines Git as an open source distributed version control system. It explains basic Git commands like init, add, commit, status, branch, merge, checkout, push and pull. It introduces different Git workflows like the solo workflow for small teams, feature branches for multiple developers, and Gitflow which is a popular branching model with development, feature, release and hotfix branches. Finally, it encourages selecting or customizing a workflow that fits your needs.
You already know how to use “git status”, “git push”, and “git add” for your personal projects. You know how to work on a team project with git version control. How do you achieve the next level of git mastery and become as productive as possible? Mistakes happen very frequently when coding. Sometimes they can be terrifying mistakes. You’ll learn git commands to un-do your coding mistakes effortlessly. How do you re-order, edit, remove, and squash commits? You’ll understand the differences between all the "git r*” commands: "git rebase", "git revert", "git reset", and "git reflog" and know when and why to use them. We’ll cover how to set up your git environment for a productive workflow, different ways to undo your mistakes in git, and finally, different ways to automate an entire git workflow.
These are the slides for a talk that I gave at PyTN 2015 on a Sunday morning.
The document provides an outline on installing and configuring Git, introduces common Git concepts and commands, discusses various Git workflows and hosting options on GitHub and Bitbucket, and includes examples of using Git in case studies. It covers topics such as setting up a local and global Git configuration, interacting with the staging area and working directory, branching and merging, and resolving conflicts. The document is intended to teach users the basics of using the popular version control system Git.
Here Don goes over some of the benefits of using GIT as well as some of the basic concepts and methods. Later he goes through the workflow of using GIT. Download his slides here or email him at [email protected].
Nicola Iarocci - Git stories from the front line - Codemotion Milan 2017Codemotion
This document provides numerous examples of Git aliases that can help streamline workflows. It begins by demonstrating aliases for common commands like status, last commit, checkout, add, commit, reset, and grep. It then shows more advanced aliases for managing branches, commits, and reflogs. Throughout, it emphasizes that aliases can make workflows more efficient by avoiding repetitive tasks and that teams should consider sharing standardized aliases. It concludes by encouraging readers to continually learn Git, customize workflows for their needs, and view themselves as craftspeople improving their skills.
This document provides tips and techniques for becoming a Git master, including:
1. Creating aliases to simplify common Git commands like committing and adding remotes. Aliases allow parameters and bash functions for complex commands.
2. Using features like assume-unchanged to hide files from Git and rerere to automate resolving similar conflicts.
3. Interactive rebasing to polish commit histories by squashing, rewording, and fixing up commits. Rebasing rewrites history so care is needed.
4. Techniques for preventing history tampering like reject force pushes and signing tags for verification. GPG keys can be stored and imported in Git.
5. Handling project dependencies with build tools or
This document provides an overview of using Git version control system, including:
1. The different types of version control systems like local (LVCS), centralized (CVCS), and distributed (DVCS) like Git.
2. Basic Git commands and workflows for creating a repository, adding/committing files, tagging versions, branching, merging, and working with remotes.
3. Examples of common branching workflows for topics, long-running branches, hotfixes, and merging branches with conflicts.
4. How to push/pull from remote repositories, delete remote branches, and work with tracking branches.
Version control systems allow recording changes to files over time. There are local, centralized, and distributed version control systems. Git is a free and open-source distributed version control system created by Linus Torvalds. It provides features like speed, support for non-linear development, and ability to handle large projects efficiently.
This is a presentation give to the Vancouver Drupal users group about moving to GIT as a version control system for a small development team. The presentation details the workflow we settled on, and the git flow method for branch management. You can see a video of the presentation here - http://www.ustream.tv/recorded/13544036
This document provides an overview of version control and introduces the basics of using Git for version control. It discusses centralized and decentralized version control systems and why version control is useful. It then demonstrates how to set up and use basic Git commands like configuring user information, initializing a repository, adding and committing files, viewing logs and status, branching and merging, and resolving conflicts. Remote repositories on services like Beanstalk are also covered at a basic level.
The document introduces Git, an open source distributed version control system. It discusses how Git allows doing most operations locally, including committing changes, viewing history, and switching branches. It outlines some benefits of version control like tracking changes, collaboration and reverting mistakes. Finally it provides examples of basic Git commands and workflows for setting up and collaborating on projects.
Git is a distributed version control system that allows developers to work independently and asynchronously on features or bug fixes through branches. Branches allow developers to commit changes frequently without disrupting the main codebase. If a branch is ready, a developer can merge the branch back into the main branch. Git also uses a commit and diff system to track changes at a file level, making it easy to revert changes or roll back to previous versions if needed. The distributed nature of Git provides advantages over centralized systems like SVN by allowing independent repositories and easy conflict resolution during merges.
This document provides an introduction to using Git. It covers getting Git, creating repositories, staging and committing files, branching, merging, and pushing and pulling changes. The presenter provides exercises for attendees to practice the basic Git commands and workflows. They discuss normal repositories, bare repositories, cloning repositories, viewing logs and commits, configuring user information, amending commits, removing files, branching, merging, pushing changes to a remote repository, and pulling changes from remote.
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 overview of Git, including definitions of distributed vs centralized version control, the staging area, basic Git commands, branches and tags, integrating feature branches, resolving conflicts, interactive rebasing, keeping history clean, additional tools like cherry-pick and blame, reflogs as a safety net, bisecting to find bugs, and customizing behavior with hooks. It also includes demonstrations of basics, branching strategies, and resolving conflicts.
The document provides an introduction and overview of Git. It begins with an introduction of the presenter and then asks poll questions to gauge who is and isn't using source code management systems. It then proceeds to explain what Git is, why it's useful, how to configure and set up a Git repository, how to add and commit changes, create and switch branches, undo changes, and work with remote repositories and resolve conflicts.
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 overview of Git and common Git workflows. It defines Git as an open source distributed version control system. It explains basic Git commands like init, add, commit, status, branch, merge, checkout, push and pull. It introduces different Git workflows like the solo workflow for small teams, feature branches for multiple developers, and Gitflow which is a popular branching model with development, feature, release and hotfix branches. Finally, it encourages selecting or customizing a workflow that fits your needs.
You already know how to use “git status”, “git push”, and “git add” for your personal projects. You know how to work on a team project with git version control. How do you achieve the next level of git mastery and become as productive as possible? Mistakes happen very frequently when coding. Sometimes they can be terrifying mistakes. You’ll learn git commands to un-do your coding mistakes effortlessly. How do you re-order, edit, remove, and squash commits? You’ll understand the differences between all the "git r*” commands: "git rebase", "git revert", "git reset", and "git reflog" and know when and why to use them. We’ll cover how to set up your git environment for a productive workflow, different ways to undo your mistakes in git, and finally, different ways to automate an entire git workflow.
These are the slides for a talk that I gave at PyTN 2015 on a Sunday morning.
The document provides an outline on installing and configuring Git, introduces common Git concepts and commands, discusses various Git workflows and hosting options on GitHub and Bitbucket, and includes examples of using Git in case studies. It covers topics such as setting up a local and global Git configuration, interacting with the staging area and working directory, branching and merging, and resolving conflicts. The document is intended to teach users the basics of using the popular version control system Git.
Here Don goes over some of the benefits of using GIT as well as some of the basic concepts and methods. Later he goes through the workflow of using GIT. Download his slides here or email him at [email protected].
Nicola Iarocci - Git stories from the front line - Codemotion Milan 2017Codemotion
This document provides numerous examples of Git aliases that can help streamline workflows. It begins by demonstrating aliases for common commands like status, last commit, checkout, add, commit, reset, and grep. It then shows more advanced aliases for managing branches, commits, and reflogs. Throughout, it emphasizes that aliases can make workflows more efficient by avoiding repetitive tasks and that teams should consider sharing standardized aliases. It concludes by encouraging readers to continually learn Git, customize workflows for their needs, and view themselves as craftspeople improving their skills.
This document provides tips and techniques for becoming a Git master, including:
1. Creating aliases to simplify common Git commands like committing and adding remotes. Aliases allow parameters and bash functions for complex commands.
2. Using features like assume-unchanged to hide files from Git and rerere to automate resolving similar conflicts.
3. Interactive rebasing to polish commit histories by squashing, rewording, and fixing up commits. Rebasing rewrites history so care is needed.
4. Techniques for preventing history tampering like reject force pushes and signing tags for verification. GPG keys can be stored and imported in Git.
5. Handling project dependencies with build tools or
This document provides an overview of using Git version control system, including:
1. The different types of version control systems like local (LVCS), centralized (CVCS), and distributed (DVCS) like Git.
2. Basic Git commands and workflows for creating a repository, adding/committing files, tagging versions, branching, merging, and working with remotes.
3. Examples of common branching workflows for topics, long-running branches, hotfixes, and merging branches with conflicts.
4. How to push/pull from remote repositories, delete remote branches, and work with tracking branches.
Version control systems allow recording changes to files over time. There are local, centralized, and distributed version control systems. Git is a free and open-source distributed version control system created by Linus Torvalds. It provides features like speed, support for non-linear development, and ability to handle large projects efficiently.
This is a presentation give to the Vancouver Drupal users group about moving to GIT as a version control system for a small development team. The presentation details the workflow we settled on, and the git flow method for branch management. You can see a video of the presentation here - http://www.ustream.tv/recorded/13544036
This document provides an overview of version control and introduces the basics of using Git for version control. It discusses centralized and decentralized version control systems and why version control is useful. It then demonstrates how to set up and use basic Git commands like configuring user information, initializing a repository, adding and committing files, viewing logs and status, branching and merging, and resolving conflicts. Remote repositories on services like Beanstalk are also covered at a basic level.
The document introduces Git, an open source distributed version control system. It discusses how Git allows doing most operations locally, including committing changes, viewing history, and switching branches. It outlines some benefits of version control like tracking changes, collaboration and reverting mistakes. Finally it provides examples of basic Git commands and workflows for setting up and collaborating on projects.
Git is a distributed version control system that allows developers to work independently and asynchronously on features or bug fixes through branches. Branches allow developers to commit changes frequently without disrupting the main codebase. If a branch is ready, a developer can merge the branch back into the main branch. Git also uses a commit and diff system to track changes at a file level, making it easy to revert changes or roll back to previous versions if needed. The distributed nature of Git provides advantages over centralized systems like SVN by allowing independent repositories and easy conflict resolution during merges.
This document provides an introduction to using Git. It covers getting Git, creating repositories, staging and committing files, branching, merging, and pushing and pulling changes. The presenter provides exercises for attendees to practice the basic Git commands and workflows. They discuss normal repositories, bare repositories, cloning repositories, viewing logs and commits, configuring user information, amending commits, removing files, branching, merging, pushing changes to a remote repository, and pulling changes from remote.
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 overview of Git, including definitions of distributed vs centralized version control, the staging area, basic Git commands, branches and tags, integrating feature branches, resolving conflicts, interactive rebasing, keeping history clean, additional tools like cherry-pick and blame, reflogs as a safety net, bisecting to find bugs, and customizing behavior with hooks. It also includes demonstrations of basics, branching strategies, and resolving conflicts.
The document provides an introduction and overview of Git. It begins with an introduction of the presenter and then asks poll questions to gauge who is and isn't using source code management systems. It then proceeds to explain what Git is, why it's useful, how to configure and set up a Git repository, how to add and commit changes, create and switch branches, undo changes, and work with remote repositories and resolve conflicts.
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.
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfAbi john
Analyze the growth of meme coins from mere online jokes to potential assets in the digital economy. Explore the community, culture, and utility as they elevate themselves to a new era in cryptocurrency.
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...Fwdays
Why the "more leads, more sales" approach is not a silver bullet for a company.
Common symptoms of an ineffective Client Partnership (CP).
Key reasons why CP fails.
Step-by-step roadmap for building this function (processes, roles, metrics).
Business outcomes of CP implementation based on examples of companies sized 50-500.
Role of Data Annotation Services in AI-Powered ManufacturingAndrew Leo
From predictive maintenance to robotic automation, AI is driving the future of manufacturing. But without high-quality annotated data, even the smartest models fall short.
Discover how data annotation services are powering accuracy, safety, and efficiency in AI-driven manufacturing systems.
Precision in data labeling = Precision on the production floor.
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
Buckeye Dreamin 2024: Assessing and Resolving Technical DebtLynda Kane
Slide Deck from Buckeye Dreamin' 2024 presentation Assessing and Resolving Technical Debt. Focused on identifying technical debt in Salesforce and working towards resolving it.
Big Data Analytics Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
Learn the Basics of Agile Development: Your Step-by-Step GuideMarcel David
New to Agile? This step-by-step guide is your perfect starting point. "Learn the Basics of Agile Development" simplifies complex concepts, providing you with a clear understanding of how Agile can improve software development and project management. Discover the benefits of iterative work, team collaboration, and flexible planning.
2. Abstract
Over the last several years one of the biggest changes in
how developers collaborate with each other has come
through, of all things, their source control system. The
adoption of Git has changed many of the patterns of
software development. In this talk I will introduce you to
the core concepts of using Git within a team, how it can
improve your agility and communication.
3. Agenda
Introduction
What is Git?
Git 101
Enabling Team Development
Short vs. Long Lived Branches
Tools/Resources
4. History
Created by Linus Torvalds for work on th
Linux kernel ~2005
Some of the companies that use git:
17. Branching
Forget what you know from Central VC
Git branch is “Sticky Note” on a graph
node
All branch work takes place within the
same folder within your file system.
18. Branching
Forget what you know from Central VC
Git branch is “Sticky Note” on the graph
All branch work takes place within the
same folder within your file system.
When you switch branches you are
moving the “Sticky Note”
19. Initialization
C:> mkdir CoolProject
C:> cd CoolProject
C:CoolProject > git init
Initialized empty Git repository in
C:/CoolProject/.git
C:CoolProject > notepad README.txt
C:CoolProject > git add .
C:CoolProject > git commit -m 'my first
commit'
[master (root-commit) 7106a52] my first
commit
1 file changed, 1 insertion(+)
create mode 100644 README.txt
65. Short vs. Long-Lived Branches
Local branches are short lived
Staying off master keeps merges
simple
66. Short vs. Long-Lived Branches
Local branches are short lived
Staying off master keeps merges
simple
Enables working on several changes at
once
67. Short vs. Long-Lived Branches
Local branches are short lived
Staying off master keeps merges
simple
Enables working on several changes at
once
Creat
e
Commit Merg
e
Delet
e
95. Short vs. Long-Lived Branches
Great for multi-version work
Follow same rules as Master
…use Story branches
Define your conventions
What branches do you want to
share?
#3: Today we I’m going to talk through several core concepts within Git. How you can take advantage of it within your team. And a few powerful scenarios such as using git to handle deployments.
#4: Git was originally created by Linus for work on the Linux kernel right around 2005.
Although git has its origins in the Open source community, git is being used within close source projects also.
This is just some of the many companies that are using git for both oss and closed sourced projects.
#9: So what does it really mean to have a distributed version control system?
Everyone on your team has a complete history of the code locally.
#10: Just about everything in Git can be done offline.
Not just that the system works well when it is offline. It is design from the beginning to have no real dependencies on a specific server.
The only actions you do in git where you need a server is when you push or pull changes from other team members.
#11: In git there is no central server required. So the authority is really determined by the conventions your team puts in place.
#12: Given Git’s nature you can even share changes in a peer-to –peer nature.
This does not happen often but Git does enable this ability. If your server is offline for some reason your team can still work.
#13: This is over simplifying the story, but the basics are that centralized version control system define a central authority.
I am not saying one system is better that the other, it is just that each model that its benefits.
In the distributed model by definition everything is expected to be off line. To have a system that expects everything to be offline, you have to build in several local capabilities that are not required in a centralized model.
Such as local branching. And to make branching fast and lightweight you better make merging great also.
I won’t go into the guts of git that enables some of this capability in this talk, but if you are interested I will highlight some resources at the end of the talk where you can go deeper.
#15: For this you need to forget what your experiences with branching in centralized version control systems.
#16: A Git branch is just a sticky note on the graph.
#17: All work happens within this one location.
When I first started using Git, it really freaked me out when I switched branches for the first time and things just disappeared.
It took me awhile to really trust what was happening. So don’t freak out it is ok.
#18: Switching between branches is just moving the sticky note around.
#19: After you install git on your machine to get started you will need to initialize a repository.
You can do this by going into your file system, creating a folder and doing git init within the folder.
All the magic happens in the Dot Git folder. This folder IS GIT. You can copy this folder to another machine and it will work.
When I first started playing with git, I had setup a new machine, and was having a hell of a time trying to figure out how I should move my git projects over to the new machine. It was kind of embarrassing. Eventually I just tried to copy it over and it worked.
At this point you really don’t have much. You need to do your first commit to make this light up.
You create a file. When then stage it, but telling git the track this file. In this case I told git to add all files.
Then I was able to commit with a message say this is my first commit.
#20: Now lets see what this visually looks like.
On my first commit I have A.
The default branch that gets created with git is a branch names Master.
This is just a default name. As I mentioned before, most everything in git is done by convention. Master does not mean anything special to git.
#21: We make a set of commits, moving master and our current pointer (*) along
#22: Suppose we want to work on a bug. We start by creating a local “story branch” for this work.
Notice that the new branch is really just a pointer to the same commit (C) but our current pointer (*) is moved.
#23: Now we make commits and they move along, with the branch and current pointer following along.
#24: We can “checkout” to go back to the master branch.
This is where I was freaked out the first time I did this. My IDE removed the changes I just made. It can be pretty startling, but don’t worry you didn’t lose anything.
#25: And then merge from the story branch, bringing those change histories together.
#26: And since we’re done with the story branch, we can delete it. This all happened locally, without affecting anyone upstream.
#27: Let’s consider another scenario. Here we created our bug story branch back off of (C). But some changes have happened in master (bug 123 which we just merged) since then.
And we made a couple of commits in bug 456.
#28: Again, to merge, we checkout back to master which moves our (*) pointer.
#29: And now we merge, connecting the new (H) to both (E) and (G). Note that this merge, especially if there are conflicts, can be unpleasant to perform.
#30: Now we delete the branch pointer.
But notice the structure we have now. This is very non-linear. That will make it challenging to see the changes independently. And it can get very messy over time.
#31: Rebase flow - Let’s go back in time and look at another approach that git enables. So here we are ready to merge.
#32: Instead of merging, we “rebase”.
What this means is something like this:
1. Take the changes we had made against (C) and undo them, but remember what they were
2. Re-apply them on (E) instead
#33: Now when we merge them, we get a nice linear flow.
Also, the actual changeset ordering in the repository mirrors what actually happened. (F’) and (G’) come after E rather than in parallel to it. Also, there is one fewer snapshots in the repository.
#38: But of course, most of you work on software with other people.
#39: Since everyone on the team has a complete copy of the repository you can do things like this.
But no one wants to keep track of changes this way.
#41: There really is nothing special about the remote server. You can have more than one. But it enables a nice integration location, just like you are used to in the centralized version control
#42: There are two ways to configure a remote within your local machine.
#43: If you have an existing repository you can just add a git remote using
Git remote add NAME. Origin is not a special name, it is just a common convention that gets used. You can name this anything you want.
#44: If you don’t have a local copy of the repository you can clone the repository from the remote.
Doing this pulls the full repository locally, and sets up the remote connection information.
#47: Suppose we are here. We cloned master on (A) and have been fixing bug 123 in our story branch.
#48: I’ll use the orange box to indicate where the master pointer is on the remote server.
Here we are as before with our local master branch and the remote master branch both pointing at (A)
#49: The changes on the Bug123 branch are only known to my local machine the remote server does not have these changes. Or the bug123 branch for that matter.
#50: But in fact there are two versions of the orange master pointer. One is what we last know about the upstream master and the other is what is actually up there (which we don’t know about).
#51: So if this is what we know, we can update our master to catch up.
First we checkout master which moves our current (*) to there. Note that we are actually on our master, not the upstream one. That is always true. But the tracking branch is also pointing to (A) at this point.
#52: Now we can do a pull on the origin (our source remote) and move both along to their new place.
#53: I have not talked about Pull before. The pull command is combination of a fetch from the remote server and a merge of the changes.
You can do these steps separately, but if you are not working on the branch you are pulling down, pull is just a nice way to get up to date.
#54: Now we can do a pull on the origin (our source remote) and move both along to their new place.
#55: Returning to our bug fix now by checkout on that, we have a similar problem to what we saw before. B-C-D-E all come before F and G. Merging would create issues, right?
#56: So we use rebase to rewind and replay B-C-D-E after G.
#58: And merge. Note that the orange (upstream) pointer is still “back there”.
#59: And finally, because we want to publish these changes, we push to the origin, moving the orange pointer along.
#60: Push will update the remote server.
If you are out of date, Git will reject that push.
Git will require you to merge locally, then push the results.
#61: And finally, because we want to publish these changes, we push to the origin, moving the orange pointer along.
#63: Suggestion, update your local repository at least once a day. Makes it easier to see what is going on upstream.
#67: The process of Creating a local branch, commit your changes, merge it into the shared branch and then deleting the branch…
#68: Define branches for the next version of the product.
#73: Say we want to start working on the next version of our Cool Project
#74: Say we want to start working on the next version of our Cool Project. We will want to create a develop branch
#75: To share this with the team we need to push it up to the remote
#76: To share this with the team we need to push it up to the remote
#77: Lets say there are some changes on develop from other team members. Until we do a pull we won’t see these changes locally
#78: Pull some changes from other team members… you should be doing this at least once a day.
#79: Now we have an idea. We create a working branch off of development
#80: Now we have an idea. We create a working branch off of development
#81: One of your teammates did a hotfix in production
#82: Since we are keeping up to date. Just doing a pull or fetch now and then is a good idea.
#83: Merge Idea into Develop. First we want to checkout develop
#84: Since there was not any additional changes on develop we could easily merge idea into develop. – This is call a fast forward merge since git is really just moving the pointer to H
#94: As with most things with Git, there are multiple ways to do something. Using a Merge flow verse a Rebase flow is a matter of taste, but as you can see the rebase flow looks cleaner and as you get into large projects the number of branches can get pretty messy.
This is a simple example of rewriting history in git.
#95: Git is really powerful, but when you start working with a team it is best to come up with a few conventions that you can agree upon.
Are you going to treat master as a production branch.
No work happen in master, everything happens in a combination of shared feature branches and personal local branches.
#96:
As we have seen git is pretty powerful to enable sharing of code between team members. But git can also be used to deploy to several services.