►
From YouTube: Git it right! [Workshop] - Git Merge 2022
Description
Presented by Bryant Jimin Son
In this workshop, participants will learn the basics of common Git commands used in various situations. This includes commands which help you examine repo history and state while also learning to manipulate repo history.
About Git Merge:
Git Merge is dedicated to amplifying new voices in the Git community and showcasing the most thought-provoking projects from developers, maintainers, and teams around the world. Git Merge 2022 took place at Morgan Manufacturing in Chicago, IL on September 14th and 15th.
A
A
You
get
a
good
good
lunch
and
everything
and
then
get
drink.
Okay,
awesome
awesome!
So
my
name
is
Brian
Brian's
son
or
Brian
jiminson,
because
I'm
korean-american
I'm
a
searching
architect
working
perkirov
and
belong
to
expert
service
team
together
with
other
some
people
here.
So
so
this
session
is
called,
get
it
right,
get
it
right,
get
it
right,
get
it
right,
get
it
right!
A
You
get
it
right,
so
this
session,
I
guess
you
will
have
another
session
after
this
from
Andy
and
but
you
previously
so
so
that
on-prem
Preston's
session,
hey,
there's
Andy,
say
hi
to
him.
A
A
There's
not
much
Network
required
because
there's
not
I'm
not
going
to
use
a
presentation
slide
to
try
these
things,
you're
going
to
get
the
website
and
you're
going
to
follow
the
instruction,
but
pretty
much
after
that,
you
can
get
everything
through
the
terminal,
so
they're
going
to
leave
really
like
a
low
requirement
for
Lucas
prerequisite,
but
usually
it's
really
easy
to
follow
along
so
yeah.
So
main
thing
for
today
is
that
so
first
thing
is
before
you
get
started
and
make
sure
that
you're
connected
to
the
Wi-Fi.
A
So
if
you
didn't
connect
to
Wi-Fi
I
know
it's
like
a
git
merge
with
his
Wi-Fi
name
and
password
is
a
git,
merge,
2022
or
lowercase
so
make
sure
you're
connected
first
and
then
go
to
URL.
You
can
visit
either
one
and
but
I
think
this.
This
will
be
the
shortcut
that
will
take
you
directly
to
the
website
and
then
yeah.
So
I
will
give
a
few
minutes.
Maybe
I'll
play
some
music
I,
don't
know
how
much
time
I
need
to
give
you
about.
B
A
A
Okay,
all
good
so
now,
I
guess
just
want
to
kind
of
get
a
feel
for
just
let
us
set
where
we
are
I
just
want
to
get
a
little
idea
where
everyone
stands.
Please
raise
your
hand
if
you
complete
new
ticket
like
I,
don't
know
where
to
start.
Oh
friend
come
on
I
know
you
are
like
almost
you're
like
expert
okay.
A
What
about
you?
I
can
find
a
little
beginner
up
to
get
like
you
know
like
how
to
do
stuff,
create
a
range
and
then
check
out
and
all
those
things,
but
just
maybe
not
completing
you
to
all
the
advanced
stuff,
okay,
okay,
so
about
half
of
it.
What
about
you?
Consider
yourself
if
I'm
expert
I
know
everything
about
kids
like
I'm,
a
Creator
we
get
or
there
has
to
be
a
little
story,
but
today's
running
for
a
thing:
you're
like
an
expert
anyone,
oh
there,
you
go
also
I
know
you
are
yeah.
A
So
when
you
go
to
this
page,
hopefully
this
is
a
nice
nice
animation.
That
kind
of
give
and
there's
another
nice
animation
there.
But
if
you
scroll
to
the
bottom
of
the
page,
you
will
see
the
place
how
I
can
navigate
right.
A
So,
if
you
get
lost,
if
you
just
scroll
to
the
top,
you
can
just
click
this
and
they
will
take
you
direct
to
the
home
page
and
you
can
scroll
down
and
go
there.
Okay,
but
they're
going
to
be
some
navigation
to
get
you
the
next
page
if
you
get
lost
so
we'll
start
with
the
very
first
step
prerequisite
for
this
accession.
It's
going
to
be
super
super
simple!
You!
If
you
go
into
the
Preston
setup
president's
just
if
you
listen
to
presence
session
already,
you
should
regulated
on
this.
A
This
just
require
you
to
install
gcli
right,
so
it
can
be
if
you're,
even
using
Windows.
You
can
just
download
it
from
this
page
and,
if
you're
using
Mac,
that
should
be
installed
already
or
if
you're
using
Linux,
they
should
be
installed
already
so
make
sure
that
you
open
a
terminal
and
type
git,
hyphen,
hybrid
version.
It
really
doesn't
matter,
I
think
what
version
you
use
to
make
sure
that
you
can
see
that
and
when
you
type
git,
you
can
see
this
command
like
that.
A
So
let
me
know
if
everyone
is
good
there,
all
good,
because
that's
really
the
only
prerequisite
you
need
to
have
for
this
session,
and
you
want
all
good
all
good,
all
good
I'm,
assuming
good,
going
on
going
twice
going
twice:
okay,
great
great,
okay,
so
I
think
it
will
be
moving
much
faster
than
expected.
Okay.
A
So
if
you
get
those
you
can
always
visit
and
install
and
keep
going
like
that,
so
editor
editor
is
not
necessary
if
you
should,
especially
if
you're,
using
Bim
or
if
you're
familiar
with
emacs
or
Bim
or
Nano
or
Adam
but
I
for
this
session,
we
are
going
to
primary
you
using
terminal
whatever
form
it
is
so
because,
even
if
you
can
reframing
with
let's
say,
git
desktop
Source
tree
Kraken,
we
are
primarily
going
to
use
case
CLI
to
to
all
the
stuff.
A
A
So
each
section
is
breaking
down
into
some
of
the
concept
but
like
and
then
I
will
store
the
focus
of
this
session
a
little
later
on,
but
I
want
to
give
like
a
little
background.
I
know
that
you,
some
of
you
already
know
about
all
those
things
which
is
fine,
but
I
want
to
just
make
sure
that
at
least
let's
talk
about
some
of
the
basic
command
and
things
like
that,
so
basic
workflow.
A
This
is
not
just
for
get
off
or
get
lab
or
get
a
big
bucket.
It
will
work
for
anything,
get
latest
system,
so
in
general,
if
you're
working
with
the
files
and
you're
working
with
the
gist
system.
Technically
there
are
different
stages.
A
You
need
to
aware
of
so
we're
still
working
with
the
as
you
start,
working
with
the
file,
if
you
don't
chat,
if
you
don't
like
say,
didn't,
modify
any
file
that
isn't
on
track,
so
that
file
is
not
getting
tracked,
but
as
soon
as
you're
modifying
a
file
or
files
or
directories,
whether
it's
adding
a
file
or
deleting
a
file
or
you
know
removing
files
or
whatever
that
should
be
modified
stage,
and
that
should
be
tracked
and
understood
all
good.
A
A
A
So
there
are
the
user
interface
tools
like
GitHub
desktop,
which
is
you
know,
easy
to
use
because
everything
is
UI
based
or
directly
Kraken
or
Source
tree
or
whatever.
But
technically
you
can
operate
everything
with
the
key
CLI,
just
key
CLI,
so
git
pull
if
you're
checked
out
from
or
clone
from
remote
repo
repository,
you
can
do
git
posts
to
get
the
latest
change,
but
for
this
section
you
don't
need
to
do
that
and
there
is
going
to
be
good
checkout.
A
This
one
we're
gonna
use
if
you
check
out
whatever
the
branch
name,
is
saying
that
as
long
as
the
branch
exists,
whether
it
is
from
the
remote,
whatever
you
clone
from
where
we're
seeing
locally.
In
our
case
in
our
session,
we
are
going
to
only
use
the
local
ranges.
Okay,
so
that's
you
don't
need
to
worry
about,
like
you
know
they
coming
from
limo,
Branch
or
whatever
so
check
out.
A
Branch
name
should
be
fine,
and
if
you
don't
have
a
branch
already,
there
is
way
to
create
a
new
Branch,
just
passing
hyphen
B
argument
and
then
there's
new
Branch
name
and
Source
Branch.
So
typically
is
like
a
manual
Master
branch
and
then
the
branch
name
is
whatever
the
name
that
new
branch
is
about
going
to
be,
and
there
is
kind
of
thing
with
the
later
this
CLI.
This
switch
is
available
which
is
kind
of
similar
to
git
checkout.
A
So
it's
just
I
think
I'll
give
you
like
a
more
I'll
just
say
from
the
name
convention
perspective.
It
make
it
more
sense.
Maybe,
instead
of
doing
the
checkout
is
because
which
can
do
the
little
similar
thing,
but
like
a
little
more
algorithm,
making
more
sense
way
and
I
would
just
say
typically
when
I
do
teach
kit
and
other
things,
I
tell
other
people
whether
the
customers
or
users
or
developer
I
tell
key
status.
Is
your
best
friend
every
time
you
make
some
changes.
Do
this
status,
often
as
possible?
A
They
will
technically
add
everything
you
modify
right
so
be
sure
to
use
that,
as
with
the
caution,
okay,
then,
but
it
will
will
be
very
cautious
for
most
of
the
sessions
on
the
exercise,
because
it's
going
to
be
very
interactive
session,
we're
going
to
do
by
one
by
one
which
you
can
do
by
the
file
name,
that
you
would
modify
right.
This
is
how
you
can
do
it
for
multiple
file.
If
you
just
want
to
do
one
file,
you
can
just
do
as
it
is
like
that
and
supposedly
like.
A
Let's
say
you
modify
it
and
then
you
want
to
kind
of
you
know,
restore
that
that
which
was
not
added
yet
use
the
key
restore
which
will
just
bring
back
and
undo
it
right.
And
then
only
should
you
add
a
file,
then
you
can
do
commit
if
you
do
just
to
git
commit
without
passing
any
argument
like
hyphen
M.
They
will
kind
of
bringing
the
Vim
interface
or
whatever
editor
you
set
as
default,
which
will
be
kind
of
a
little,
maybe
a
cumbersome.
A
So
you
will
probably
easily
easier
if
you
just
pass
the
message
during
the
past
as
a
hyphen,
M
right
and
git
push.
We
are
not
going
to
worry
about
it
because
it's
going
to
be
network
network
operation,
but
that's
just
I
need
this,
and
this
is
kind
of
how
they
could
work
with
the
GitHub
and
this
kind
of
summarize
what
we
have
talked
so
far
and
with
the
additional
I
guess
get
batch
right.
A
There's
some
like
info
there's
some
information
there,
not
necessarily
like
you
know
related
to
this
session,
but
most
of
the
stuff
in
command
you
see
will
be
what
we'll
use
most
of
times
introduce
exercises.
So
yeah,
so
I
mentioned
get
status
case
status
is
going
to
be
command,
we're
going
to
use
a
lot.
It
will
help
to
verify
current
state
of
the
repository
and
the
file
is
contained,
or
if
you
just
modify
any
file,
they
will
show
where
it
is.
So,
let's
try
to
remember
that.
A
Try
to
remember
a
sink
your
head
right,
so
if
so
for
some
exercise,
we
are
going
to
work
with
the
more
than
one
branches,
one
branch.
A
So
if
you
do
to
keep
French,
they
will
show
yeah
sorry,
my
boy
kind
of
caught
up
a
little
bit
but
give
Branch
will
show
all
the
branches
that
you
created
or
have
in
your
yeah
a
little
weird
but
and
one
other
command
we're
gonna
lose
a
lot,
is
get
lock,
get
lock,
will
show
get
history
and
then
all
the
things
with
the
commit
IDs
and
but
one
one
trip
well
I
guess
argument.
A
We're
gonna
pass
is
hyphen
hyper
graph
dash
dash
graph
dash
dash
all
they
will
show
the
all
the
branches,
and
then
we
will
show
you
in
nicer
Branch
format
right.
So
we'll
try
to
use
that
quite
often.
So
just
try
to
remember
that
so
or
any
question
all
good,
all
good.
So
we're
because
next
section
here
is
going
to
be
actual.
A
You
know
going
to
all
the
exercises,
all
good,
okay,
so
main
point
or
the
purpose
of
this
section
is
or
this
session
is
to
learn
different
ways
to
undo
or
invert
to
a
chain
or
reverse
or
reset
to
git
commit.
There
are
different
ways
to
do
it,
and
this
session
will
be
focusing
on
different
ways
and
mechanism
and
other
things
to
do
with
that.
So
we
will
talk
about
the
briefly
for
each
one,
each
concept
and
we'll
go
through
the
exercises.
That's
weird.
B
A
Okay,
weird,
hopefully
it
came
back.
Okay,
all
right
so
yeah
so
and
they're
going
to
be
one
additional
section
called
get
bicep
little
I
guess
a
diverging
away
from
the
main
topic,
but
we'll
talk
about
it
at
the
end
and
supposedly
don't
go
through
all
the
exercise.
Today,
that's
fine!
You
can
take
it.
You
can
finish
it
all.
The
instructions
should
be
there.
A
Yeah
yeah,
so
how
commits
are
made
just
every
commit
is
a
unique
snapshot
of
the
project
at
that
point
in
time
it
contains
the
following
information,
like
a
pointer
to
the
current
object
in
the
repository
commit
author
and
email
commit
date
and
time
incoming
message.
That's
just
a
kind
of
quick
one.
30
second
overview
of
a
git
commit
right,
weird,
well,
I!
A
Don't
know
why
it's
refreshing
so
often
weird,
okay
and
yeah,
so
get
data
structure,
get
the
Integrity
but
distribute
nature,
or
if
it
requires
to
be
aware
about
how
certain
operations
will
impact
the
commit
had
already
been
shared.
If
operation
would
change
a
commit
ID,
they
have
been
pushed
to
remote,
also
known
as
public
commit.
We
must
be
careful
in
choosing
the
operational
perform,
but
really
the
main
thing
is
we
are
going
to
go
through
this.
A
All
these
command
git
divert,
which
is
instead
of
removing
assistant,
commit
it
is
undo
or
reverted
change
or
inverted
change
by
creating
new
commit
and
then
we're
going
to
move
on
to
commit
hyphen
hyphen
amend
it's
really
convenient
way
to
modify
the
most
recent
commit
by
combining
change
with
the
previous
commands.
This
is
really
useful.
Let's
say
I
commit
something
or
a
little
bit.
The
message
is
wrong
and
I
want
to
kind
of
order.
Everything
I
forgot
to
add
a
file
or
whatever
right.
A
It's
really
good
for
fixing
the
change
we
just
made
right
cherry
pick.
Cherry
pick
will
be
really
useful.
Let's
say
some
you're
somebody
you're
working
with
somebody
under
is
the
main
branch
and
you're.
Somebody
else
is
working
with
another
branch
and
they
want
to
pick
that
interesting,
commit
in
another
branch
and
bring
to
the
branch
that
you're
working
on.
So
it
will
be
nice
ways
to
bring
that
specific
one.
That's
why
I
call
it
cherry
pick
ebays
and
squash,
so
rebase
will
be
the
ways
to
kind
of
say
bring
by
default.
A
It
will
be
based
to
say
either
like
a
disconnect.
You
know,
get
commit
history
from
one
branches
and
one
branch
and
they
want
to
be
kind
of
bring
in
and
merging
into
adding
to
tip
of
my
current
Branch
or
the
branch
you're
working
on
and
there's
ways
to
be
more
specific.
One
concept
we're
going
to
explore
is
a
squash.
A
You
probably
heard
that
a
lot
squash
and
then
we'll
see
how
you
can
do
it
interactive
way
and
then,
when
you
reset
reset
is,
has
to
be
definitely
taken
with
the
caution
because
it
can
be
destructive
or
most
destructive.
Good
thing
is:
there's
only
three
ways
to
do
it:
soft
mixed
and
hard
and
we're
going
to
all
see
it
all
the
way,
but
you
will
see
how
that's
gonna,
how
gonna
work
so
yeah,
so
those
are
going
to
be
the
things
that
and
they're
going
to
be
additional
bisect
section.
A
Okay,
so,
let's
start
with
Git
divert
so
get
revert
as
you
can
see
in
this
diagram,
it
works.
But
it's
a
safest
operation
because
it
doesn't
modify
any
existing
or
previously
made
commit
history.
Yeah
I,
don't
know
why
it's
keep
refreshing,
but.
B
A
So,
instead
it
will
just
change
the
whatever
the
change
you
made
and
it
will
try
to
make
a
new
commit
commit
point
to
the
undo
that
the
changes
you
just
made
so
for
this
in
any
exercise,
we're
going
to
do
it
later
is
going
to
be
kind
of
using
the
same
process.
Over
and
over
again,
you
can
technical
users.
You
know
One
Directory
to
do
everything
pretty
much
but
like
we're
trying
to
create
new
directory
every
single
time.
But,
however,
you
want
to
do
it.
It's
really
up
to
you.
A
I
just
wanted
to
make
sure
that
everyone
in
the
Clean
Slate,
so
you
will
just
create
new
directory
every
single
time
and
copy
and
paste.
So
it's
going
to
be
the
same
operation
over
and
over
again
right.
So
first
thing
is
very
first
thing
to
do:
make
sure
that
you
open
up
if
you're,
using
Mac
or
Linux
open
up
terminal
window
and
then
make
sure
that
you
create
maybe
new
directory.
So
it's
easy
to
just
go
right
into
that
right.
So
if
you
are
creating
home
directory,
maybe
it's
really
hard
to
find
it
later.
A
So
maybe
it'd
be
nice
to
create
new
directory
right
and,
if
you're,
using
Windows,
assuming
that
you
install
case
CLI
open
up
kcli
and
that
should
be
allowing
you
to
learn
most
of
the
shell
script.
We're
gonna,
mostly
going
to
be
all
remain
in
the
process,
makes
sense
so
very
first
step.
You
can
just
copy
and
paste
I'm
going
to
create
a
new
directory
and
then
going
to
be
the
git
revert
demo
and
I'm
going
to
using
this
Visual
Studio
terminal,
but
you
can
use
it
any
terminal.
A
It
should
work
the
same
I'm
going
to
just
paste
it
that
will
create
a
new
directory
and
I
can
go
inside
there,
and
so
I
can
just
start
from
there
right
now.
It
should
have
nothing
there,
because
nothing
was
in
your
inertialized.
Your
file
was
added,
so
that's
the
where
you
start
right,
where
we
can
start
okay.
So
now
going
back
to
the
Second
Step
we're
going
to
create
a
new
shell
script,
it's
called
the
generate
single
Branch,
it's
for
only
Branch
one
branch.
So
and
then
you
can
create
it.
A
However,
you
want
it's
up
to
you,
but
I'm
going
to
just
use
this
touch
command
to
create
a
new
file.
If
you're
using
the
text
editor,
you
can
just
right.
Click
create
new
file
as
long
as
the
shell
script
you'll
find,
but
make
sure
that
you
can
right
now
by
default.
It
should
not
be
original.
Second
by
default
is
not
executable,
so
make
sure
that
you
can
make
it
writable
with
that.
So
after
that,
if
you
do
that,
it's
not
executable.
A
A
How
we're
going
to
save
the
script
is
up
to
you,
but
this
is
I'm
going
to
be
using
Vim,
so
I'm
going
to
sell
us
like
you,
can
use
a
w
Cube
I,
really
like
X
exclamation
to
save
so
I'm
going
to
just
save
that.
So
that's
just
the
show
us
group
guys
saved
so
now.
I
have
this
one
file
there
I'm
going
to
execute
this
by
learning
this
command
and
there
will
inertialize
this
directory
as
git
directory
okay.
A
So
now,
if
I
see
what
is
in
there
now
you'll
see
that
git
that's
going
to
be
where
you're
going
to
track
and
get
and
then
there's
additional
readymade.nd
file
and
quick
other
way
to
check.
You
can
do
get
status.
You're
not
going
to
use
this
again,
so
you
can
ignore
it
because
it
just
helped
to
generate.
A
But
you
can
check
what
is
the
content
in
the
lead
me
MD
file,
and
then
one
I
explain
that
you
wanna
we
wanna,
you're
gonna
use
this
command
a
lot,
get
lock,
hyphen
hyphen,
grab
hyper
and
hyphen
all
that
will
show
and
to
wait
to
get
out.
If
you
get
stuck.
A
A
Okay,
so
what
we
want
to
do
is
that
we
can
try
try
to
like
revert
this
one,
but
instead
of
doing
that,
we're
gonna
just
just
make
it
so
everyone's
easy
to
follow
that
we
are
going
to
just
modify
our
generated
file,
which
is
leading
the
MD
file
and
then
create
a
new
commit
with
that
and
revert
that
so
you
can.
It
I
think,
there's
an
easier
way
to
understand
and
then
see
what
is
going
to
change.
Okay.
A
So
right
now,
if
you
look
at
the
limit
MD
file,
that
should
be
the
there's
only
like
three
sentences
there,
so
I'm
going
to
what
I'm
going
to
do.
I'm
going
to
go
to
my
last
line,
I'm
going
to
say,
welcome
to
git,
merge,
22
and
then
this
is
going
to
be
awesome
right
and
that's
going
to
be
my
any.
It
can
be
any
change.
But
that's
going
to
be
my
sentence
and
I'm
going
to
save
that.
A
So
remember
what
I
told
earlier
that
gift
status
is
your
best
friend
I'm,
going
to
type
get
status
and
then
as
soon
as
I've
done
that
it's
tracking
what
I
modify
so
it's
just
shown
as
modify
okay,
all
good
and
yeah,
then
I'm
going
to
do
git,
add
and
leading
the
MD
file
and
then,
when
I
do
get
status
again.
Now
it
is
in
the
stage
environment
make
sense.
A
So
then
I'm
going
to
make
a
commit
later
I'm
going
to
kind
of
switch
it
back
and
forth.
How
I
can
do
add
and
commit
a
single
sentence,
but
I
like
it
right
now,
I'm
just
going
to
in
two
different
steps,
but
I'm
going
to
say
this
is
going
to
be
divert
operation,
so
I'm
just
going
to
be
passing
a
message.
A
Okay,
so
now,
once
I've
done
that
if
I
check
this
log
hypernation
grab
we're
going
to
use
this
a
lot
so
be
used
to
this,
and
you
see
there
is
going
to
be
the
latest
commit
that
I
made
right
now,
let's
say
I,
don't
I
want
to
leave
with
that.
I
want
to
throw
away.
Now,
with
the
git
revert,
as
mentioned
before,
you
will
be
able
to
not
not
just
it
will
not
remove
the
previous
and
even
not
affect
any
previous
history
or
git
history.
A
You'll
be
able
to
do
it
just
by
creating
new,
commit
okay,
so
I'm
going
to
copy
that
I'm
going
to
copy
that
and
I'm
going
to
do,
git
divert
and
then
it
will
bring
up
this
and
then,
of
course,
if
you
pass
hyphen
and
message,
you
will
do
that.
You
can
modify
this
message.
However,
you
want
I'm
going
to
say
yes
you're,
going
to
revert.
A
And
I'm
going
to
save
that
now
see.
Let's
see
what
happened
now,
if
I've
done
that,
if
I
look
at
vidmate
MD
file,
it
kind
of
went
back
to
the
where
we
were
before,
but
so
it's
just
delivered
to
change.
We
just
made
okay,
but
if
you
recheck
the
log
history
it
didn't
more,
it
didn't
do
or
it
didn't
change
any
of
the
existing
history
instead
of
what
it
was
done
is
that
it
created
a
new
commit
and
then
just
did
it
by
revert
make
sense
any
question
any
concern.
A
Anyone
got
stuck
all
good:
okay,
okay,
yeah,
good
cool
again
the
way
to
get
it
out.
If
you
get
stuck
just
hit
q
q
button
and
then
there
should
go
okay,
now
we'll
be
going.
Oh
one
thing
I
can
forgot
is
so
is
in
the
instruction.
So
now
what
happened?
If
you
do
deliver
back
the
previous
commit,
and
after
already
some
change
are
made
right.
What
is
going
to
happen?
A
Just
let
me
quickly
show
how
gonna
work
so
now,
let's
say
instead
of
doing
the
very
top
one
I'm
going
to
pick
the
somewhere
in
the
middle
like
this
one.
Let's
see,
let's
try
to
revert
that
and
see
how
it's
going
to
be
different.
Okay,
so
I'm
going
to
grab
this
one
and
I'm
going
to
revert
and
see
how
it's
different,
okay
and
some
more
change
and
change.
A
So
now,
if
I
try
to
modify
that
actually,
actually
there
is
one
thing:
I
need
to
do.
Actually
let
me
try
one
pick,
the
other
one:
okay,
let's
try
to
pick
the
one
at
the
little
more
at
the
bottom
like
the
this.
Maybe
this
one
and
see
what's
going
to
change
okay,
I'm,
going
to
copy
the
One
into
here
and
then
try
to
revert
that
so
now,
what's
going
to
happen
is
if
you
already
kind
of
made
this,
you
know
change
it
to
the
one
that
already
committed,
and
then
why
read
the
bottom?
A
A
So
one
thing
I
want
to
show
is
that
let's
say
I
want
to
do
everything
in
the
one
line
you
can
do
git,
add
Lead,
Me,
MD
and
percent
n
percent,
and
then
you
can
just
to
do
passive,
commit
message
and
then
fixing
the
conflict
now
yeah
so
and
then
git
commit,
and
then
that's
done
and
now,
if
I
check
yeah,
this
should
be
reverting
by
adding
one
more
command,
all
good,
all
good
great.
A
So
now
we
will
start
creating
new
directory
right
after
this
we're
going
to
do
this
kind
of
same
pattern
over
and
over
again
so
hit
the
CD
dot
dot
so
good
to
go
to
One
Directory
above
because
if
we
want
to
create
a
new
directory
every
time,
I
mean
it's
up
to
you.
How
I
want
to
do
it,
but
this
will
help
you
to
to
start
with
the
complete
cleaning
slate
right.
Okay,
now
I
will
go
and
then
we
can
go
to
next
section.
A
So
this
section
is
going
to
be
a
good
commit
a
man
with
extra
skit
commit
a
man
right.
So
previously
you
don't
learn
the
market
divert
so
keep
coming,
amend
hyphenated
a
man
is
part
of
a
good
commit
what
the
extra
parameter
right
it's
it
will
make
a
change
by
say.
Let's
say
you
made
the
comment
already
and
you
forgot
somehow
your
message
couldn't
message
you
somehow
right.
Well,
it's
not
right-
or
maybe
you
utilize,
oh
I,
forgot
to
check
in
some
file
or
made
a
few
mistake.
A
A
A
Then
and
then
so
it's
executable
now,
you
can
see
it
by
x,
mark
and
then
I'm
going
to
to
edit
I'm
going
to
populate
the
content.
Here
this
script
I'm
going
to
just
select
everything.
It's
going
to
be
exactly
the
same
screen.
We
used
earlier
so
paste
that
so
again,
I
forgot
to
kind
of
walk
through
what
this
one
does
it's
a
shell
script.
A
They,
basically
you
know
slides
as
you
get
get
get
get
directory
and
then
it's
going
to
check
out
domain
and
it
will
be
creating
a
file
leaving
the
MD
file
and
it
is
going
to
modify
by
adding
a
few
sentences
and
make
a
commit.
So
it's
just
simple
one,
single
Branch
operation,
right
I'm,
going
to
save
this
and
again
same
save
as
last
time,
I'm
going
to
launch
this
script,
which
will
generate
get
history
so
yeah.
A
A
You
want
or
any
change,
but
we're
going
to
just
for
you
for
the
following
this
we're
going
to
copy
that,
and
this
sentence
is
wrong
because
gitre
is
the
best
way
to
make
changes
without
rewriting
in
history,
but
we'll
just
use
that
for
that
now,
right
so
I'm
going
to
modify
the
DMV
file.
You
can
put
this
anywhere
but
I'm
going
to
print
out
the
value
bottom
of
the
line
I'm
going
to
commit
this
and
change.
A
Making
a
bad
connect
okay!
So
now,
if
I
do
see
the
history,
you
will
see
that
this
is
there
and
I
want
to
change
that.
Okay,
so
I'm
going
to
do
it
by
get
lean,
MD
and
I'm
going
to
so.
First
thing
is
remember
that
where
we
are
I
think
the
important
thing
is
remember
so
very
last
one
you
see
is
the
purpose
to
make
embed
Commit
This
commit
is
going
to
be
changed
with
the
whatever
you're
going
to
be
amended
with
right
and
then
so.
A
This
is
the
very
last
one
and
the
one
before
is
adding
some
more
description.
Okay,
so
to
see
where
the
top
one
is
and
share
the
where
the
next
one
is
right,
I'm
going
to
do,
make
it
one
change
and
then
I'm
going
to
say
it's
not
the
list
set,
it's
a
good
delivered,
so
I'm
going
to
save
that
and
then
I'm
going
to
get
commit,
amend
and
then
do
that.
Then
it
will
try
to
revert
to
last
whatever
to
change
a
bit.
So
I'm
going
to
say
this
will
fix
with
write
operation.
A
Forget
a
lot
of
the
command.
You
will
make
I'm
going
to
save
that
so
now,
if
you
change
check
your
md
file,
of
course,
going
to
be
the
river
is
the
best
way
to
make,
and
that's
content-wise
fine,
but
interesting.
Interesting
thing
is:
if
you
check
the
log
history
again,
remember
the
where
we
were
before
this
was
a
run
right
before
our
the
top
one
right.
Now
it's
replaced
with
that
with
the
different
gig
coming
message,
and
then
that
should
be
the
one
that
modified
any
question.
A
A
So
cherry
pick
so
cherry
pick
as
you
can
see,
is
picking
like
a
cherry
in
the
tree.
You
can
pick
the
exact
one
that
you
want
to
do
it
and
apply
to
the
other
Branch
okay,
so
cherry
picking
allows
to
pick
a
commit
from
the
leaf
Vlog
or
another
brain
server
project
and
move
it
into
into
your
current
range.
It's
very
powerful
command
and
had
a
lot
specific,
give
commit
from
reference
and
append
the
current
working
hat.
So
some
of
the
reason
why
they
were
cherry
pick
will
be
helpful.
A
It'll,
be
that
whenever
somebody
or
somebody
else
made
it
accidentally
made
a
commit
to
long
range
right.
So
you
want
to
bring
that
change
to
the
current
range
or
your
team
need
a
specific
death,
specific
change
where
it
is
a
new
feature
or
a
fix,
and
maybe
it's
somebody
else,
okay,
so
it
will
help
you
to
do
that.
A
A
A
Yeah
so
now
we
gonna
this
one
is
a
little
different
script,
but
kind
of
same
type
of
pattern:
we're
going
to
create
a
new
script
with
that
created,
multiple
branches.
Okay,
we're
gonna,
make
that
touch
and
then
we're
gonna
make
it
executable
and
we
are
going
to
modify
it
and
then
go
to
the
here.
A
What
the
script
does
it
will
initialize
it
as
you
get
and
then
it
will
get
from
first
thing:
is
it's
going
to
stay
in
the
main
and
then
create
main.java,
but
it's
going
to
check
out
and
create
a
new
test,
hyphen
branch
and
then
add
the
test.java
and
modify
a
few
stop
and
then
that
we
want
to
change
it
back
to
the
main
and
then
modify
the
existing
mean
the
Java,
okay
and
then
so.
What
we're
going
to
do
is
that
we
will
bring
that
change
together.
Java
is
only
existing
in
the
other
range
test.
A
Hybrid
range,
we're
going
to
bring
that
change
and
apply
to
our
main
Bridge
makes
sense.
Okay,
so
there's
where
we
are
now
we're
not
just
like
last
time
we're
going
to
learn
the
command
initialize
it.
So,
let's
check
a
few
things
to
make
sure
everything's
good
and
let's
hyphen
La
should
show
hidden
file,
including
that
git
again,
this
has
a
main.java.
So
you
can
check
the
content
if
you
want
so
just
a
simple
Java
main
class
file,
but
this
one
has
a
more
than
one
range
main
branch
and
test
hyphen
Branch.
A
Now,
if
you
do
LS
here,
you
will
see
mean
that
Java
test.java,
so
you
can
see
the
content
for
test.java
right
and
you
can
see
the
content
for
me
in
the
Java
just
to
check
in
you
see
this
is
kind
of
little
incomplete
in
purpose,
but
now,
let's
just
and
so
we
are
at
the
moment,
we
are
in
the
test:
Branch,
okay
and
also
you
can
check
the
log,
hyphen
hyphen,
grab
hyper
knife
and
all
remember
that
we're
going
to
use
this
a
lot
right,
so
you
can
see
that
this
is
a
main
branch.
A
But
now
you
can
because
you
pass
that
hyper
knife
and
all
it
will
show
the
other
branch
which
is
test
branch
and
so
yeah.
This
will
be
the
one
that
we
want
to
cherry
pick,
but
so
you
can
see
that
this
is
a
main
branch,
and
this
is
the
test
Branch.
So
now
so
yeah,
so
you
can
check
with
that
operation.
So
now,
let's
try
to
cherry
pick.
So
let's
say,
let's
say:
I
want
to
cherry
pick.
A
One
here
I
want
to
bring
that
the
latest
command
from
the
test
Branch
to
the
main
range.
Okay
makes
sense.
So
once
you
do
this
again,
just
to
show
you
so
everyone
following
when
I
do
launch
this
command.
I
want
to
pick
this
latest
one
supposedly,
that's
the
one
I
want
to
pick
and
then
copy
that
so
I
want
to
bring
that
test.java
into
my
main
range.
Okay,
so
copy
that
and
I'm
going
to
check
out
to
Main
I'm
going
to
do
the
cherry
pick
and
then
do
that,
so
it
will
result
with
some
conflict.
A
But
now,
when
I
do
LS,
remember
that
in
our
previous
example,
when
I
do
LS
in
a
main
branch,
didn't
have
that
main.java
Knight
does
okay
and
then
also
so
it
brought
from
the
test
range
and
so
it's
there
and
then
maybe
maybe
have
some
conflict
in
the
main
Java.
So
if
it
does
have
it
it
will
you
fix
it,
but
otherwise
it
should
be
good
to
go.
A
I
think
yeah
I
think
that
should
be
a
secret
status
and
then
you
can
see
that
it
can
add
and
delete
and
then
yeah
and
then
hit
commit.
Let
me
clear
the
screen
a
bit
git
commit
hyphen
M
and
then
may
brought
a
commit
point
from
text,
Branch,
yeah
and
then
yeah.
So
now
that's
in
the
our
history
so
yeah.
So
this
is
the
the
change
that
apply
from
the
whatever
you
check
from
here
to
here.
A
A
Okay,
so
rebase
rebase
is
interesting.
So
it's
cherry
pick.
Allow
you
to
pick
that
specific,
that
specific
point
in
other
branch
and
bring
that
over
rebase
will
be
by
default.
There's
another
option,
interactive
option
and
not
many
options
option
you
can
do
with
it.
It
does
give
you
a
lot
of
options.
Ebay
is
by
default,
we're
trying
to
bring
all
the
all
the
commit
and
then
apply
to
the
brain
tip
of
the
branch
that
you
have.
A
Okay,
make
sense
and
I'm
going
to
talk
about
this
squash
option,
which
will
be
the
one
that
will
you
will
see
when
you
do
interactive,
rebase,
yeah,
chocolate,
so
yeah,
so
yeah,
so
rebase
enabled
to
modify
your
coming
history
in
their
way.
You
can
see
the
diagram
so
whatever
it
is
in
this
diagram,
you
see
that
there
is
a
new
branch
and
then
we
can
apply
and
then
to
this.
A
The
dead
Branch
right.
So
rebase
comes
in
several
forms
in
this
section,
which
is
for
basically
Base
by
default
and
then
rebase
with
the
internet
option
and
leave
base
with
the
squash
right.
So
why
would
you
want
to
use
a
greatly
base?
The
goal
of
a
rebase
is
similar
to
that
of
a
game
merge
like
if
you
do
get
merged.
That's
like
emerging
from
one
branch,
another
they're
both
trying
to
integrate
one
branch
to
another.
A
But
now,
if
you're
using
web-based
give
platform
like
GitHub,
gitlab
or
big
bucket,
you
might
be
familiar
with
concept
of
pull
requests
or
merge
requests.
So
that's
kind
of
like
doing
the
merge,
but
but
anyway,
kit,
merge
or
gitly
base
provides
a
similar
way
to
merge
with
one
branch
with
another,
but
through
the
plain,
simple,
Gateway.
Okay
merger
works
by
creating
a
new
commit
in
destination
Branch
by
tying
together
the
history
of
both
branches
and
is
a
safe
operation.
The
base,
on
the
other
hand,
moves
the
entire
commits.
A
So,
though,
there's
a
selected
way
to
choose
to
the
table,
which
is
there's
and
then
there's
a
little
way
to
choose
to
the
team
of
destination
branch,
and
this
is
essentially
UI
in
the
project
history.
So
little
can
be
have
to
be
a
little
more
careful.
Okay,
so
same
exactly
kind
of
pattern,
we're
going
to
do
the
create
a
new
directory-
and
you
said
into
that.
A
So,
if
you're
comfortable
using
the
existing
directory,
that's
a
perfectly
fine
I'm
just
going
to
create
a
new
file
and
then
make
cake,
securable
and
then
I'm
going
to
modify
that
and
copy
that
to
do
paste.
It
and
again
this
is
exactly
the
same
script
last
time,
just
creating
two
Branch
Main
and
test
branch,
and
then
some
Java
class
files
saved
it
so
I'm
going
to
learn
this
to
generate
so
exactly
same
thing
as
we
so
not
starting
yeah.
So
same
structure.
B
A
Hold
on
a
second
okay
same
get
structure.
Now,
where
we
want
to
go,
is
that
so
we
were
checking
out
to
the
test
Branch,
so
we.
So
this
is
a
branch
we
are
in
right
now
as
a
main
branch.
We
will
check
out
the
test
range.
Okay,
get
checked
out
test
before
that.
A
So
if
you
do
LS,
you
can
see
just
one
file
we
did
the
explaining
earlier,
but
just
to
make
sure
that
you
know
this
is
going
to
be
different
check
out
a
test
branch
and
then
now,
if
you
do
LS,
it
will
have
an
additional
file.
So
let
me
delete
a
different
difference
now,
if
you
want
from
here
so
before
doing
anything
according
further
make
sure
that
we
can
monitor
what
is
like
right
now,
so
very
top
of
the
very
top
of
the
you
know.
A
The
main
branch
is
closed,
meaning
that
Java
main.java.
That's
what
we
see
in
the
main
branch
right,
there's
a
tip
of
the
main,
the
main
branch
for
test
Branch.
You
see
that
the
main
under
element
under
tester
Java
at
the
quest
to
Tesla
Java
and
the
new
file
called
tested
Java
right.
So
that's
going
to
be,
this
is
going
to
be
a
bit
what
if
we
do
rebase
by
default
option
all
these
all
this
history
and
commits
is
going
to
be
coming
from
here
and
apply
here,
make
sense.
A
Okay,
so
you
will
see
that
so
I'm
going
to
get
Lee
base
and
then
to
the
main
it
has
a
default
option.
Okay,
so
done
now,
if
I
check
history
well
before
the
let's
check
the
file,
so
right
now
is
there's
a
test
of
java,
but
let's
check
out
the
main
to
check.
So
now,
if
we
check
the
main,
you
see
that
it's
there,
let's
see,
get
log
hyper
knife
and
grab
hyper
knife
all.
A
So
you
see
that
this
is
actually
the
main
branch
and
then
this
actually
apply
from
the
test
branch
and
then
apply
to
here.
Okay,
makes
sense,
okay
and
then
get
status
and
then
yeah.
So
that's
that
so
now
that's
the
default
option.
Now,
let's
try
to
reset
everything
so
I
want
to
show
you
one
more
option
which
is
interactive:
option:
okay,
let's
see
how
during
time
3
14,
so
maybe
a
little
more
time.
Okay,
yeah!
A
So
we
gonna
be
I'm,
gonna
be
actually
I
started,
2
45,
so
it
should
be
fine,
yeah,
so
I'm
going
to
reset
everything
so
by
deleting
dot,
get
okay
I'm
going
to
delete
Java
file
so
I'm
at
the
Clean
Slate,
okay,
I'm
going
to
regenerate
same
structure,
okay,
so
I'm
at
this
very
start.
A
B
A
And
then
do
the
main,
so
this
will
bring
more
I'll
just
say
Choice.
Instead
of
picking
up
the
changes
that
bring
everything,
this
will
give
more
options.
So
this
is
where
we
will
apply
squash.
So
if
we
do
squash
for
squash,
allow
you
to
combine
multiple
command
into
one
or
few
commits
okay,
and
you
can
see.
There's
other
options
there.
So
I'm
going
to
just
combine
the
the
other
two
with
this
one.
Okay,
so
it
can
be
in
the
one
single
connect.
A
Yeah,
so
now,
if
I
do
get
log
correct
or
now
you
can
see,
it
brought
the
changes
from
test
Branch,
but
it's
now
is
combining
those
things
into
single
commit
all
good,
anyways,
good,
just
checking,
I,
guess
yeah
yeah.
All
right,
you
guys
are
awesome,
so
I
will
create
a
prepare
for
the
next
section
Again
by
going
into
Walmart
directory
at
the
top.
A
So
you
can
lead
and
follow
all
this
instruction
is
here
yeah,
so
reset
so
reset
I
explained
a
little
earlier.
It
can
be
most
destructive
in
terms
of
a
history.
So
have
to
be
careful.
Good
thing
is
that
it
provides
three
different
options:
one
for
soft
one
for
the
Mixed,
which
is
default
option
and
then
one
is
hard
which
is
the
most
destructive
one.
So
it
does
it
by
like
this
is
like
it's
where
his
head,
he
does
by
resetting
the
head,
where
his
head
is
right.
A
So
again,
I
explained
a
little
bit
the
very
beginning
that
how
there's
a
different
stages,
different
faces
of,
like
you,
know,
gig,
commit
or
get
good
in
general,
when
you
work
with
the
kit,
there
is
a
working
directory
which
is
when
you
start
working
and
then
that's
when
you
modify
and
track
and
track
and
then
whatever
and
then
you
need
to
get
add.
It
goes
a
staging
environment
which
is
then
ready
to
commit,
and
then
there's
commit
when
you
do
the
commit
it
goes
to
get
commit
history.
A
So
git
listen,
soft,
which
passed
by
hybrid
types
of
soft,
clever
back
to
only
that
commit
one.
It
will
not
modify
the
whatever
you
edit
or
modify.
It
will
only
deliver
the
commit
itself.
Okay,
so
it's
a
safe
in
some
sense
and
it
can
be
more
destructive
to
go
down
below
or
in
the
mixed
or
by
default.
If
you
just
read
reset,
it
will
be
removing
the
commit
and
also
it
will
remove
the
whatever
you
added,
which
is
in
stage
environment.
A
A
So
so,
let's
do
the
same
exercise
similar
exercise
I'm
going
to
create
a
new
directory
I'm
going
to
go
to
that
reset
table.
So
I
made
the
cleaning
slate
and
I'm
going
to
again
same
thing
same
exactly
squares
last
time,
so
I'm
going
to
touch
that
and
then
going
to
make
executable
and
I'm
going
to
modify
that
and
then
copy
and
paste
this
script,
this
exactly
same
script
as
last
time,
so
save
that
and
I
can
learn
to
generate
this.
It's
all
good,
okay!
A
So,
okay,
you
can
just
check
your
structure
of
your
git
history,
all
those
things
exactly
the
same
and
then
now,
let's
do
the
key
list
says
soft,
so
step
a
kit,
kit,
ID
or
sha
ID
you're.
Picking
from
is
another
the
one
that
at
the
top,
because
that's
going
to
be
a
current
one.
You
will
pick
the
one
that
happened
earlier.
That's
the
word!
It
does
revert
two
like
I
kind
of
you
know
time
travel
in
a
sense
right.
So,
let's
try
to
pick
something
that
maybe
happened
one
before
so,
if
I.
A
A
What's
going
to
happen,
it
didn't
remove
the
one
that
happened
earlier
right,
okay,
but
now
good
thing
to
check
is
that
so
that
when
I
do
get
status,
this
was
a
committed.
So
it
was
now
in
the
like
stage,
environment,
right
and
but
the
file
is
solved.
Also,
it's
not
modified
make
sense.
So
this
soft
reset
will
only
limit
the
commit
and
then
bring
that
commit
one
to
the
like
stage,
one
okay
and
now
let's
try
to
do
the
default
option.
A
So
now,
if
I
do
let's
pick
the
other
point?
I'll
pick
the
one
below
this
one,
okay,
so
let's
do
that
and
then
I'm
going
to
so
you
can
do
either
or
away
you
can
do
like
by
default.
Don't
pass
anything
or
you
can
do
mixed.
It's
exactly
the
same
thing.
I'm
going
to
do
that
so
really
different
about
this
time.
Is
that
actually
that
it
did
become
unstaged,
meaning
that
this
file
was
previously
added?
Then
now
is
a
nice
stage.
So
if
you
do
get
status
well,
UB
now
is
not
added
anymore.
A
However,
the
file
itself
is
still
the
same.
Okay,
it
does
not
affect
the
file.
You
modify,
lastly,
is
the
let's
pick
that
something
else:
let's
pick
something
that
here
the
one
right
before
now
we'll
do
the
the
most
destructive
operation
with
the
the
heart.
This
will
be
removing
all
the
changes,
all
the
changes.
So
when
I
do
this,
if
you
check
your
commit
history,
not
only
it
didn't,
remove
and
reverted
back
to
the
point
where
I
specify.
A
If
we
do
get
status,
it
will
not
show
anything
and
then,
if
I
check
my
file,
it
was
remember
that
it
was
a
completed
according
braces
and
it
closed
braces
all
those
things
now
those
are
gone.
So
this
will
be
you
just
District,
most
destructive
incense.
If
we
did
work
on
it
and
do
that,
it
will
be
technically
perfect.
The
entire
team
so
yep
any
question:
there's
all
the
things
there
in
question.
A
Any
question,
no
good,
just
checking
making
sure
okay
I
think
this
is
the
last
section,
so
I
think
I'm
good
on
time,
so
yeah
so
good,
bisect.
So
far,
what
I
kind
of
walked
through
before
is
all
about
how
to
divert
or
in
undo
undo
the
operation
invert
operation.
This
one
is
more
like
a
user
for
a
tool
that
will
help
you
find
out
that
very,
very
commit
or
the
commit
that
you're
interested
in
and
then
somehow
it
was
whatever
it
did.
A
It
might
be
broken
your
environment
or
it
might
be
something
that
some
other,
maybe
your
friend
or
co-worker
or
developermate,
and
you
want
to
find
them,
but
not
sure
how
this
is
a
kind
of
doing
something
called
the
operation
called
binary
search
tree.
If
you
did
a
computer
science,
you
know
what
how
it
works.
It
kind
of
broke
down
into
two
and
it
keeps
working
down
and
then
to
find
that
specific
that
point
you
need
to
search
for
right,
so
yeah.
A
So
this
where
this
will
be
finding
useful
is
when
you
find
a
bug,
but
you
have
a
new
idea
when
it
was
introduced
when
a
new
feature
got
introduced,
but
have
no
idea
how
to
trace
back
when
there's
a
performance,
integrator
Improvement.
But
you
have
no
idea
how
to
trace
that.
So
this
git
bisect
is
the
built-in
option
in
new
dcli.
This
is
very
nice
to
Tool
and
way
to
start
is
really
easy.
A
You
do
get
bisex
start
to
start
and
if
you
want
to
end
it,
you
do
the
give
by
say
reset
and
then
you
then
Mark
whatever
you
think
it
was
a
bad
which
is
probably
at
the
latest
one
and
then
Mark
it
as
a
bad
bisect
and
you
mark
whatever
is
good,
which
means
that
before
that,
the
better
change
happen.
You
mark
that
point
which
happened
somewhere
earlier.
A
That's
good
and,
and
you
keep
investing
it
by
doing
it
by
say
good
guy,
buys
it
back
and
checking
that
to
narrow
down
to
the
point
that
we
actually
find
a
very
commit
okay.
So
let's
try
to
do
that.
So
that's
a
concept
I'm
going
to
create
a
new
directory
again
I'm,
going
on
one
more
top
and
do
that
CD
get
bisect.
A
So
this
one
compared
to
other
exercises
will
be
requiring
to
script
and
then
so
it's
going
to
be
the
only
one
that
is
a
little
different
from
the
exercise
perspective.
You
have
to
learn
two
script,
one
at
a
time
so
I'm
going
to
copy
this.
It
can
be
whatever
name
you
want,
but
this
is
going
to
be
the
name
I'm
going
to
create
it
again.
A
Remember
that
how
you
can
create
a
file
I'm,
going
to
touch
this
file
and
make
it
executable,
okay
and
then
going
to
right
on
the
copy
and
paste
this
first
part
of
the
script
is
about
the
description
about
Harry
Potter
book.
Okay.
So
it's
going
to
create
a
file
called
hyphen,
Harry,
Potter,
the
MD,
and
then
it's
not
actually
X
Harry
Potter
book.
A
It's
just
a
description
of
header
particle,
so
it's
yeah,
so
I'm
going
to
learn
this
first
part
of
it
and
then
so
when
I
look
at
the
history
is
going
to
be
the
all
the
way
up
to
seven
sentence:
okay
and
then,
when
I
check
the
file,
it's
going
to
be
looking
like
this:
okay,
all
good
now
in
somewhere,
I'm
making
it
obvious
for
everyone.
But
it's
not
going
to
be
a
case
if
you're,
actually
working
with
something
like
this
I'm
going
to
intentionally
make
a
bad
commit
and
better
like
a
change.
A
So
I
want
to
modify
this
file
which
got
created
and
maybe
go
at
the
all
the
way
to
the
bottom,
and
it
can
be
anything
that
you
want
to
make
it.
It
doesn't
have
to
be
this
sentence,
but
the
sentence
I'm
going
to
use
is
a
heady
mid.
Darth
Vader,
which
is
a
totally
autoscope,
is
a
Star
Wars
reference
yeah,
and
you
find
that
he's
a
low
sound
of
a
dart
yeah.
A
So
that's
going
to
be
a
bad,
commit
right
and
then
I'm
going
to
save
that
and
add
and
then
get
commit,
hyphen
M
and
then
intentionally
make
a
malicious
commit.
Okay.
So
now,
if
you
look
at
history,
of
course,
you
will
see
that
it's
obvious
this
is
going
to
be
the
bad
commit,
but
in
the
in
the
lyric
case
scenario,
is
you're
not
going
to
be
figuring
out
what
exactly
the
bad
commit.
A
Okay,
so
now,
as
a
second
Next
Step
we're
going
to
create
this
second
script,
post
generated
bisect,
and
so
we're
going
to
do
that
and
make
executable
and
I'm
going
to
modify
that
and
then
I'm
going
to
copy
and
paste
this.
We
are
almost
done.
This
is
the
last
exercise
and
then
I'm
going
to
learn
the
script,
so
this
will
add
additional
stock.
So
now,
if
you
look
at
our
first
thing,
let's
check
out
the
file.
Let's
check
the
file.
A
If
you
look
at
this
MD
file,
you
know
that
somewhere,
you
like
okay,
I,
see
this,
and
this
doesn't
belong
here.
In
your
case
scenario,
this
might
be
that
commit
or
bad
one
that
breaks
code
or
it
might
even
like
burner
record,
and
you
know
it
happens
somewhere,
but
you're
not
sure
how
did
it
happen?
When
did
it
happen
right?
But
you
know
this
is
a
bad
change
so
and
the
purpose
or
our
our
mission
is
to
find
that
when
did
it
happen
and
do
something
to
fix
it.
A
A
Okay,
this
is
where
the
git
bisect
will
come
in
handy,
so
I'm
going
to
do
start
by
SEC,
X
bisect
by
doing
bisex
start-
and
this
will
start
our
good
bisect,
so
I'm
going
to
look
at
my
graph
again,
okay,
log
history,
again,
typically,
if
you
kind
of
kind
of
when
was
the
dead
last
time
or
when
was
the
very
first
one
that
didn't
like
it,
you
didn't
see
anybody
change
happen.
You
can
guess
that
right.
A
But
in
my
case
let's
have
no
clue
where
that
happens,
I'm
going
to
say
that
I'm
going
to
pick
the
very
first
one
that
I
know
that
at
this
point,
this
something
bad
didn't
happen
so
I'm
going
to
select
that
the
very
first
one
I'm
going
to
mark
it
as
bicycle
like
that
and
then
so.
I
know
that
where
did
I
don't
know?
Where
did
when
it
happened?
Was
it
was
the
last?
You
know
bad
change
happened,
but
in
this
scenario
or
in
the
use
case,
I
know
that
it
happened
somewhere.
A
At
the
end,
I'm
going
to
pick
the
very
the
the
top
one
and
I'm
going
to
Mark
as
bisect
bed,
so
what's
gonna,
what's
this
one
doing
is
that
it's
actually
going
to
break
down
into
the
to
the
buy
into
health,
and
then
you
see
this
is
the
in
the
summer
in
the
middle
and
it
will
try
to
do
like
in
you
can
decide
where
to
go
to
the
next
one
or
the
one
before
by
looking
at
it
is.
This
is
a
the
is
this
a
place?
Where
does
it
have
bad
change
happen?
A
So
now,
let's
check
change.
Let's
say:
look
at
our
file.
I
still
see
that
the
bed-
the
change,
let
me
see
yeah,
think
of
those
I,
don't
see
that
it's
a
bad
change
right.
So
in
this
case
I
know
that
okay,
so
it
had,
it
didn't
happen
in
the
sixth
sentence
like
here
it
didn't
happen
here.
It
has
to
go
a
little
further
in
the
in
the
in
the
timeline
right.
It
has
to
be
somewhere
after
that.
A
A
So
now,
when
I
look
at
this
file,
I
can
see
that
this
is
still
this.
Is
there
so
I
know
that
it
happened
somewhere
between
that.
So
then
I'm
going
to
say
git
bisect
that
and
then
for
I'm
lucky,
because
I
just
found
it
right
away.
This
is
exactly
the
best
change
happened,
so
it
was
kind
of
narrowing
down
by
going
breaking
down
into
half
and
I
picked
the
somewhere
in
the
bottom
half
and
then
I
say.
Is
it
good?
A
So
you
go
to
the
next
one
and
then-
and
they
ring
that
further
and
further
to
get
the
inside
the
pinpoint
at
that
point.
So
now,
if
I
check
that
here,
I
know
that
this
is
exactly
the
where
this
bad
thing
happened.
So
I
have
a
few
Choice.
After
that
I
can
there's
our
bisect
script.
I
mean
command
addition
command.
You
can
use
to
troubleshoot
and
fix
it
or
you
can
just
make
an
additional
command
to
fix
it.
A
I'm
going
to
select
the
easiest
option,
I'm
going
to
just
reset
to
get
it
up
and
I'm
going
to
know
that
this
is
a
bad
change,
so
I'm
going
to
remove
that
and
then
I'm
gonna
fix
it
by
and
then
fixing
it
by
fix
the
bed
change
so
yeah,
so
goodbye
set
as
you
can
see,
it
will
be
really
useful,
too
helpful
tool
to
find
out
that
exactly
where
the
bed
commit
or
the
whatever
the
bad
delicious
commit
happen
and
how
to
troubleshoot-
and
that's
pretty
much
here,
I
think
I'm
right
on
time.
B
A
So
yeah
so,
and
this
link
should
be
available
to
you
to
follow
afterwards
so
yeah.
This
is
a
who
I
am
and
then
yeah
so
I
will
you
can
lead,
and
then
this
is
assembly
link
you
can
follow
me
or
the
YouTube
medium,
whatever
yeah,
and
but
thank
you.
Everyone
get
merger
team
who,
let
me
give
me
opportunity
to
take
in
this
workshop
and
Lee
Lolly
will
help
to
set
up
and
everything
and
my
co-workers,
Prem
and
ND
from
there.
A
Okay
and
Preston
and
the
Andy
somewhere
I
know
he
was
in
there
yeah
to
our
wonderful
worker
in
GitHub
and
then
ask
for
a
service
team,
12,
30
video
content
and
make
it
give
a
constructive
feedback.
Last
but
not
least,
thank
everyone
who
attend
this
event
thanks
so
much
yeah.
That's
it.