►
From YouTube: 2022 05 17 Inclusive Naming
Description
15:04 - Git Tips and Tricks
20:05 - Git as a distributed content tracker
32:25 - Fixing mistakes
41:59 - Advanced git with rebase, bisect, gc, and maintenance
43:01 - Why GitHub for open source projects
44:58 - GitHub command line interface "gh"
49:10 - Building and testing a Jenkins plugin
A
A
A
Great
excellent,
well,
thank
you
for
being
here
so
we'll
we.
We
can
be
brief
as
necessary.
So
here's
here's
the
current
sheet.
I
reviewed
yesterday
each
of
the
poll
requests
that
had
not
been
merged,
or
rather
I
looked
specifically
at
things
that
listed
as
changes
and
what
changes
means
is
there
was
a
review
was
performed
as
a
result
of
the
review.
A
A
A
B
Hi
mark
during
the
last
meeting
we
proposed
the
topic.
I
don't
know
if
you
I
remember,
you
wrote
it
down.
A
Okay,
let's
take
a
look
at
this,
the
oh
yes,
I
can
certainly
do
that
if
you,
if
you
would
like
a
recorded
session,
if
you
would
like
that,
I
am
happy
to
do
that
and
that
I'm
more
than
pleased
to
do
I've
got
the
slides
available
and
we
can
do
it.
Thanks
for
the
reminder.
D
A
A
Okay,
great
then,
let's
I'd
just
propose
and
let's
quickly
get
through
these
items
and
then
we'll
we'll
spend
most
of
the
time
and
peace
and
and
catherine
you
can
remain
on
the
line.
The
others
are
welcome
to
be
there
if
they'd
like.
If
you
already
attended
the
session
last
at
when
it
was
presented
on
that
saturday,
you're
certainly
not
required
to
attend
it's.
It's
just
an
introduction
to
using
git
effectively
for
open
source
contributors.
A
A
And
so
now
there
are
two
that
still
need
changes
are
there.
There
are
several,
it's
not
just
two.
There
are
several
that
need
changes,
and
maybe
the
easiest
way
to
see
those
is,
let's
do
a
filtering
here,
so
that
we
don't
have
to
do
anything
other
than
filter.
Okay.
Now,
if
we
just
switch
this
to
state
something
with
changes.
A
Okay,
so
there
are
several
here
that
had
that
the
pull
request
had
been
submitted,
but
a
change
is
needed
in
the
pull
request
and
what
we,
what
I
did
is
I
proposed
the
change
katherine.
What
you'll
need
to
do
is
go
in
accept
that
suggestion
and
then
let
it
commit
it
and
then
I
can
go
ahead
and
approve
it.
A
A
C
Just
a
question
I
did
make
a
couple
of
changes.
I
don't
know
if
you
got
to
see
them.
A
I
I
think
I
did
because
when
I
when
I
visited
these
last
night,
when
I
looked
at
these
last
night
late,
these
are
the
only
ones
most
of
the
others
that
you
had
you
had
submitted.
I
I
reviewed
and
changed
their
state
here.
Let's
clear
the
filter
and.
A
Blanks
there
we
go,
and
so
when,
when
I
went
through
them,
I
went
through
anything
that
had
not
been
reviewed
and
and
marked
it
as
either
left.
The
word
changes
to
say
still
more
changes
are
needed
like
this
one
or
on
others,
where
hey
the
change
had
been
applied,
then
yeah.
So
here
it
is
12
hours
ago.
This
change
needs
to
be
reverted
so
that
one
really
does
need
changes
before
the
contributors
can
can
evaluate
it
or
before
the
maintainers
can
evaluate
it.
C
A
A
This
one,
so
so
this
is
for
me
a
really
very
nice
nicely
done.
Summary
starts
with
headings
I
like
the
headings.
It
helps
me
know
what
sections
I
should
read
over
of
who
who
you
are,
what
the
project
was
more
details
about
the
project
and
then
a
summary
of
hey
here's,
what
we
did
and
here's
how
it
worked.
A
Complications-
and
we
very
much
want
to
know
this
so
getting
in
work.
Environment
set
up-
was
very
challenging
for
peace,
and
we,
we
spent
two
weeks
working
on
this.
We
really
and
therefore
the
feedback
she
provides
saying
hey.
We
need
to
be
sure
this
is
much
easier
for
people
when
they
join
next
year.
A
Those
kinds
of
things
and
experience
gained
is
again
a
good
good
story.
So
for
me,
I
I
think
this
is
an
ideal
way
of
giving
your
final
report
so
take
it.
Take
those
topics
and
fill
in
your
blanks
now.
You
might
also
consider
inserting
links
to
some
of
the
work
that
you
did.
For
instance,
you
might
put
links
in
there
to
the
pull
requests.
A
B
There
was
something
I
thought
of
when
I
was
writing.
Like
am
I
supposed
to
include
other
mentors
like
forgotten,
the
name
anjali.
A
A
B
A
A
A
C
What
go
ahead,
something
else
I
I'd
love
us
to
cover
if
it's
possible
that
that
pipeline
from
the
way
we've
been
working
on
the
plugins
to
now,
I
think
pushing
them
to
get
at
sorry
to
jenkins
and
just
seeing
that
that
workflow,
because
I've
been
wondering
how
how
exactly
jenkins
comes
into
play
with
the
plugins
that
we've
been
working
on.
C
If
at
all,
you
can
still
see
the
work
that
I'm
doing
on
github,
so
just
to
see
those
differences
and
also
to
see
in
in
the
future
how
to
how
to
work
jenkins
generally,
because
I
still
feel
like
the
jenkins
platform
is
a
bit
confusing.
A
C
Yes,
it's
a
it's
a
fair
way
to
say
it
and
also
there's
another
section.
I
think
you
removed,
which
it
did
not
involve
the
current
work
that
we
are
doing,
but
in
case
someone
was
to
adopt
a
plug-in
how
to
make
changes
on
the
plug-in
and
also
to
to
do
the
pull
requests,
pushing
your
work
to
jenkins
and
how
it
relates.
Basically,
in
that
whole
process,.
A
A
A
So,
let's
start
with
with
these,
this
is
a
set
of
hints
that
I
assembled
as
part
of
shecode
africa,
contributon
on
tips
and
tricks
for
git.
So
let's
talk
about
git
in
terms
of
what
it
is,
what
it
does
and
how
it
helps
us
contribute
to
open
source.
So
git
is
fundamentally
a
source
control
system.
Its
job
is
to
track
changes
to
source
code
files
as
they
go
through
time
and
it
was
originally
created
by
linus
torvalds
to
help
him
with
the
linux
kernel.
A
It's
now
widely
used,
93
of
the
70
000
respondents
to
a
stack
overflow
survey
said
that
they
use
git.
Learning
git
is
a
very,
very
good
skill
for
any
software
developer.
Anyone
who's
going
to
deal
with
source
code
is
likely
to
encounter
git
in
their
work
with
it.
So
why
well?
Git
is
an
interesting
source
control
system
because
it
provides
you
a
local
copy
of
the
entire
history
of
the
repository
by
being
a
local
copy
of
the
complete
history.
A
A
A
So,
in
order
to
clone
this
repository,
I
go
to
github
on
the
green
button
here
for
code.
I
click
the
copy
the
to
the
clipboard
there.
It
is,
and
now
I'm
going
to
say,
git
clone
that
repository
and
now
when
I
change
into
that
directory,
the
entire
history
is
from
most
recent
may
of
2022
to
the
original.
Commit
back
in
2016
are
all
included
in
this
repository,
and
I
could
check
out
any
point
in
that
history
with
no
network
traffic
with
no
overhead
and
look
at
that,
I
can
see
branches.
A
A
So
we've
seen
the
clone
we've
seen
the
log.
Now,
let's
see
one
more
step.
What
if
I
want
to
look
at
something
that
somebody
else
was
doing?
Maybe
I
want
to
look
back
in
the
history.
How
did
release
1.4.x
look
I'll?
Do
a
get
checkout
minus
b
that
and
minus
t
origin
slash
that,
so
this
is
going
to
give
me
a
view
of
the
repository
at
release
1.4.x
and
when
I
do
a
git
log,
you'll
see
back
in
2019
liam
did
this
release
and
we
could
read?
A
A
A
Add
this
add
this
add
a
piece
of
this.
They
are
prepared
into
this
thing
that
git
calls
the
staging
area
that
little
yellow
box
and
then
after
I've
prepared
this
subset
of
things
added
them
to
this
staging
area.
Then
I
say:
git
commit
to
push
them
all
the
way
into
the
repository.
Now
all
of
those
option
operations
are
still
completely
local
to
my
computer.
There's
been
no
network
traffic
whatsoever.
Here
I
added
something
to
the
staging
area.
A
A
A
A
A
A
Okay
white
lists:
there
we
go.
A
A
Now
from
there
I'm
going
to
say
git
add,
and
there
are
shortcut
ways
to
do
this.
I
could
say
git,
add
of
the
directory
name
and
it
will
add
everything.
That's
changed
under
that
directory
or
I
could
give
the
whole
file
name
and
it
would
add
just
that
one
file,
or
sometimes
when
I'm
really
lazy,
I
just
say
git,
add
dot
because
that
says
add
everything.
That's
changed
underneath
this
directory,
and
I'm
going
to
do
that.
A
A
A
A
Now
that
I've
I've
put
it
into
the
staging
area,
this
yellow
box,
it's
time
for
the
next
step,
which
is
let's
commit
it,
and
I
actually
like
to
use
the
minus
v
argument
because
it
shows
me
what's
changed
in
preparing
the
commit.
So
what
this
says
is
here,
please
enter
the
commit
message:
it's
going
to
commit
this
file
and
here
in
purple
and
sort
of
cyan.
A
A
A
A
A
A
And
I
realize
oh,
but
I'm
on
the
wrong
branch-
and
I
haven't
finished
my
work
there,
so
the
get
stash
command
will
allow
me
to
save
changes
that
haven't
been
staged.
It
will
no
it'll.
Allow
me
to
save
all
changes
that
haven't
been
committed
and
then
I
can
bring
them
back
later.
So
in
this
case
I
started
modifying
the
readme,
but
I
don't
want
to
include
this
on
this
branch,
so
I'm
going
to
stash
it
now.
If
I
do
a
git
status,
it
shows
me
there's
no
change.
A
A
A
A
A
A
A
And
now,
if
I
wanted
to,
I
could
push
this
to
to
my
branch
to
a
branch
in
my
upstream
repository
with
that
oops
get
push
set
for
upstream.
I
have
to
say
the
correct
branch
name.
Don't
I
oh,
oh
it
remote,
I
don't
have.
I
don't
have
a
way
to
push
it
because
I
haven't
yet
created
my
own
copy,
so
I'm
I'm
temporarily
stuck
we'll
have
to
get
there
in
just
a
minute
on
how
I
push
it
to
make
it
visible
to
others.
C
I
do
have
a
question
that
that
process
of
pulling
repository
and
fetching
the
latest
work.
I
often
see
a
common
challenge
that
developers
face,
and
I
think
is
when
someone
is
trying
to
push
their.
They
are
trying
to
commit
their.
What
but
they're
using
the
wrong
branch?
A
C
So
you
often
see
a
challenge,
especially
when
you're
working
on
a
group
project,
where
I
think
it's
either
trying
to
commit
or
trying
to
pull
trying
to
fetch
the
latest
work
and-
and
you
find
that
this
there's
a
common
challenge
of
trying
to
commit
to
the
wrong
branch
yeah.
So
I
don't
know
if
it's
also
similar
to
what
you've
just
demonstrated
I'm
trying
to,
because
because
I
think
what
you've
done
is
you've
selected
a
specific
branch
instead
of
just
committing
to
the
master
branch
right.
A
A
A
A
This
local
working
directory
to
my
fork:
that's
the
command,
gh
repo
fork,
so
just
a
minute.
Okay,
what
should
be
the
base
repository,
that's
correct
and
add
a
remote
okay.
So
I'm
now
going
to
make
the
mistake
of
even
going
one
mistake
further
and
I'm
going
to
push
my
mistake
up
to
my
central
repository
up
to
the
to
my
fork.
So
if
we
do
this.
A
So
get
branch:
where
are
we
so?
Let's
go
to
this
one,
which
was
let's
see?
Was
this
the
one
oh,
which
one
oh
master,
is
the
one
we
were
making
the
mistake
on
so
we're
on
the
right
branch
and
I'm
going
to
make
the
mistake
worse
by
pushing
it
to
my
origin,
repository
okay.
So
I'm
going
to
get
git
push
origin.
A
Now,
if
we
look
at
what
what
I
just
did,
origin
master
is
ahead
of
or
after
upstream
master,
and
that
says
now.
I've
I've
got
a
problem.
I've
created
this
problem
myself,
but
I've
got
a
problem.
What
am
I
going
to
do
about
my
mistake?
I
didn't
want
this
to
be
on
the
master
branch,
so
the
first
thing
I
do
is
I
create
a
new
branch.
A
A
A
A
A
Updates
were
rejected
because
the
tip
of
your
master
is
behind
its
remote
counterpart,
and
this
is
correct.
It
says
something
exists
on
the
remote
that
doesn't
exist
locally
and
and
that's
because
I
made
the
mistake
of
pushing
it
to
the
remote
so
now
this
is
where
we
pair
programs,
so
bruno
you're
going
to
watch
me
and
we're
going
to
do
a
pair
programming
exercise,
I'm
going
to
make
a
very
dangerous
command.
Now,
I'm
going
to
git
push
minus
minus
force
origin
now.
The
reason
I
I
make
bruno
pair
with
me
on
this
one
is
anytime.
A
A
Oh,
no,
no!
No!
I'm
going
to
do
it
anyway,
bruno
okay!
So
I'm
okay
with
this
all
right!
Thank
you.
So
so
the
reason
for
that
little
bit
of
ceremony
on
be
sure
that
you're
paired
minus
minus
force
is
a
really
dangerous
option.
You
should
think
very
carefully
before
you
ever
use
minus
minus
force.
We've
had
mistakes
happen
in
the
jenkins
project,
where
someone
inadvertently
force
pushed
to
a
number
of
repositories
in
a
loop
and
caused
us
all
sorts
of
surprises
and
problems.
A
A
C
Yes,
it
did
you've
actually
covered
one
of
those
challenges
that
you
often
face.
You
know
when
you
go
through
all
your
options
and
you
find
yourself
thinking.
Should
I
just
force
everything
and
we
will
figure
out
how
you're
around
that
but
yeah
thanks
for
that.
A
Right,
well,
and-
and
one
of
the
other
benefits
here-
is
that
because
git
clones
are
relatively
lightweight
you,
you
have
the
option
of
just
throwing
away
your
entire
directory,
throwing
away
the
whole
thing
and
cloning
a
new
copy
saying
this
is
such
a
mess.
I
don't
want
to
attempt
to
clean
it
up
I'll,
just
delete
the
directory
and
clone
a
new
copy
and
try
again-
and
those
are
also
perfectly
fine.
There's
no
shame
in
saying
it's
easy
to
clone
another
copy,
very
good.
A
A
You
want
to
learn
about
get
rebase,
it's
one
of
those
where
on
your
first
second,
and
maybe
up
through
10th
or
20th
time
using
it,
you
probably
want
to
talk
with
somebody,
because
it's
a
little
complicated
if
you've
got
to
find
a
problem.
Get
bisect.
Is
this
amazing
tool
that
will
do
a
binary
search
of
the
commits
in
your
repository
and
check
them
out
at
various
points?
A
Now
all
those
things
you
can
learn
about
there
are
lots
of
places
that
will
teach
and
tutor
you
on
how
to
do
rebase,
bisect,
gc
and
maintenance.
The
next
piece
of
the
story
was
command
line.
Git
is
great,
but
working
together
on
open
source
project,
most
often
times
means
working
together.
On
github,
and
so
what
github
gives
us
is
a
centralized
repository
where
many
projects
choose
to
store
their
official
copy
of
their
source
code.
A
A
The
crucial
thing
there
that
you've
seen
is
pull
requests
or
how
you
propose
change.
You
submit
a
pull
request:
people
you
don't
have
right
permission
to
the
official
repository
but
you're
proposing
a
change
to
it
anyway,
and
we
get
to
retain
code
review
conversations.
We
chat
back
and
forth.
We
make
proposals
and
ultimately,
we
get
things
merged.
A
It
also
has
the
concept
of
releases
releases.
Allow
us
to
document
what's
happening
in
a
particular
in
a
particular
really
version
of
the
of
the
product.
So,
for
instance,
if
we
look
at
jenkins
core
on
its
repository,
the
releases
just
today,
jenkins
2.348,
released
four
hours
ago,
and
this
tells
us
about
hey
java.
8
is
reaching
end
of
life
for
jenkins
and
there
have
been
some
things
removed
and
some
new
features
all
nicely
documented
by
the
the
github
releases
facility.
A
Now
we
could
talk
through
pull
requests,
but
I
think
you're
you're,
pretty
comfortable
with
pull
requests
and
releases
and
issues
are
just
good
documentation
facilities
if
you're,
okay,
I'd
like
to
go
on
to
the
next
topic,
which
is
how
we
do
github
command
line
interface,
because
this
one
is
one.
I
don't
want
you
to
miss.
A
I
I
really
like-
and
I
showed
you
one
example
already
you
remember.
I
did
gh
repo
fork
that
allowed
me
to
do
the
same
thing
from
a
command
line,
as
I
would
do
from
the
github
user
interface,
where
I
pick
the
fork
button
up
here
when
I
pick
the
fork
button,
it
offers
to
create
a
new
fork
for
me.
Well,
I
did
that
from
the
command
line
and
it
was
very
easy
to
do
and
made
my
life
much
simpler.
A
A
Works
great
what
I
use
it,
the
steps
that
I
need
to
use
to
get
started
with
it
is,
I
start
first
with
the
gh
off
command,
you
authorize
and
what
you
do
when
you
authorize
is
you
you
basically
you're
logging
in,
and
this
will
tell
us
some
of
the
options.
I've
already
done
the
authorization
here
I
did
a
gh
auth
login
and
what
it
then
does
is
it
offers
either.
Would
you
like
to
authenticate
through
your
web
browser?
A
A
A
A
A
521
and
what
it's
going
to
do
is
it
gives
me
a
local
copy
of
catherine's
changes
as
they're
committed
on
that
branch.
Now,
maybe
I
say
I
want
to
help
out
by
merging
master
into
catherine's
branch,
and
now,
when
we
look
at
the
differences
between
her
branch
and
master,
this
is
what
we
see
hey,
that
that
was
good.
A
C
For
now,
no,
though
I
do
have
just
a
confirmation
in
the
earlier
brief
that
we
got,
there
was
a
section
about
tasks
of
building
and
testing
plugins.
So
this
is
the
part
where
java
was
supposed
to
come
in
right.
A
Correct,
okay,
just
wanted
that
confirmation
yeah.
So
if
I
wanted
to
build,
if
I
wanted
to
actually
build
this
plug-in,
I
would
check
what
version
of
java
am
I
running.
Yeah
I've
got
a
java
11,
that's
good
I'd
check
what
version
of
maven
I'm
running.
I've
got
maven
3.8.4,
that's
good
and
then
I
would
just
do
maven
clean
now.
If
I
want
to
skip
tests
for
speed,
I
skip
tests
and
I
do
verify
and
now
it
will,
it
will
compile
this
plug-in
and
you'll
see.
A
And
so
what
it's
doing
now
is
it's
going
through
a
whole
bunch
of
steps
of
compiling
the
code
com,
compiling
the
source
code,
compiling
the
tests
preparing
to
package
the
source
code
package,
the
the
built
binary
ready
to
run
automated
tests,
and
then
it
sees,
I
told
it
to
skip
tests,
so
it
will
skip
them
now,
it's
running
a
static
analysis
tool
called
spot,
bugs
that's
used
to
look
for
common
coding
errors
and
those
kind
of
things
just
keep
going
this
one.
Actually,
oh,
oh!
A
A
A
So
that's
how
you
compile
the
plugin.
That's
that's
part
of
the
exercise
now,
thankfully,
for
this
project
we
didn't
generally
have
to
have
you
compile
the
plugins,
because
most
of
your
changes
would
not
be
involving
source
code
that
would
be
affected
by
the
change
now.
What
did
we
get?
This
one
says:
maybe
it
says
that
I
don't
know
what
to
go?
No
something
else,
so
that
file
also
has
a
problem.
C
B
A
C
Okay,
I've
done
I've
done
an
article
around
open
source
last
week,
so
I'll
mostly
pick
most
of
the
points,
because
I've
covered
a
lot
about
jenkins
and
she
products
I'll
pick
a
lot
of
points
from
them.