git and github for testers

Post on 14-Jan-2017

112 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

T18  Special  Topics  5/5/16  13:30  

Git  and  GitHub  for  Testers  

Presented  by:  

Wilson  Mar  

JetBloom  

Brought  to  you  by:  

350  Corporate  Way,  Suite  400,  Orange  Park,  FL  32073    888-­‐-­‐-­‐268-­‐-­‐-­‐8770  ·∙·∙  904-­‐-­‐-­‐278-­‐-­‐-­‐0524  -­‐  info@techwell.com  -­‐  http://www.stareast.techwell.com/  

Wilson  Mar  JetBloom  

Wilson  Mar  has  been  building  and  bringing  enterprise  applications  to  market  on  major  platforms from  mobile  to  server  clouds as  an  architect,  developer,  performance  tester,  and  manager.  His  website  wilsonmar.com  provides  concise,  in-­‐depth  advice  on  leading  technologies,  especially  on  LoadRunner  and  performance  engineering.  

11

Git and GitHub by @WilsonMar at StarEast 2016

Skype: wilsonmar4 http://wilsonmar.github.io

Java

tool

s po

pula

rity

http://zeroturnaround.com/rebellabs/java-tools-and-technologies-landscape-for-2014/

Intr

oduc

tory

act

iviti

es 1.  Decide on GitHub

2.  Enter the GitHub Ecosystem (Know famous repos) 3.  Code Git-flavored markup on GitHub 4.  Make your own website 5.  Install git command line client 6.  Configure Git environment (SSH) 7.  Setup git GUI client 8.  Analyze and fork a repo on GitHub.com

Dai

ly ta

sks

9.  Configure your repo and workflow on GitHub 10. Configure a repo from GitHub 11. Analyze local repository 12.  Fetch remote changes into local repo 13. Make changes in a local repo 14. Remove files 15.  Stash & un-stash tracked files temporarily 16.  Ignore files in repo and globally 17. Commit changes and amend 18. Test locally and back-out

Scar

y-is

h ta

sks

19. Resolve a conflicting merge condition 20.  Identify differences 21.  Install and try different diff/merge tools 22.  File push request 23. Clean-up locally 24. Process Github repos automatically

Local Git repo.

history

Downloads folder

Git

and

GitH

ub F

ile H

andl

ing

IDE/app

repo-master.zip

folder

file

app default external copies

folder

file manual

copy zip/

copy

Fork Edit

compare (diff)

GitHub.com

repo

@Copyright Wilson Mar 2015. All rights reserved.

your GitHub

.com or hosted repo

upstream

Download

Finder or Windows Explorer

folder

file

Git client

unzip

local machine

GitH

ub E

nter

pris

e

https://enterprise.github.com/home

ª  Launched 2011 for private repos ª  $250/user/year (less under SAP license) ª  24/7 support ª  On-premises OVF under VMware ª  ª  LDAP/AD integration ª  Code review features

GitL

ab E

nter

pris

e vs

. G

itHub

Ent

erpr

ise

https://about.gitlab.com ª  _ ª  $149/user/year (unlimited private repos) ª  24/7 support ª  On-premises on metal (not VMs), clustered ª  Binary files with GitLab Annex ª  LDAP/AD integration ª  Code review with approvals

99

github.com

acct/repo

iOS browser

local

Copyright 2016 by Wilson Mar All rights reserved.

markdown& code

git

acct.github.io

Python

editor

wiki

_site

HTML+ HTML+

browser

/x

grip render

pdf

kindle

browser dillenger.io stackedit.io

CI/CD markdown

ghw API

HTML+

mobi

ePub

AZW

Ruby Jekyll+

gitbook.io, leanpub.com, EC2, etc.

Users:

raw Haroopad, mou.io, etc.

Dropbox

CDN offline

API

HTML+

HTML+

acct/acct.github.io gh-pages

br.

markdown markdown

FTP

Jekyll+ Kramdown

Liquid

Gith

ub F

lavo

red

Hea

ding

s &

Li

nks

Mar

kup

# Heading 1

* [Internal](Heading 1.1)

* <a href=“#Heading1.1”>Internal</a>

<a name=“Heading1.1”> ## Heading 1.1</a>

## Heading 1.2 ###

Gith

ub F

lavo

red

List

Mar

kup

0. List 1

```

text ```

0. List 2

* Item 1 * Item 2

•  ``` denote coding (HTML)

•  3 spaces before ``` to indent

•  ?

Gith

ub F

lavo

red

Tabl

e M

arku

p

| header1 | numbers | | ------- | ------: |

| text 1 | 12.12 |

•  Colon right-aligns

Git

clon

e op

tions

(SSH

)

ssh:user@server:project.git http://server/project.git

git@github.com:user/project.git git://server/project.git via port 9418 file://myrepos/project

/myrepos/project

via port 22 via port 80

via hard link only

git config

git clone git clone

git clone git clone

git clone git clone

ssh-keygen –t rsa –C“me@corp.com” passphrase

~/.ssh/

origin

git client

via port 22

your github

.com or hosted repo

id_rsa id_rsa.pub

Git

wor

kflow

(201

0)

http://nvie.com/posts/a-successful-git-branching-model/

support

Runn

ing

alon

g-si

de

GitHub.com develop

local git

ea2

clone c4b

a87

82e

645

c14

3

feature develop

ea2

c4b

a87

82e

645

c14

1

3 fetch

4 diff fetch 5

push 6

5

6 merge

-b branch

2

6

release master (prod) (staging) (remote) (local)

conflict!

resolved

no conflict

ea2

c4b

a87

82e

645

c14 @Copyright

Wilson Mar 2015. All rights reserved.

push

checkout --branch

diff 2 rebased

3

Agile

Sto

ry B

ranc

h Pa

tter

n

1.  Pull to update your local master 2.  Checkout a feature branch (JIRA) 3.  Do work in your feature branch, committing early and

often 4.  Rebase frequently to incorporate upstream changes 5.  Interactive rebase (squash) your commits 6.  Merge your changes with master 7.  Push your changes upstream

http://reinh.com/blog/2009/03/02/a-git-workflow-for-agile-teams.html

Chea

t She

et

http://zeroturnaround.com/rebellabs/git-commands-and-best-practices-cheat-sheet/

Git

basi

c re

posi

tory

co

mm

ands

git add

git fetch

your github

.com or hosted repo

git pull

staging / index / cache

Working directory

tree

git commit

git push

local git repo.

git merge

git diff

Git

com

man

ds a

nd s

tate

s

git add git commit

git push

git branch

git pull

local git repo.

git checkout branch commit

git revert

git clone git init

staging / index / cache

-- amend

git status -s

.gitignore

git log

git fetch

git remote -v

git stash

git stash pop

Working directory

tree

stack

git stash list

git stash apply

$ mkdir

$ rm -rf

git tag

git rebase -i

.git folder

git merge

git reflog

git diff

git mergetool

@Copyright Wilson Mar 2015. All rights reserved.

staged? modified?

deleted?

HEAD

$ touch git clean $ ls -al

Git client

git config

github repo

your github

.com or hosted repo

master

.gitattributes edit

$ echo

Fork Edit

request Pull

git stash drop

origin

upstream

$ cd

git reset

committed?

pushed?

dev

git shortlog git show

git remote add

git difftool

tracked?

Pers

onal

wor

kflow

1.  clone 2.   pull to update master (keep up) 3.  checkout (feature) branch, story, defect 4.  edit little pieces (test code first?) 5.   unit test 6.  add to local stage 7.  commit 8.  merge local master 9.  rebase squash (combine commits) 10.  (automated) end-to-end test 11. checkout master 12. merge (push) feature upstream

integrate

separate

modify

Life

cycl

e

http://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository#Removing-Files

top related