This document provides an overview of using Git like a pro. It discusses Git fundamentals like objects, references and branches. It also covers advanced topics such as rebasing, reflogs, resetting and bisecting to find errors. The goals are to increase understanding of Git internals, solve cumbersome situations, produce cleaner histories and have fun.
This document provides an overview of using Git like a pro. It begins with introducing the author and stating goals of increasing Git understanding, solving cumbersome situations, producing cleaner Git history, and having fun. It then covers key Git concepts like objects, references, branches, HEAD, merging vs rebasing, interactive rebasing, rerere, and how to use reset, reflog, and bisect commands to troubleshoot issues. The document emphasizes hands-on learning through examples and encourages experimenting in the provided Gitlab repository.
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.
Deck for studying up on Git commands.
This was purposefully kept free of any styling etc as this is the actual deck I use for memorization and don't like distractions.
The document discusses the three main states that code can be in with Git: unmodified, staged, and committed. It explains how to use commands like git add, git commit, git status, and git diff to transition code between these states and view changes. It also covers branching, merging, rebasing and rewriting history with commands like git branch, git merge, git rebase and git reset.
Git init creates a .git repository in a project directory to track changes over time, building a history. The .git directory contains files like HEAD, config, and objects that store metadata and data for the local repository. Git add stages files, git commit commits the staged files to the local repository, and git status shows file status. Remote repositories on services like GitHub can be created and the local repository connected to it with git remote add and git push to push local commits remotely. Branches allow parallel development and are created, switched between, merged, and deleted.
Git is a distributed version control system that allows users to track changes to files and collaborate with others. It maintains a database of snapshots of files and allows users to commit changes, compare changes between versions, and collaborate through a remote server. Some key aspects of Git include its use of snapshots rather than file differences, its local operations that add data, and its three stages of files - the working directory, staging area, and Git directory.
Deck for studying up on Git commands.
This was purposefully kept free of any styling etc as this is the actual deck I use for memorization and don't like distractions.
This document provides an overview of using Git like a pro. It begins with introducing the author and stating goals of increasing Git understanding, solving cumbersome situations, producing cleaner Git history, and having fun. It then covers key Git concepts like objects, references, branches, HEAD, merging vs rebasing, interactive rebasing, rerere, and how to use reset, reflog, and bisect commands to troubleshoot issues. The document emphasizes hands-on learning through examples and encourages experimenting in the provided Gitlab repository.
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.
Deck for studying up on Git commands.
This was purposefully kept free of any styling etc as this is the actual deck I use for memorization and don't like distractions.
The document discusses the three main states that code can be in with Git: unmodified, staged, and committed. It explains how to use commands like git add, git commit, git status, and git diff to transition code between these states and view changes. It also covers branching, merging, rebasing and rewriting history with commands like git branch, git merge, git rebase and git reset.
Git init creates a .git repository in a project directory to track changes over time, building a history. The .git directory contains files like HEAD, config, and objects that store metadata and data for the local repository. Git add stages files, git commit commits the staged files to the local repository, and git status shows file status. Remote repositories on services like GitHub can be created and the local repository connected to it with git remote add and git push to push local commits remotely. Branches allow parallel development and are created, switched between, merged, and deleted.
Git is a distributed version control system that allows users to track changes to files and collaborate with others. It maintains a database of snapshots of files and allows users to commit changes, compare changes between versions, and collaborate through a remote server. Some key aspects of Git include its use of snapshots rather than file differences, its local operations that add data, and its three stages of files - the working directory, staging area, and Git directory.
Deck for studying up on Git commands.
This was purposefully kept free of any styling etc as this is the actual deck I use for memorization and don't like distractions.
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.
GIT is a distributed version control system that allows for collaboration by keeping track of changes made to source code over time. It keeps snapshots of files and allows users to work offline or disconnected from servers. Unlike centralized systems, GIT considers data as snapshots of files rather than file-based changes, and each user has a full copy of the repository. Users can commit changes to their local repository and then push them to remote repositories. Common commands include add, commit, push, pull, branch, merge, and status.
This document provides instructions on installing and using basic version control functionality with Git. It covers downloading and verifying Git installation, initializing and committing to a Git repository, viewing commit history and file status, staging and unstaging files, reverting and resetting commits, and tagging commits. The key points are initializing a Git repository, making commits to track changes over time, and various commands to move between commits, view history, and recover from mistakes.
The document discusses version control and introduces Git as a distributed and centralized version control system. It explains the key properties of Git including being file-based, fast, using checksums, and attention to detail. The document also outlines some of the basic Git commands like add, commit, reset, checkout, diff, and demonstrates other commands like stash, log, show, amend, and branching and merging. It concludes by asking when organizations should switch from SVN to Git version control.
Git, the widely popular version control tool that just about everyone who works on the web seems to use, is powerful, scalable, flexible. . .and difficult to learn. If you’ve used Git for any amount of time, you’ve probably gotten yourself into some confusing, frustrating, or downright terrifying situations. But don’t panic. You are not alone. Katie Sylor-Miller explains how to avoid getting into Git messes in the first place, demonstrating how the fundamental structures in Git actually work under the hood and sharing best practices, workflows, and tools that will keep your commits in order and reduce the panic caused by merge conflicts. Katie then shows you how to leverage Git’s powerful features to save yourself when everything seems to go wrong.
This document provides an introduction to using Git. Some key points:
- Git is a distributed version control system that is different from CVS/SVN in that nearly every operation is local and Git stores snapshots of files rather than differences.
- The basics of using Git involve recording changes by checking status, adding files, committing changes, and working with remotes like origin.
- Additional topics covered include undoing changes, working with others through branching and merging, tagging versions, and using tools like interactive mode and stashing.
This document provides instructions for using Git for version control and collaboration. It begins with downloading and installing Git, then configuring basic user settings. It describes initializing and cloning repositories, checking the status of files, and viewing commit logs. The document outlines the basic Git workflow including making changes to files, staging files, and committing changes to the local repository. It also covers pushing and pulling changes to and from remote repositories. Finally, it discusses resolving merge conflicts that can occur when merging branches.
The document provides an overview of common Git commands organized into categories like init/clone, add/commit, branch, log, diff/blame, undo/revert, merge/rebase, remote operations and more. It also includes explanations of concepts like the three main areas in Git (working directory, staging area, HEAD), and tips like using fetch instead of pull and following a forking workflow. The document is intended to teach attendees the essentials of using Git through explaining commands and best practices.
Git is a distributed version control system that allows developers to work on codebases simultaneously and merge changes easily. It uses a local repository that can be synced to remote repositories hosted on services like GitHub. Developers clone repositories, make changes on branches, commit locally, and push updates to the remote. Git addresses issues like file locking and enables features like easy merging and reverting changes. Stashing is used to temporarily store uncommitted changes when switching branches. GUI clients and documentation on sites like GitHub help users learn and use Git's powerful capabilities for collaboration.
This document provides an overview of Git basics including why Git is useful, how it works, common workflows, branching, merging, rebasing, tagging, bisecting, and using remote repositories on services like GitHub. It explains key Git concepts and commands in an accessible way for those new to version control.
This document discusses using Git and GitHub for version control. It covers Git terminology and commands for initializing a Git repository, configuring Git, adding and committing files, branching and merging, and using an code editor with Git. Key points include using 'git init' to create a new local repository, 'git add' to stage files for committing, 'git commit' to save changes to the repository, and 'git branch', 'git checkout' and 'git merge' for managing branches. The document provides guidance on writing good commit messages and installing Git on different operating systems.
A Brief Introduction to Working with GitPhilip Langer
This slide deck is intended for Git beginners and focuses on the underlying concepts, the usage of the command line, especially the commands git reset, git checkout, git revert, git commit, and eventually introduces models for using Git and why git rebase may play an important role in some those models.
This document provides an overview of version control systems and the basic commands and workflows in Git. It explains that version control systems allow recording changes to files over time so that specific versions can be recalled. It then covers the basic Git commands for recording changes (add, commit), viewing history (log, diff), undoing changes (reset, checkout, amend), and collaborating remotely (push, pull, fetch). It also discusses branching workflows in Git for diverging and merging lines of development.
This document provides an overview of Git, including what it is, its internals, and workflows. Git is a distributed version control system that was designed as a content tracker and file system rather than a traditional SCM. It uses a non-linear development model and stores content in compressed objects including blobs for files, trees for directories, commits for snapshots, and tags for labels. Git allows for distributed and non-linear workflows through features like branching, merging, and rebasing. Common Git workflows include Gitflow and GitHub Flow.
A Beginner's Guide to Git and GitHub, CLI version.
What is Git?
What is Github
Basic commands
Difference between Central and Distributed Version Controlling System
This document provides an introduction to Git basics and concepts. It covers version control systems and why distributed version control is useful. It then discusses how Git originated from the Linux kernel project. The document reviews basic Git commands and workflows for setting up a repository, tracking and committing changes. It also covers viewing differences between commits, staging files, and undoing or amending commits. Finally, it discusses sharing repositories remotely including adding remotes, pushing and pulling from remote repositories, and cloning repositories from remote URLs.
This document provides an overview and introduction to using the version control system Git. It covers basic Git concepts and operations including configuration, the three main states files can be in, committing changes, viewing history and logs, branching, merging, rebasing, tagging, and collaborating remotely. The document also discusses some internals of Git including how objects are stored and how Git and other version control systems originated.
Git is a version control system that allows users to synchronize branches and rewrite history. It stores project data in objects including blobs for file contents, trees for directories, commits for snapshots, and tags for references. Commits, branches, and tags are referenced by SHA-1 hashes or names. Rebasing replays commits onto another branch to keep a linear history, while merging uses commit objects to join branches. The reflog tracks reference updates and allows recovering from errors. Interactive rebasing edits the commit history. Bisecting helps identify the commit introducing a bug by binary searching the commit history.
This document provides an overview of the history and basics of the Git version control system. It discusses key concepts like branches, commits, refs, staging areas and how to perform common operations like resetting, reverting, stashing and rebasing. The history of version control systems is outlined starting from SCCS in the 1970s through CVS and Subversion to the creation of Git in 2005 by Linus Torvalds to improve on BitKeeper. Internal areas like the HEAD, index, file statuses and relative commit names are also covered.
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.
GIT is a distributed version control system that allows for collaboration by keeping track of changes made to source code over time. It keeps snapshots of files and allows users to work offline or disconnected from servers. Unlike centralized systems, GIT considers data as snapshots of files rather than file-based changes, and each user has a full copy of the repository. Users can commit changes to their local repository and then push them to remote repositories. Common commands include add, commit, push, pull, branch, merge, and status.
This document provides instructions on installing and using basic version control functionality with Git. It covers downloading and verifying Git installation, initializing and committing to a Git repository, viewing commit history and file status, staging and unstaging files, reverting and resetting commits, and tagging commits. The key points are initializing a Git repository, making commits to track changes over time, and various commands to move between commits, view history, and recover from mistakes.
The document discusses version control and introduces Git as a distributed and centralized version control system. It explains the key properties of Git including being file-based, fast, using checksums, and attention to detail. The document also outlines some of the basic Git commands like add, commit, reset, checkout, diff, and demonstrates other commands like stash, log, show, amend, and branching and merging. It concludes by asking when organizations should switch from SVN to Git version control.
Git, the widely popular version control tool that just about everyone who works on the web seems to use, is powerful, scalable, flexible. . .and difficult to learn. If you’ve used Git for any amount of time, you’ve probably gotten yourself into some confusing, frustrating, or downright terrifying situations. But don’t panic. You are not alone. Katie Sylor-Miller explains how to avoid getting into Git messes in the first place, demonstrating how the fundamental structures in Git actually work under the hood and sharing best practices, workflows, and tools that will keep your commits in order and reduce the panic caused by merge conflicts. Katie then shows you how to leverage Git’s powerful features to save yourself when everything seems to go wrong.
This document provides an introduction to using Git. Some key points:
- Git is a distributed version control system that is different from CVS/SVN in that nearly every operation is local and Git stores snapshots of files rather than differences.
- The basics of using Git involve recording changes by checking status, adding files, committing changes, and working with remotes like origin.
- Additional topics covered include undoing changes, working with others through branching and merging, tagging versions, and using tools like interactive mode and stashing.
This document provides instructions for using Git for version control and collaboration. It begins with downloading and installing Git, then configuring basic user settings. It describes initializing and cloning repositories, checking the status of files, and viewing commit logs. The document outlines the basic Git workflow including making changes to files, staging files, and committing changes to the local repository. It also covers pushing and pulling changes to and from remote repositories. Finally, it discusses resolving merge conflicts that can occur when merging branches.
The document provides an overview of common Git commands organized into categories like init/clone, add/commit, branch, log, diff/blame, undo/revert, merge/rebase, remote operations and more. It also includes explanations of concepts like the three main areas in Git (working directory, staging area, HEAD), and tips like using fetch instead of pull and following a forking workflow. The document is intended to teach attendees the essentials of using Git through explaining commands and best practices.
Git is a distributed version control system that allows developers to work on codebases simultaneously and merge changes easily. It uses a local repository that can be synced to remote repositories hosted on services like GitHub. Developers clone repositories, make changes on branches, commit locally, and push updates to the remote. Git addresses issues like file locking and enables features like easy merging and reverting changes. Stashing is used to temporarily store uncommitted changes when switching branches. GUI clients and documentation on sites like GitHub help users learn and use Git's powerful capabilities for collaboration.
This document provides an overview of Git basics including why Git is useful, how it works, common workflows, branching, merging, rebasing, tagging, bisecting, and using remote repositories on services like GitHub. It explains key Git concepts and commands in an accessible way for those new to version control.
This document discusses using Git and GitHub for version control. It covers Git terminology and commands for initializing a Git repository, configuring Git, adding and committing files, branching and merging, and using an code editor with Git. Key points include using 'git init' to create a new local repository, 'git add' to stage files for committing, 'git commit' to save changes to the repository, and 'git branch', 'git checkout' and 'git merge' for managing branches. The document provides guidance on writing good commit messages and installing Git on different operating systems.
A Brief Introduction to Working with GitPhilip Langer
This slide deck is intended for Git beginners and focuses on the underlying concepts, the usage of the command line, especially the commands git reset, git checkout, git revert, git commit, and eventually introduces models for using Git and why git rebase may play an important role in some those models.
This document provides an overview of version control systems and the basic commands and workflows in Git. It explains that version control systems allow recording changes to files over time so that specific versions can be recalled. It then covers the basic Git commands for recording changes (add, commit), viewing history (log, diff), undoing changes (reset, checkout, amend), and collaborating remotely (push, pull, fetch). It also discusses branching workflows in Git for diverging and merging lines of development.
This document provides an overview of Git, including what it is, its internals, and workflows. Git is a distributed version control system that was designed as a content tracker and file system rather than a traditional SCM. It uses a non-linear development model and stores content in compressed objects including blobs for files, trees for directories, commits for snapshots, and tags for labels. Git allows for distributed and non-linear workflows through features like branching, merging, and rebasing. Common Git workflows include Gitflow and GitHub Flow.
A Beginner's Guide to Git and GitHub, CLI version.
What is Git?
What is Github
Basic commands
Difference between Central and Distributed Version Controlling System
This document provides an introduction to Git basics and concepts. It covers version control systems and why distributed version control is useful. It then discusses how Git originated from the Linux kernel project. The document reviews basic Git commands and workflows for setting up a repository, tracking and committing changes. It also covers viewing differences between commits, staging files, and undoing or amending commits. Finally, it discusses sharing repositories remotely including adding remotes, pushing and pulling from remote repositories, and cloning repositories from remote URLs.
This document provides an overview and introduction to using the version control system Git. It covers basic Git concepts and operations including configuration, the three main states files can be in, committing changes, viewing history and logs, branching, merging, rebasing, tagging, and collaborating remotely. The document also discusses some internals of Git including how objects are stored and how Git and other version control systems originated.
Git is a version control system that allows users to synchronize branches and rewrite history. It stores project data in objects including blobs for file contents, trees for directories, commits for snapshots, and tags for references. Commits, branches, and tags are referenced by SHA-1 hashes or names. Rebasing replays commits onto another branch to keep a linear history, while merging uses commit objects to join branches. The reflog tracks reference updates and allows recovering from errors. Interactive rebasing edits the commit history. Bisecting helps identify the commit introducing a bug by binary searching the commit history.
This document provides an overview of the history and basics of the Git version control system. It discusses key concepts like branches, commits, refs, staging areas and how to perform common operations like resetting, reverting, stashing and rebasing. The history of version control systems is outlined starting from SCCS in the 1970s through CVS and Subversion to the creation of Git in 2005 by Linus Torvalds to improve on BitKeeper. Internal areas like the HEAD, index, file statuses and relative commit names are also covered.
The document provides an overview of common Git commands for initializing and cloning repositories, tracking changes, viewing history, branching and merging, and working with remote repositories. It introduces commands for initializing and cloning repositories (git init, git clone), making and viewing changes (git add, git commit, git status, git diff), viewing history (git log), branching and merging (git branch, git checkout, git merge), and interacting with remote repositories (git remote, git fetch, git pull, git push).
- Git is a distributed version control system designed by Linus Torvalds for Linux kernel development
- It is better than Subversion because it is distributed, allows lightweight branching and merging, requires less disk space, and has no single point of failure
- Common Git commands include git init to initialize a repository, git add to stage files for committing, git commit to commit staged changes, and git push/pull to transfer commits between local and remote repositories
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 dlee@tagged.com.
To introduce and motivate some best practice around version control and Git.
Resources:
https://en.wikipedia.org/wiki/Version_control
https://git-scm.com/
https://try.github.io
http://rogerdudler.github.io/git-guide/
http://ohshitgit.com/
https://www.atlassian.com/git/tutorials
https://www.datacamp.com/courses/introduction-to-git-for-data-science
GIT: Content-addressable filesystem and Version Control SystemTommaso Visconti
Git presentation, internals, advanced use and workflow examples.
Presentation by Tommaso Visconti http://www.tommyblue.it for DrWolf srl http://www.drwolf.it
This document provides an introduction and overview of Git and GitHub. It discusses version control systems and the differences between centralized and distributed version control. Key Git concepts and commands are explained such as configuring Git, creating repositories, adding and committing files, branches, pulling and pushing changes. GitHub is introduced as a platform for hosting Git repositories and collaborating on projects. The document provides instructions for adding collaborators to a GitHub repository.
The document discusses how to rewrite Git history using commands like git commit --amend, git rebase, and git rebase -i. It explains that these commands rewrite history by creating new commits, and cautions against rewriting public commits. The git reflog is also described as a mechanism for recovering commits after history is rewritten.
This document provides an overview of advanced Git concepts, including:
- Git architecture with working copy, staging index, local repository, and remote repository
- Common Git commands like add, commit, push, pull, and their purposes
- Git configuration settings for user name, email, and formatting preferences
- Creating and cloning repositories locally and remotely
- Using branches to work on features independently and merging them together
- Tracking other developers' repositories as remotes to collaborate on work
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.
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.
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.
The document provides an overview of common Git commands and concepts for collaboration. It discusses forking repositories to make changes without affecting the original, using pull requests to submit changes for review, and managing remote repositories. It also covers merging and rebasing branches, as well as more advanced commands like reset, checkout, and revert for undoing changes or moving between commits. Additional topics include reflogs for viewing history, logging commits, stashing work in progress, and enabling Git autocomplete in Bash.
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.
Git is a version control system for tracking changes in computer files and coordinating work on those files among multiple people.
This PPT describes most used commands.
Advanced Git: A talk on the finer parts of Git.
Covering basic to somewhat advanced Git usage for development tasks. Goes into some detail on some parts of Git that may confuse many
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 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.
Similar to Git like a pro EDD18 - Full edition (20)
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...XfilesPro
Wondering how X-Sign gained popularity in a quick time span? This eSign functionality of XfilesPro DocuPrime has many advancements to offer for Salesforce users. Explore them now!
What is Master Data Management by PiLog Groupaymanquadri279
PiLog Group's Master Data Record Manager (MDRM) is a sophisticated enterprise solution designed to ensure data accuracy, consistency, and governance across various business functions. MDRM integrates advanced data management technologies to cleanse, classify, and standardize master data, thereby enhancing data quality and operational efficiency.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
Microservice Teams - How the cloud changes the way we workSven Peters
A lot of technical challenges and complexity come with building a cloud-native and distributed architecture. The way we develop backend software has fundamentally changed in the last ten years. Managing a microservices architecture demands a lot of us to ensure observability and operational resiliency. But did you also change the way you run your development teams?
Sven will talk about Atlassian’s journey from a monolith to a multi-tenanted architecture and how it affected the way the engineering teams work. You will learn how we shifted to service ownership, moved to more autonomous teams (and its challenges), and established platform and enablement teams.
Unveiling the Advantages of Agile Software Development.pdfbrainerhub1
Learn about Agile Software Development's advantages. Simplify your workflow to spur quicker innovation. Jump right in! We have also discussed the advantages.
When it is all about ERP solutions, companies typically meet their needs with common ERP solutions like SAP, Oracle, and Microsoft Dynamics. These big players have demonstrated that ERP systems can be either simple or highly comprehensive. This remains true today, but there are new factors to consider, including a promising new contender in the market that’s Odoo. This blog compares Odoo ERP with traditional ERP systems and explains why many companies now see Odoo ERP as the best choice.
What are ERP Systems?
An ERP, or Enterprise Resource Planning, system provides your company with valuable information to help you make better decisions and boost your ROI. You should choose an ERP system based on your company’s specific needs. For instance, if you run a manufacturing or retail business, you will need an ERP system that efficiently manages inventory. A consulting firm, on the other hand, would benefit from an ERP system that enhances daily operations. Similarly, eCommerce stores would select an ERP system tailored to their needs.
Because different businesses have different requirements, ERP system functionalities can vary. Among the various ERP systems available, Odoo ERP is considered one of the best in the ERp market with more than 12 million global users today.
Odoo is an open-source ERP system initially designed for small to medium-sized businesses but now suitable for a wide range of companies. Odoo offers a scalable and configurable point-of-sale management solution and allows you to create customised modules for specific industries. Odoo is gaining more popularity because it is built in a way that allows easy customisation, has a user-friendly interface, and is affordable. Here, you will cover the main differences and get to know why Odoo is gaining attention despite the many other ERP systems available in the market.
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Git like a pro EDD18 - Full edition
1. USING GIT LIKE A PRO
JESÚS MIGUEL BENITO CALZADA
EDD - 27/10/2018
2. About me
git config --global user.name “Jesús Miguel Benito Calzada”
git config --global user.email “beni0888@hotmail.com”
3. About me
git config --global user.name “Jesús Miguel Benito Calzada”
git config --global user.email “beni0888@hotmail.com”
@beni0888
https://www.linkedin.com/in/jesusmiguelbenito/
4. Goals
Increase our understanding of Git internals
Get the knowledge to solve cumbersome situations
Be able to produce a better (cleaner, coherent) Git history
Have fun!
5.
6. Git directory's main items
HEAD: a reference to the commit we have currently checked
out.
Config: file that stores repo’s configuration.
Objects: directory containing git objects’ database.
Refs: directory that contains all repo’s references: branches
(locals and remotes) and tags.
Some other files and folders used for different purposes.
7. Git objects
The Git object database store four different
object types:
Blob
Tree
Commit
Tag
9. Git cat-file
Shows the information about an object in the repository:
-t: show type
-p: shows object content
-s: object size
> git cat-file (-t|-p|-s) <object>
10. Git objects - Blob
Stores the contents of a file in compressed form.
Meaningless by its own, does not contain any reference to
the file which it refers to.
11. Git objects - Tree
Equivalent to a ‘directory’ in the file system.
Contains a list of Blobs (along with the files they refer to)
and other Tree objects.
12. Git objects - Commit
Snapshot image of a particular directory tree.
Additional metadata:
Timestamp
Author
Committer
Log message
Identities of parent commits
14. Git objects – Tag
Annotated tags.
A container that holds a reference to an object (usually a
commit).
Metadata (tag name, tagger and description).
15. References
A reference is a “pointer” to a commit.
It holds the SHA-1 hash of a commit.
Allows us to refer to commits in a human-friendly way.
Stored in files under .git/refs directory.
17. What is a git branch?
It is just a reference to a commit!
Stored in files under .git/refs/heads (.git/refs/remotes)
Tags are also references under .git/refs/tags
18. References – HEAD
HEAD is a special reference that
points to the commit you have
currently checked out.
Stored in .git/HEAD file.
It usually points to another
reference instead of a commit!
When it points to a commit, we said it
is in a detached state.
21. Tip
You can just do as follows:
After creating a local branch, we need to provide its upstream
before pushing.
> git checkout -b my-branch-with-a-long-name
> git push
fatal: The current branch my-branch-with-a-long-name has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin my-branch-with-a-long-name
> git push origin HEAD
22. Specifying revisions
SHA-1, short SHA-1
Any valid reference: branch, tag, HEAD
Reflog short names: HEAD@{5}, @5… (we will see later)
Ancestry references: HEAD^, HEAD~
Commit ranges
Double dot: <ref-A>..<ref-B>
Exclude commits reachable from ref: ~<ref>, --not <ref>
Multiple points: <ref-A> <ref-B> ~<ref-C>
Triple dots: <ref-A>…<ref-B> (Shows the commits reachable by either
of two references but not by both of them.
There are several ways we can refer to a commit/revision:
23. Ancestry references
A = = A^0 = A~0
B = A^ = A^1 = A~ = A~1
C = = A^2
D = A^^ = A^1^1 = B~ = A~2
E = B^2 = A^^2
F = B^3 = A^^3 = A^2^ = C~
<rev>^<n> = The <n>th parent of rev.
<rev>~<n> = The <n>th generation ancestor of <rev>, following only the first
parents.
25. Git rev-parse
It is a “magic command” used by many other commands to
do different things.
Convert a commit reference to a real SHA-1:
> git rev-parse <ref>
Obtain current branch name:
> git rev-parse --abbrev-ref HEAD
Obtain relative path to go back to repo’s root:
> git rev-parse --show-cdup
26.
27. Tip: rev-parse
Create an useful alias to go back to the repo’s root
directory, it does not matter how deep you are in the
tree:
$> alias groot = “cd `git rev-parse --show-cdup || pwd`”
30. Merge
$> git merge master feature
The most common and easy way of synchronization.
Produces ugly merge commits.
Keeps the context of the synchronization.
Branch history can be difficult to follow.
33. Rebase
Rewrites all feature branch’s commits on top of master branch.
Much cleaner project history:
Avoid ugly merge commits.
Perfectly linear project history.
Some drawbacks:
It rewrites the history! Generate new different commits, with different
SHA-1.
Loses the context of synchronization provided by a merge commit.
Golden rule: never use it on public branches!!
Merging vs Rebasing
34. Lab
Clone repo: https://github.com/beni0888/gitlikeapro
Execute a rebase:
Checkout rebase-no-conflicts
Rebase it onto rebase-base
Tip: git log rebase-base…rebase-no-conflicts (show divergent
commits)
Execute a rebase with conflicts:
Checkout rebase-with-conflicts
Rebase it onto rebase-base
Resolve conflicts and finish rebase
35. Interactive rebase
git checkout feature
git rebase (--interactive | -i) <commit-ref>
Allows to edit the history from a commit on.
It opens an editor showing the list of commits that are going to
be replayed, and allows to perform certain actions on them:
Join commits: squash, fixup
Edit commit message: reword
Edit commit content: edit
Remove commit: drop
Reorder commits: just change commit’s order in the editor
36.
37. Rebase Tip
Returns the SHA-1 of the base commit of feature branch.
Useful to interactively rebase the whole branch.
git merge-base master feature
git rebase -i `git merge-base master feature`
38. Lab
Execute a interactive rebase:
Checkout rebase-base branch.
You can get its origin commit with git merge-base master head
Do some experimentation: join commits, edit, reorder...
Be creative!
Finish the rebase operation and check the results.
39. More on rebase
Git does not allow to execute git pull on a dirty working
tree.
This way git will stash your changes, update your branch
and unstash your changes again.
Nice but, wouldn’t be possible to do all this in just one
step??
git fetch
git rebase --autostash
40.
41. Tip: autostash
Everytime you run git pull, it will perform a rebase under
the hood.
And everytime git rebase is executed, it will run with
autostash option.
Update your branch in just one step, even if you are in
a dirty working tree!
git config --global rebase.autostash true
git config --global pull.rebase true
42. Rebase - Squash & Fixup
Squash:
Join multiple commits into one.
Every commit is meaningful by itsown.
By default git will concatenate original commits’ messages.
Fixup:
Melt commit into the previous one (the same as squash).
Semantically, the commit is a fix to the previous one.
By default git will only keep the first commit’s message.
45. Rebase: Squash & Fixup
Mark for squash/fixup at commit time, any existent
commit.
Use --autosquash option with interactive rebase.
Let the magic happens
git commit --squash <commit-ref>
git commit --fixup <commit-ref>
git rebase -i --autosquash <base-commit-ref>
46. Lab
Exercise git commit --squash and --fixup options:
Checkout rebase-base
Add a new commit with --squash option, selecting as the squash target
some old commit (not the last one).
Repeat the previous operation but with --fixup option.
Execute an interactive rebase with --autosquash option.
Check git log after finish the rebase operation to check the results.
47. Rerere
Stands for Reuse Recorded Resolution.
It is kind of machine learning mechanism.
Learns from your previous decisions on conflicts resolution.
Apply them automatically reducing the number of manual
interventions.
Warning! If you do it wrong, it will learn also…
git config --global rerere.enabled 1
48. Lab
Run git config rerere.enabled 1
Checkout rerere-with-conflicts.
Run a rebase onto rerere-base.
Solve conflicts and finish the rebase.
Undo rebase: git reset --hard ORIG_HEAD
Run the rebase again and see what happens
50. Git reset to the rescue!
Versatile and powerful command for undoing changes.
Similar to checkout in some aspects.
Potentially dangerous: destructive operation.
It allows to:
Undo changes.
Unstage files.
git reset
52. Reset main modes
Soft:
Keep undone changes on the index.
Mixed:
Default mode, keep undone changes in the working tree, but
without staging them (out of the index).
Hard:
Totally removes the undone changes, they are not keep neither in
the index, nor in the working tree.
Use it with care!!
Great explanation in stackoverflow
53. Reset vs Revert
Revert is a safe operation, it takes a commit and generates
a new commit which inverses the specified commit.
Revert add a new commit to the history, but does not modify
the existent ones.
Reset rewrites the history to make the branch match the
state of an specific commit.
Reset vs Revert vs Checkout
git revert <commit-ref>
56. What really happens when rebasing?
New commits are generated at the tip of the target branch.
But the original old commits are still available in the repo.
Although they are unreachable (there is no reference pointing
to them).
57. Reflog
Reference logs, or "reflogs", record when the tips of branches
and other references were updated in the local repository.
Remember: a reference is a pointer to a commit.
Tracks refs updates up to 90 days by default.
It allows us to recover from errors by accessing to
“unreachable commits”.
Subcommands: show, expire and delete.
58. Reflog subcommands
Show:
Show the log for a reference, or all reference (--all option).
Expire:
Prunes older reflog entries, rarely used by end users.
Delete:
Removes single entries from the log, typically not used by end users
neither.
59. Reflog - show
Shows the reflog of the HEAD ref.
git reflog
git reflog show HEAD
f90e666 (HEAD -> master) HEAD@{0}: checkout: moving from branch to master
d92a3b7 (branch) HEAD@{1}: rebase -i (finish): returning to refs/heads/branch
d92a3b7 (branch) HEAD@{2}: rebase -i (start): checkout 19e164a71d87ffa0902c71e92da9f0b61bcc858f
d92a3b7 (branch) HEAD@{3}: rebase -i (finish): returning to refs/heads/branch
d92a3b7 (branch) HEAD@{4}: rebase -i (pick): BRANCH - Add e
da961c4 HEAD@{5}: rebase -i (pick): BRANCH - Add d
5eeef42 HEAD@{6}: rebase -i (fixup): BRANCH - Add c
84d25d0 HEAD@{7}: rebase -i (start): checkout 19e164a71d87ffa0902c71e92da9f0b61bcc858f
60. Reflog - show
Shows the reflogs for all references
git reflog show --all
git reflog stash
Reflog also tracks the stash references.
61. Undoing a rebase: reflog + reset
1. Look in the reflog for the commit at the tip of the branch
at the moment prior to the rebase.
2. Git reset --hard to that commit
> git reflog
1544114 (HEAD -> feature) HEAD@{0}: rebase finished: returning to refs/heads/feature
1544114 (HEAD -> feature) HEAD@{1}: rebase: Add bar
3b021d4 HEAD@{2}: rebase: Add foo
d92a3b7 (master) HEAD@{3}: rebase: checkout master
bf12c54 HEAD@{4}: commit: Add bar
e99a22b HEAD@{5}: commit: Add foo
…
> git reset --hard HEAD@{4}
HEAD before rebase
62.
63. Undoing changes: ORIG_HEAD
ORIG_HEAD is a special reference that stores the previous state
of HEAD. It is set by commands that have possibly dangerous
behaviour (rebase, merge, reset, etc), to be able to easily
revert them.
Undoing a rebase, reset, merge:
git reset --hard ORIG_HEAD
65. Bisect
Sometimes you discover that a bug has been introduced in
your code base, but you do not know when it happened.
The bisect command does a binary search through your
commit history to help you identify as quickly as possible
which commit introduced an issue.
It allows to identify the commit that introduced the issue,
through a large range of commits, in just a few steps.
66. Bisect
First, you have to indicate git to start bisecting your history.
Then you indicate that the current commit is “bad”, or provide
a reference to a previous commit you know is bad.
And you provide the commit with the last good state known.
Or just in one command:
> git bisect start
> git bisect bad [<commit-ref>]
> git bisect good v1.2.6-rc
> git bisect start HEAD v1.2.6-rc
67. Bisect
After that, git will check out the commit in the middle of
the provided range, so you can test it.
Git will figure out the number of revisions left to test
before finding the target commit.
Bisecting: 2 revisions left to test after this (roughly 1 step)
[da961c4e9813bbc92c308e4487ef527aa25f3bc7] Foo commit message
68. Bisect
After testing the commit, you should inform git whether it is
”good” or “bad” with git bisect (good|bad) commands.
Git will narrow down the range of remaining revisions, and
will repeat the same process until the commit which
introduced the breakage is found.
You can skip testing a commit with bisect skip subcommand.
d92a3b789d3e5e7fcee880b106bb6d0d9694f58b is the first bad commit
commit d92a3b789d3e5e7fcee880b106bb6d0d9694f58b
Author: Jesús Miguel Benito Calzada beni0888@hotmail.com
Date: Thu Oct 4 18:49:17 2018 +0200
Added a really cool feature!
69. Bisect
You should finish the process with bisect reset command,
to cleanup the bisection state and return to the original
HEAD.
> git bisect reset
Previous HEAD position was d92a3b7... Foo commit message
Switched to branch 'feature'
70. Lab
Checkout bisect branch
File.txt contains several lines with the text “EDD rocks!”, each
one added by a different commit, but one line contains a typo:
“EED” instead of ”EDD”.
Make use of bisect to identify the commit which introduced the
line with a typo.
Tip: use the commad grep EED file.txt to check if the commit
is wrong.
71. Bisect: let’s automate!
This is a really manual error-prone process, right?
Bisect provides a run subcommand that allows us to run a
script to determine whether the commit is good or bad.
The script must exit with 0 if the commit is good, or
whatever code between 1 and 127 (except 125, used to
skip) for a bad commit.
You can for example run your test suite to check your
commits.
> git bisect start HEAD v2.1.0-rc
> git bisect run vendor/bin/phpunit
> git bisect reset
72. Lab
Checkout bisect-run branch.
Prerequisites:
You need to have PHP (version >= 5) installed on your computer.
You need to have composer installed globally, or download its phar from
https://getcomposer.org/download/.
Run composer install (or ./comporser.phar install).
The current branch’s test suite has a failing test, and you have to
find the commit that introduce it.
Make use of bisect run to find the commit which introduced the
error:
Tip: use vendor/bin/phpunit as script for bisect run.
73. Bisect: alternative terms
Bisect can be used for more things than just finding the
commit which introduced a bug.
It provides alternatives terms to good/bad in order to
avoid confusion:
old/new: are equivalent to good/bad, once you start using them,
you cannot mix them up.
Custom terms: you can use your own custom terms just by
providing them with --term-{old,good}=<term> and --term-
{new,bad}=<term>
74.
75. Oh-my-zsh git plugin
Oh-my-zsh comes with a really handy git plugin that saves
us to write a lot: https://github.com/robbyrussell/oh-my-
zsh/wiki/Plugin:git
g=git
ga='git add’
gaa='git add --all’
gap='git apply’
gapa='git add --patch’
gau='git add --update’
gb='git branch’
gba='git branch -a’
gbd='git branch -d’
gbda='git branch --no-color --merged | command grep -vE
"^(*|s*(master|develop|dev)s*$)" | command xargs -n 1 git branch -d’
gbl='git blame -b -w’
…
Here we create a second commit and show that HEAD is now pointing to that commit. Then we checkout the previously created “first” tag, and show that now HEAD is in a detached state pointing to the commit referenced by “first” tag.
Double dot: all commits reachable from <ref-B> that are not rechable from <ref-A> (eg. Commits in a branch but not in master)
Multiple points: you want to specify more than two branches to indicate your revision, such as seeing what commits are in any of several branches that aren’t in the branch you’re currently on.
You can ask the students to:
Squash all “add method” commits
Remove “intentionally add a failing commit”
Reorder commits: move “add instructions to readme” to the tip of the branch
Squash and fixup while on interactive rebase
The main difference between reset and checkout is that checkout only operates on the HEAD ref, it doesn’t change the branch’s tip, while reset operates on both HEAD and branch references.