Git Workshop
Daniel Laufer on September 15, 2021
Get an overview of Git and GitHub including what they are, their purpose, how they work, how they interact with each other, and much more.
You will learn about essential Git commands and concepts and go through several short demos using them.
Additionally, you will learn how to collaborate with others on a project using Git and GitHub, and learn how to contribute to open-source projects.
All of this combined will allow students to learn an essential skill that will follow them through their career in tech!
**Watch the full webinar at https://codefresh.io/events/terraform-gitops-codefresh/
Today we write "Infrastructure as Code" and even "Pipelines as Code", so let's start treating our "code as code" and practice CI/CD with GitOps! In this talk, we'll show you how we build and deploy applications with Terraform using GitOps and Codefresh. Cloud Posse is a Terraform power user that has developed over 130 Terraform modules which are free and open source. We'll share how we handle automation with security while making the process easy for engineers.
GitOps è un nuovo metodo di CD che utilizza Git come unica fonte di verità per le applicazioni e per l'infrastruttura (declarative infrastructure/infrastructure as code), fornendo sia il controllo delle revisioni che il controllo delle modifiche. In questo talk vedremo come implementare workflow di CI/CD Gitops basati su Kubernetes, dalla teoria alla pratica passando in rassegna i principali strumenti oggi a disposizione come ArgoCD, Flux (aka Gitops engine) e JenkinsX
The Power of GitOps with Flux & GitOps ToolkitWeaveworks
GitOps Days Community Special
Watch the video here: https://youtu.be/0v5bjysXTL8
New to GitOps or been a long-time Flux user?
We'll walk you through the benefits of GitOps and then demo it in action with a sneak peak into the next gen Flux and GitOps Toolkit!
* Automation!
* Visibility!
* Reconciliation!
* Powerful use of Prometheus and Grafana!
* GitOps for Helm!
For Flux users, Flux v1 is decoupled into Flux v2 and GitOps Toolkit. We'll demo how this decoupling gives you more control over how you can do GitOps and with fewer steps!
Join Leigh Capili and Tamao Nakahara as they show you GitOps in action with Flux and GitOps Toolkit.
Note to our Flux community that Flux v2 and the GitOps Toolkit is in development and Flux v1 is in maintenance mode. These talks and upcoming guides will give you the most up-to-date info and steps to migrate once we reach feature parity and start the migration process. We are dedicated to the smoothest experience possible for our Flux community, so please join us if you'd like early access and to give us feedback for the migration process.
We are really excited by the improvements and want to take this opportunity to show you what the GitOps Toolkit is all about, walk you through the guides and get your feedback!
For more info, see https://toolkit.fluxcd.io/.
Here's our latest blog post on Flux v2 and GitOps Toolkit updates: https://www.weave.works/blog/the-road-to-flux-v2-october-update
Github Actions enables you to create custom software development lifecycle workflows directly in your Github repository. These workflows are made out of different tasks so-called actions that can be run automatically on certain events.
**Watch the full webinar at https://codefresh.io/events/terraform-gitops-codefresh/
Today we write "Infrastructure as Code" and even "Pipelines as Code", so let's start treating our "code as code" and practice CI/CD with GitOps! In this talk, we'll show you how we build and deploy applications with Terraform using GitOps and Codefresh. Cloud Posse is a Terraform power user that has developed over 130 Terraform modules which are free and open source. We'll share how we handle automation with security while making the process easy for engineers.
GitOps è un nuovo metodo di CD che utilizza Git come unica fonte di verità per le applicazioni e per l'infrastruttura (declarative infrastructure/infrastructure as code), fornendo sia il controllo delle revisioni che il controllo delle modifiche. In questo talk vedremo come implementare workflow di CI/CD Gitops basati su Kubernetes, dalla teoria alla pratica passando in rassegna i principali strumenti oggi a disposizione come ArgoCD, Flux (aka Gitops engine) e JenkinsX
The Power of GitOps with Flux & GitOps ToolkitWeaveworks
GitOps Days Community Special
Watch the video here: https://youtu.be/0v5bjysXTL8
New to GitOps or been a long-time Flux user?
We'll walk you through the benefits of GitOps and then demo it in action with a sneak peak into the next gen Flux and GitOps Toolkit!
* Automation!
* Visibility!
* Reconciliation!
* Powerful use of Prometheus and Grafana!
* GitOps for Helm!
For Flux users, Flux v1 is decoupled into Flux v2 and GitOps Toolkit. We'll demo how this decoupling gives you more control over how you can do GitOps and with fewer steps!
Join Leigh Capili and Tamao Nakahara as they show you GitOps in action with Flux and GitOps Toolkit.
Note to our Flux community that Flux v2 and the GitOps Toolkit is in development and Flux v1 is in maintenance mode. These talks and upcoming guides will give you the most up-to-date info and steps to migrate once we reach feature parity and start the migration process. We are dedicated to the smoothest experience possible for our Flux community, so please join us if you'd like early access and to give us feedback for the migration process.
We are really excited by the improvements and want to take this opportunity to show you what the GitOps Toolkit is all about, walk you through the guides and get your feedback!
For more info, see https://toolkit.fluxcd.io/.
Here's our latest blog post on Flux v2 and GitOps Toolkit updates: https://www.weave.works/blog/the-road-to-flux-v2-october-update
Github Actions enables you to create custom software development lifecycle workflows directly in your Github repository. These workflows are made out of different tasks so-called actions that can be run automatically on certain events.
Github - Git Training Slides: FoundationsLee Hanxue
Slide deck with detailed step breakdown that explains how git works, together with simple examples that you can try out yourself. Slides originated from http://teach.github.com/articles/course-slides/
Author: https://twitter.com/matthewmccull
Managing JavaScript projects in a MonoRepo
(Zacky Pickholz)
Managing a large front end project with multiple npm packages can be overwhelming sometimes. During this session we cover popular tools that help us maintain this project much more easily.
Introduction to Gitlab | Gitlab 101 | Training SessionAnwarul Islam
I actually described in this slide how to use Gitlab with git. I explained what is git, push, pull, clone, commit etc. so, you can use this slide to learn or tech someone.
Introduction to Git & GitHub.
Agenda:
- What’s a Version Control System?
- What the heck is Git?
- Some Git commands
- What’s about GitHub?
- Git in Action!
At the end of this session, you will be able to:
* Install git
* Create a local git repository
* Add a file to the repo
* Add a file to staging
* Create a commit
* Create a new branch
* Create a GitHub repo
* Push a branch to GitHub
GitHub is a Git repository hosting service, but it adds many of its own features. While Git is a command line tool, GitHub provides a Web-based graphical interface. It also provides access control and several collaboration features, such as a wikis and basic task management tools for every project.
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDSunnyvale
A brief dissertation about using GitOps paradigm to operate an application on multiple Kubernetes environments thanks to GitHub, ArgoCD and Kustomize. A talk about this matters has been taken at the event #CloudConf2020
Simple introduction for development teams familiar with Subversion.
Internal presentation licensed as CC-BY-NC-SA. Attribute to this URL or http://fittl.com/ if you re-publish, do *NOT* use commercially.
Github - Git Training Slides: FoundationsLee Hanxue
Slide deck with detailed step breakdown that explains how git works, together with simple examples that you can try out yourself. Slides originated from http://teach.github.com/articles/course-slides/
Author: https://twitter.com/matthewmccull
Managing JavaScript projects in a MonoRepo
(Zacky Pickholz)
Managing a large front end project with multiple npm packages can be overwhelming sometimes. During this session we cover popular tools that help us maintain this project much more easily.
Introduction to Gitlab | Gitlab 101 | Training SessionAnwarul Islam
I actually described in this slide how to use Gitlab with git. I explained what is git, push, pull, clone, commit etc. so, you can use this slide to learn or tech someone.
Introduction to Git & GitHub.
Agenda:
- What’s a Version Control System?
- What the heck is Git?
- Some Git commands
- What’s about GitHub?
- Git in Action!
At the end of this session, you will be able to:
* Install git
* Create a local git repository
* Add a file to the repo
* Add a file to staging
* Create a commit
* Create a new branch
* Create a GitHub repo
* Push a branch to GitHub
GitHub is a Git repository hosting service, but it adds many of its own features. While Git is a command line tool, GitHub provides a Web-based graphical interface. It also provides access control and several collaboration features, such as a wikis and basic task management tools for every project.
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDSunnyvale
A brief dissertation about using GitOps paradigm to operate an application on multiple Kubernetes environments thanks to GitHub, ArgoCD and Kustomize. A talk about this matters has been taken at the event #CloudConf2020
Simple introduction for development teams familiar with Subversion.
Internal presentation licensed as CC-BY-NC-SA. Attribute to this URL or http://fittl.com/ if you re-publish, do *NOT* use commercially.
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/
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
CSSC × GDSC: Intro to Machine Learning!
Aaron Shah and Manav Bhojak on October 5, 2023
🤖 Join us for an exciting ML Workshop! 🚀 Dive into the world of Machine Learning, where we'll unravel the mysteries of CNNs, RNNs, Transformers, and more. 🤯
Get ready to embark on a journey of discovery! We'll begin with an easy-to-follow introduction to the fascinating realm of ML. 📚
🛠️ In our hands-on session, we'll walk you through setting up your environment. No tech hurdles here! 🌐
🔍 Then, we'll get down to the nitty-gritty, guiding you through our starter code for a thrilling hands-on example. Together, we'll explore the power of ML in action! 💡
Jackson Lee, Joshua Tan, Jasmine Battu on September 29, 2023
✨Unlock Your Creative Potential with Figma! Get ready to dive into the world of UI/UX design with our exciting workshop in collaboration with the ICCIT Council.
Whether you're a complete beginner or already have some design experience, this event is tailored just for you!
This event will cover creating accessible user interfaces design using Figma, and basic user experience principles that are usually taught in upper-year CCIT courses.
No prior experience is required; our goal is to provide a welcoming environment for everyone to learn and grow. Don't miss out on this unique opportunity to enhance your UI/UX skills and connect with like-minded peers. Mark your calendar, invite your friends, and see you there! 👋
Fall 2023 Community Projects Info Session
Giang Bui, Chris Lim, Ido Ben Haim, and Shubh Bapna on August 15, 2023
Backend hurting your back end? Learn about community projects in our info session! 🔗 The session will be hosted on Discord, click the link in bio to join! Can't make it? 😔 Ask away asynchronously on our Discord server or in the comments! 📅 Date → August 4th 🕓 Time → 4 PM EST Topics covered: 🔸 What are Community Projects? 🔸 Mentor vs. Mentee streams 🔸 What happens after I'm accepted? 🔸 Group formation 🔸 Past project examples 🔸 Q&A time be there 🔫
Origami Workshop
Estelle Foo-Fat and Leanne Tran on April 28, 2023
Origami is a proven tool to help reduce stress and anxiety levels, by engaging the mind in a calming and meditative activity. Folding intricate paper designs can also help improve focus and concentration, allowing you to feel more present and mindful in the moment.
Reverse Engineering 101
Michael Pavle on April 28, 2023
Learn the fundamental tools and skills to take a look under the hood of your favourite programs; we'll be covering compilers, assembly language, and software used to disassemble and analyze executables.
https://github.com/utmgdsc/GDSC_Reversing_Workshop
https://youtu.be/8GUwXpUDWhs
Web security workshop 2023-03-24
Michael Pavle on February 21, 2023
Learn more about cybersecurity by exploiting web vulnerabilities and picking apart the OWASP Juice Shop sandbox with GDSC UTM and MCSS. If you'd like to expand your skillset, learn something new, and enjoy some pizza, join us this Friday!
Please install Burp Suite Community Edition before attending!
Learn about the cybersecurity industry, jobs, certifications, and take part in a practical hands-on demonstration with GDSC UTM and MCSS. If you'd like to expand your skillset, learn something new, or are simply interested in the field, join us in-person or online on March 10 @ 5pm.
In this workshop, we will be covering a broad overview of cybersecurity with a hands-on web app challenge for you to get some experience with web vulnerabilities; particularly, OS command injection. This workshop will be beginner-friendly, although if you have JavaScript experience you will better understand some of the code that we present.
https://youtu.be/rT7qVmQpfJg
https://github.com/utmgdsc/2023-c-workshop
C Workshop
Sam Chan on February 24, 2023
CSC108 level of knowledge required, CSC148 basics recommended
Friday 24th, 5pm
What you’ll learn:
* C vs. Python: what are the main diffs?
* Structs, typedefs and pointers
* Manual memory management
* What can go wrong (segfaults, UB)
* Stack and heap
* Memory management best practices (malloc, free)
https://youtu.be/mVHen_IKykk
https://gist.github.com/gdscbot/bf0d416b7651655ff49c8a922c002503
Make your own Discord Bot
Ido Ben Haim on February 23, 2023
Thursday 23rd, 5pm
What you’ll learn:
* Code your own discord bot
* Add commands and event listeners
* Buttons, dropdown selections
* Make a Discord game
* Learn about the discord.js API
https://youtu.be/zMWYC2ai91w
https://gist.github.com/daniyalb/42106c74afe20f2c442b796dba727d28
Web Scraping workshop 2023-02-22
Daniyal Bokhari on February 22, 2023
CSC108 level of knowledge required
Wed 22nd, 5pm
What you’ll learn:
How to use python requests
* Use BS4 to parse through HTML and find info
* Use python data structures to manage info
* Make a price finder?
[CSSC x GDSC] Frontend Workshop
Brian Zhang on February 2, 2023
Feeling “juicy juicy”? 😌 *** your ***** this Thursday and join our hands-on frontend workshop where we'll teach you HTML, CSS, and JavaScript!
No experience? 💯 No problem! Take your first step 🐤 towards a yummy new 🎉🎉 career 💼💅 in frontend development.
Our frontend pros will guide you through building a whole website from scratch. 🥐 Don't miss out on this opportunity to jumpstart your career in frontend web development.
So, shake that ***** ***** all the way to MN 2130 and take the first step towards becoming a pro!
DevOps Workshop Part 1
Daniel Laufer on January 19, 2022
Learn all about DevOps, and get the chance to set up automated deployment and testing of your applications using GitHub Actions and Firebase!
Backend Development with AWS & Flask
Daniel Laufer on November 24, 2021
Learn about backend development through using Flask, a Python web framework, and Amazon Web Services (AWS), the leading cloud service provider in the world!
https://youtu.be/Fg59YTotccY
Database workshop 2023-02-20
Ido Ben Haim and Daniyal Bokhari on February 20, 2023
Requirement: None
What you’ll learn:
* NoSQL database design (mongodb)
General Meeting: "Opening a pandora's box"
Deepasri Dattaraghava and Annya Satyaviana on February 10, 2023
Join us for a thought-provoking meeting where we will all delve into the question of whether ChatGPT and other language models are doing more harm than good.
The event will feature keynote speakers, panel discussions, and interactive sessions that will explore the impact of AI on society, ethics, and the future of work.
Come ready to collaborate and discuss. Attendees will have the opportunity to engage with experts in AI and the broader university community to gain a deeper understanding of the potential dangers and benefits of advanced AI technologies.
Don't miss this opportunity to be part of the important conversation around the role of AI in our world.
General Meeting: The Twitter Takeover
Hammad Iqbal on December 2, 2022
Elon Musk has recently taken ownership of Twitter, and thus, the social media platform has entered a new era...
New changes have been made to Twitter in both its features and culture, from Elon Musk's emphasis on "free speech" to the new meaning of the blue checkmark on a user's account.
What are your thoughts about this transition in leadership over Twitter? Do you think Twitter has changed for better or for worse? Share your thoughts and hear what others have to say at GDSC's November General Meeting!
This event is open to students in all years and from all programs!
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Git Init (Introduction to Git)
1. $ git init
Intro to Git and GitHub
Big thanks to Krish Chowdhary (GDSC Alumni) for allowing us to re-use some of his old slides!
2. If you haven’t already installed it… (~8 min)
Creating GitHub Account: github.com/join
Download Git for...
Windows: git-scm.com/download/win
Linux:
● sudo apt install git-all (if you use a Debian-based Linux)
● OR sudo dnf install git-all (if you use a Red Hat-based Linux)
MacOS:
● git-scm.com/download/mac
● OR type brew install git in your terminal (if you have homebrew)
3. Some icebreaker questions in the meantime
1. What year are you in?
2. What POSt are you in or planning on pursuing?
3. Have you ever used Git before?
4. What is your favourite programming language?
5. Any questions for us? 😄
6. ● Git is a version control system
● A software that you interact with through your
terminal/command line
● Allows you to keep track of changes made to
your project
● Facilitates effective collaboration for multiple
individuals working on one project
9. ● A website that is the central location on the internet
where you push (upload) and pull (download) code from
● From there people can view the project and its version
history and starting contributing to it
● Think of it as a super advanced Google Drive
● Let’s take a look at an example GitHub repository:
github.com/utmmcss/mcss-website-frontend
● Repository: the collection of all the versions of the files in a
project
●
What is GitHub?
13. Hands-on activity: forking and clon(e)ing (~5min)
Your task:
1. Visit github.com/Daniel-Laufer/GDSCUTM-git-workshop
2. Click the “Fork” button
○ This will create a copy of this repository where your GitHub account is the owner
3. Then in your terminal (on your local computer) type: git clone <your forked repository url>.git
○ This will essentially download your repository from GitHub to your computer
4. Type: ls (first letter is a lowercase ‘L’). This command lists out everything in your current directory
○ You will see a new directory listed (aka a folder)
5. Type: cd <the name of this new directory> to “move” into that directory
Don’t forget the .git suffix
Remove the “<>” before using
29. Hands-on activity: adding & committing (~5 min)
Instructions (ensure you are in the directory we downloaded last time)
1. Type git status
○ Git should tell you that everything is up to date
2. On your computer, make a change to any of the files and save that file
3. Now again type git status
○ You should see that git saw the change you just made
4. Type git add <your filename>
○ This will “stage” or in other words “prepare” your file for commiting
5. Type git commit -m “<whatever message you want goes here :)>”
○ This will tell git to “save” your file modifications in its version history
6. Type git log to see a list of your recent commits
7. (Optional) type git push to “push”, or in other words upload, your changes to your github
30. Hands On!
10 minutes
$ cd into the repository
$ Open index.html and
make some changes
$ git status
$ git add index.html
$ git commit -m “msg”
$ git log
32. Git branches
● Think of Git’s version history as a tree (the weird CS type of tree)
● Git branches are basically “independent lines/sections of
development”
c2
c1
c5
c3 c4
Branch #1
Branch #2
33. Why use Branches?
Example: a different branch used for different versions
of a codebase
c2
c1
c5
c3 c4
“main” branch
“dev” branch
34. Another example
Using a separate branch to develop a new feature.
c2
c1
c5
c3 c4
“main” branch
“create_cat_pic_api” branch
35. How are branches used? Continued
Example: a different branch used for different versions
of a codebase
c2
c1
c5
c3 c4
“Production” branch
“Development” branch
41. Merging
● To “merge” your current branch with
another you use the command git
merge <other branch name>
● Git will intelligently combine all changes
from that one branch with another
● foreshadowing: Git might have some
trouble doing this sometimes :(
44. Hands-on activity: Branching and Merging
Instructions (ensure you are in the directory we used last time)
1. Type git branch
○ This will tell you what branch you are currently using
2. Type git branch <some name> to create a new branch
3. Type git switch <some name> to switch to this new name (redo step 1 to confirm this!)
○ Note: git checkout <some name> does the same thing but is the old way of doing it
4. Make some change to any file and git add <file name> and git commit <file name> that file
○ Note that these changes are only being committed to branch <some name>
5. Type git switch main
6. Type git merge <some name> (remember that main is the name of the other branch)
45. Hands On!
10 minutes
$ git branch demo
$ git checkout demo
$ change lines 10-24, add,
commit, log
$ git checkout master
$ make different changes on
lines 10-24, add, and
commit, log - notice how
our last commit isn’t there?
$ git merge demo
$ uh-oh
46. Merge conflict when Merging goes wrong
main
new branch
Lines
10-24
Lines
10-24
49. main
branch2
...
Some arbitrary
number of prior
commits
Modify LINE 9 of
file_actions.py,
save, add, commit
git branch -c
branch2
Make an edit to
main.py, save,
add, commit
50. main
branch2
...
Some arbitrary
number of prior
commits
git branch -c
branch2
Make an edit to
main.py, save,
add, commit
Modify LINE 9 of
file_actions.py,
save, add, commit
Modify LINE 9 of
file_actions.py,
save, add, commit
51. main
branch2
...
Some arbitrary
number of prior
commits
git branch -c
branch2
“updated
main.py”
git merge branch3
Modify LINE 9 of
file_actions.py,
save, add, commit
Modify LINE 9 of
file_actions.py,
save, add, commit
52. main
branch2
...
Some arbitrary
number of prior
commits
git branch -c
branch2
“updated
main.py”
git merge branch3
Modify LINE 9 of
file_actions.py,
save, add, commit
Modify LINE 9 of
file_actions.py,
save, add, commit
Successfully merged after
resolving all conflicts
53. main
branch2
...
Some arbitrary
number of prior
commits
“modified LINE 9
of file_actions.py”
git branch -c
branch2
“updated
main.py”
“modified LINE 9
of file_actions.py”
“resolved all conflicts
and merged”
54. Merge Conflict
5 minutes
$ open up the index.html file
and scroll to line 10
$ You should see some text
generated by git
$ Fix the conflict.
$ git add index.html
$ git commit -m “merged”
61. What we talked
about today
1. Cloning/Forking
2. Staging & Committing
3. Branches
4. Merging
5. Pushing & Pulling
62. Other useful Git commands, concepts, and tools
● Rebasing:
https://www.youtube.com/watch?v=7Mh259hfxJg
● Making pull requests:
https://www.youtube.com/watch?v=8lGpZkjnkt4
● Git kraken: a GUI for Git
○ https://www.gitkraken.com/
64. Before you go...
● Would you like to join the GDSC team? We are hiring! Please apply here (deadline
Friday Sept 24th at midnight)
○ https://docs.google.com/forms/d/e/1FAIpQLSfsTcH9VLxIDb4r3Alv0wWT2s60lK
W-fAifeafe5E77BKJCQg/viewform
● What workshops would you like to see in the future? Please let us know here!
○ https://docs.google.com/forms/d/e/1FAIpQLScYpTz67WMiHqXYgH5uPobtSxry
oww7yCchmF9goagGFZxEzg/viewform
65. The “Intro to web development, HTML/CSS, and Javascript workshop!”
● October 2nd at 4 pm
● Milind will be leading that workshop!
We hope to see you next time at….