This document is a cheat sheet for the Git commands covered in Mosh Hamedani's Ultimate Git Mastery course. It includes sections on creating snapshots, browsing history, branching and merging, collaboration using Git and GitHub, and rewriting history. The cheat sheet provides descriptions and examples for essential Git commands.
Presentation done at Kamailio World 2013, Berlin, Germany - several options for scalability of SIP routing with Kamailio, from configuration file tricks to stateless and stateful load balancing with dispatcher module.
Presentation done at Kamailio World 2013, Berlin, Germany - several options for scalability of SIP routing with Kamailio, from configuration file tricks to stateless and stateful load balancing with dispatcher module.
Comment débuter en devops et apprendre à réaliser son premier pipeline. Très facilement et en toute simplicité.
Une formation gratuite pour s'initier au devops.
https://youtu.be/tiSfXCM8VTw
https://gitlab.com/xavki/pipeline-saison-1
The Servlet 3.1 Async I/O API was released into the wild more than a year ago and is a significantly different animal than the JVM's async NIO or NIO2.
The implementers of Jetty are your experienced guides in discovering the design of these new APIs, their performance and scalability features, and the common pitfalls in their usage.
Java Annotation is quite a handy tool and has the ample potential to make developer's life a lot easier(and exciting!). Learning and using custom Java Annotation Processor takes the power of Annotation even a class higher. This slide goes over a few fundamental things of an Annotation Processor to get someone started to write his/her own Annotation Processor in Java.
Key topics are,
- Java Annotation
- Usage of Annotation
- Custom Java Annotation
- Java Annotation Processor
- Usefulness of Annotation Processor
- Dive into the core of Annotation Processor
- Solve a validation problem with Custom Annotation Processor
- Get to know some exciting Annotation Processing tools that already exist
In this PowerPoint, learn how a security policy can be your first line of defense. Servers running AIX and other operating systems are frequent targets of cyberattacks, according to the Data Breach Investigations Report. From DoS attacks to malware, attackers have a variety of strategies at their disposal. Having a security policy in place makes it easier to ensure you have appropriate controls in place to protect mission-critical data.
Welcome to JanusCon! -- Past, Present and Future of JanusLorenzo Miniero
The slides for my "Welcome" presentation at JanusCon '19, with an overview on the history of Janus (how it changed in this first five years) and on some possible future directions for the project. Unfortunately, my talk was not recorded, so some slides may look a bit "cryptic" without some vocal context.
게임을 위한 최적의 AWS DB 서비스 소개 Dynamo DB, Aurora - 이종립 / Principle Enterprise Evang...BESPIN GLOBAL
지난 11월 Bespin Gaming Day 행사의 발표 자료를 통해 게임을 위한 최적의 AWS DB 서비스를 소개하겠습니다.
게임에 관련된 데이터에 대한 고민은 무척 다양합니다. 큰 범주로 나누어 보면 다음과 같습니다.
- DR은 어떻게 구축하지?
- 데이터 분석은 어떻게 해야하지?
- 고성능, 고가용성의 AWS DBMS 선택
- AI/ML은 어떻게 적용하지?
이런 게임 아키텍처의 현실과 고민을 해결하기 위한 관계형 DB Amazon Aurora와 No SQL DB Amazon Dynamo DB를 소개하고 데모에 대해 자세히 살펴보겠습니다.
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.
Comment débuter en devops et apprendre à réaliser son premier pipeline. Très facilement et en toute simplicité.
Une formation gratuite pour s'initier au devops.
https://youtu.be/tiSfXCM8VTw
https://gitlab.com/xavki/pipeline-saison-1
The Servlet 3.1 Async I/O API was released into the wild more than a year ago and is a significantly different animal than the JVM's async NIO or NIO2.
The implementers of Jetty are your experienced guides in discovering the design of these new APIs, their performance and scalability features, and the common pitfalls in their usage.
Java Annotation is quite a handy tool and has the ample potential to make developer's life a lot easier(and exciting!). Learning and using custom Java Annotation Processor takes the power of Annotation even a class higher. This slide goes over a few fundamental things of an Annotation Processor to get someone started to write his/her own Annotation Processor in Java.
Key topics are,
- Java Annotation
- Usage of Annotation
- Custom Java Annotation
- Java Annotation Processor
- Usefulness of Annotation Processor
- Dive into the core of Annotation Processor
- Solve a validation problem with Custom Annotation Processor
- Get to know some exciting Annotation Processing tools that already exist
In this PowerPoint, learn how a security policy can be your first line of defense. Servers running AIX and other operating systems are frequent targets of cyberattacks, according to the Data Breach Investigations Report. From DoS attacks to malware, attackers have a variety of strategies at their disposal. Having a security policy in place makes it easier to ensure you have appropriate controls in place to protect mission-critical data.
Welcome to JanusCon! -- Past, Present and Future of JanusLorenzo Miniero
The slides for my "Welcome" presentation at JanusCon '19, with an overview on the history of Janus (how it changed in this first five years) and on some possible future directions for the project. Unfortunately, my talk was not recorded, so some slides may look a bit "cryptic" without some vocal context.
게임을 위한 최적의 AWS DB 서비스 소개 Dynamo DB, Aurora - 이종립 / Principle Enterprise Evang...BESPIN GLOBAL
지난 11월 Bespin Gaming Day 행사의 발표 자료를 통해 게임을 위한 최적의 AWS DB 서비스를 소개하겠습니다.
게임에 관련된 데이터에 대한 고민은 무척 다양합니다. 큰 범주로 나누어 보면 다음과 같습니다.
- DR은 어떻게 구축하지?
- 데이터 분석은 어떻게 해야하지?
- 고성능, 고가용성의 AWS DBMS 선택
- AI/ML은 어떻게 적용하지?
이런 게임 아키텍처의 현실과 고민을 해결하기 위한 관계형 DB Amazon Aurora와 No SQL DB Amazon Dynamo DB를 소개하고 데모에 대해 자세히 살펴보겠습니다.
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.
Git is an important part of daily programming (especially if you're working with a team) and is widely used in the software industry. Since there are many various commands you can use, mastering Git takes time. But some commands are used more frequently (some daily). So in this post, I will share and explain the most used Git commands that every developer should know. Note: To understand this PDF, you need to know the basics and advances of Git. https://www.9series.com/
گیت یک نرمافزار آزاد برای کنترل ورژن، بازنگری و مدیریت سورس کد است که امروزه به طور وسیعی توسط بسیاری از شرکتها و پروژههای آزاد/متنباز مورد استفاده قرار میگیرد.
اهمیت سیستمهای کنترل ورژن و مخصوصا گیت وقتی معلوم میشود که بیش از یک نفر در یک پروژه نرمافزاری مشارکت میکنند. اگرچه امکاناتی که گیت در اختیار برنامهنویسان قرار میدهد مورد نیاز شرکتهایی که در حوزهٔ تولید نرمافزارهای تجاری فعالیت میکنند است، گیت نقش مهمی در فراهم کردن امکان توسعهٔ نرمافزار آزاد از سراسر دنیا و توسط جامعه کاربری ایفا میکند طوریکه یادگیری گیت میتواند یک برنامهنویس را به یک عضو موثر در جامعهٔ نرمافزار آزاد تبدیل کند.
این کارگاه شامل معرفی سیستمهای کنترل ورژن و مقدمات آنها، گیت و دلایل استفاده از آن، نحوهٔ کار با branchها، workflowهای رایج در گیت، انواع روشهای merge کردن branchها، rebase و نحوهٔ ارسال pull request و نحوهٔ پیدا کردن و مشارکت در پروژههای شناختهشدهٔ آزاد/متنباز و دلایل اینکار است.
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
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
2. This cheat sheet covers all of the Git commands I’ve covered in my Ultimate Git
Mastery course.
✓ Creating snapshots
✓ Browsing history
✓ Branching & merging
✓ Collaboration using Git & GitHub
✓ Rewriting history
3. Check out the links below to master the coding skills you need:
https://codewithmosh.com
https://youtube.com/user/programmingwithmosh
https://twitter.com/moshhamedani
https://facebook.com/programmingwithmosh/
Hi! My name is Mosh Hamedani. I’m a software engineer with
two decades of experience. I’ve taught millions of people how
to code or how to become a professional software engineer
through my YouTube channel and online coding school. It’s my
mission to make software engineering simple and accessible
to everyone.
4. Want to master Git?
Stop wasting your time memorizing Git commands or browsing disconnected
tutorials. If you don’t know how Git works, you won’t get far.
My Ultimate Git Mastery course teaches you everything you need to know to use
Git like a pro.
✓ Learn & understand Git inside out
✓ Master the command line
✓ Version your code and confidently recover from mistakes
✓ Collaborate effectively with others using Git and GitHub
✓ Boost your career opportunities
Click below to enroll today:
https://codewithmosh.com/p/the-ultimate-git-course/
5. Table of Content
Creating Snapshots 6
Browsing History 8
Branching & Merging 10
Collaboration 12
Rewriting History 13
6. Creating Snapshots
Initializing a repository
git init
Staging files
git add file1.js # Stages a single file
git add file1.js file2.js # Stages multiple files
git add *.js # Stages with a pattern
git add . # Stages the current directory and all its content
Viewing the status
git status # Full status
git status -s # Short status
Committing the staged files
git commit -m “Message” # Commits with a one-line message
git commit # Opens the default editor to type a long message
Skipping the staging area
git commit -am “Message”
Removing files
git rm file1.js # Removes from working directory and staging area
git rm --cached file1.js # Removes from staging area only
Renaming or moving files
git mv file1.js file1.txt
7. Viewing the staged/unstaged changes
git diff # Shows unstaged changes
git diff --staged # Shows staged changes
git diff --cached # Same as the above
Viewing the history
git log # Full history
git log --oneline # Summary
git log --reverse # Lists the commits from the oldest to the newest
Viewing a commit
git show 921a2ff # Shows the given commit
git show HEAD # Shows the last commit
git show HEAD~2 # Two steps before the last commit
git show HEAD:file.js # Shows the version of file.js stored in the last commit
Unstaging files (undoing git add)
git restore --staged file.js # Copies the last version of file.js from repo to index
Discarding local changes
git restore file.js # Copies file.js from index to working directory
git restore file1.js file2.js # Restores multiple files in working directory
git restore . # Discards all local changes (except untracked files)
git clean -fd # Removes all untracked files
Restoring an earlier version of a file
git restore --source=HEAD~2 file.js
8. Browsing History
Viewing the history
git log --stat # Shows the list of modified files
git log --patch # Shows the actual changes (patches)
Filtering the history
git log -3 # Shows the last 3 entries
git log --author=“Mosh”
git log --before=“2020-08-17”
git log --after=“one week ago”
git log --grep=“GUI” # Commits with “GUI” in their message
git log -S“GUI” # Commits with “GUI” in their patches
git log hash1..hash2 # Range of commits
git log file.txt # Commits that touched file.txt
Formatting the log output
git log --pretty=format:”%an committed %H”
Creating an alias
git config --global alias.lg “log --oneline"
Viewing a commit
git show HEAD~2
git show HEAD~2:file1.txt # Shows the version of file stored in this commit
Comparing commits
git diff HEAD~2 HEAD # Shows the changes between two commits
git diff HEAD~2 HEAD file.txt # Changes to file.txt only
9. Checking out a commit
git checkout dad47ed # Checks out the given commit
git checkout master # Checks out the master branch
Finding a bad commit
git bisect start
git bisect bad # Marks the current commit as a bad commit
git bisect good ca49180 # Marks the given commit as a good commit
git bisect reset # Terminates the bisect session
Finding contributors
git shortlog
Viewing the history of a file
git log file.txt # Shows the commits that touched file.txt
git log --stat file.txt # Shows statistics (the number of changes) for file.txt
git log --patch file.txt # Shows the patches (changes) applied to file.txt
Finding the author of lines
git blame file.txt # Shows the author of each line in file.txt
Tagging
git tag v1.0 # Tags the last commit as v1.0
git tag v1.0 5e7a828 # Tags an earlier commit
git tag # Lists all the tags
git tag -d v1.0 # Deletes the given tag
10. Branching & Merging
Managing branches
git branch bugfix # Creates a new branch called bugfix
git checkout bugfix # Switches to the bugfix branch
git switch bugfix # Same as the above
git switch -C bugfix # Creates and switches
git branch -d bugfix # Deletes the bugfix branch
Comparing branches
git log master..bugfix # Lists the commits in the bugfix branch not in master
git diff master..bugfix # Shows the summary of changes
Stashing
git stash push -m “New tax rules” # Creates a new stash
git stash list # Lists all the stashes
git stash show stash@{1} # Shows the given stash
git stash show 1 # shortcut for stash@{1}
git stash apply 1 # Applies the given stash to the working dir
git stash drop 1 # Deletes the given stash
git stash clear # Deletes all the stashes
Merging
git merge bugfix # Merges the bugfix branch into the current branch
git merge --no-ff bugfix # Creates a merge commit even if FF is possible
git merge --squash bugfix # Performs a squash merge
git merge --abort # Aborts the merge
11. Viewing the merged branches
git branch --merged # Shows the merged branches
git branch --no-merged # Shows the unmerged branches
Rebasing
git rebase master # Changes the base of the current branch
Cherry picking
git cherry-pick dad47ed # Applies the given commit on the current branch
12. Collaboration
Cloning a repository
git clone url
Syncing with remotes
git fetch origin master # Fetches master from origin
git fetch origin # Fetches all objects from origin
git fetch # Shortcut for “git fetch origin”
git pull # Fetch + merge
git push origin master # Pushes master to origin
git push # Shortcut for “git push origin master”
Sharing tags
git push origin v1.0 # Pushes tag v1.0 to origin
git push origin —delete v1.0
Sharing branches
git branch -r # Shows remote tracking branches
git branch -vv # Shows local & remote tracking branches
git push -u origin bugfix # Pushes bugfix to origin
git push -d origin bugfix # Removes bugfix from origin
Managing remotes
git remote # Shows remote repos
git remote add upstream url # Adds a new remote called upstream
git remote rm upstream # Remotes upstream
13. Rewriting History
Undoing commits
git reset --soft HEAD^ # Removes the last commit, keeps changed staged
git reset --mixed HEAD^ # Unstages the changes as well
git reset --hard HEAD^ # Discards local changes
Reverting commits
git revert 72856ea # Reverts the given commit
git revert HEAD~3.. # Reverts the last three commits
git revert --no-commit HEAD~3..
Recovering lost commits
git reflog # Shows the history of HEAD
git reflog show bugfix # Shows the history of bugfix pointer
Amending the last commit
git commit --amend
Interactive rebasing
git rebase -i HEAD~5