Andrzej GrzesikKonrad MalawskiLunarLogicPolska
Ask them right away!
a distributed                open source                              version control system
is also      fast         reliable             powerful                  popular
•    it is too new•    not tested•    does not provide backups (sic!)•    does not like windows•    does not support ...• ...
Git is "simple" but hard.Subversion is "easy", but eventually complex.                                                    ...
git config --global user.name Sheldon Coopergit config --global user.email bazinga@bigbang.comgit config --global color.ui...
•    cherry-pick•    rebase (interactive)•    interactive add•    submodules•    git svn•    git sh
# initialize a submodulegit submodule add git://llp.pl/common.git common# initial pull of its contentsgit submodule init# ...
cd commongit pullcd ..# Warning! Add the dir without trailing "/”git add commongit commit -m "Latest common submodule comm...
... or "Why merge isnt enough?"
https://github.com/ktoso/maven-git-commit-id-plugin
Keeping commit info in UI of the running app,results in better (or less!) bug reports :-)
Or expose full details, for developers only@InjectGitRepositoryState repoState;@GET@Path("/git")public GitRepositoryState ...
De facto standard of viewing git-based repositoriesJust point it to the repoWorks through Apache and CGI
simple, read/write permissionsper-repositoryssh-key based authenticationbut its trivial to expose config file via f.ex. Gr...
online code review(like ReviewBoard, but better ;-))also hosts git repositories      review commits before they enter a br...
    with some help        by the power of Jenkins,             allows to have pre-tested commits
Git immersion:http://library.edgecase.com/git_immersion/index.htmlOn branching with Githttp://nvie.com/posts/a-successful-...
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Effective Git
Upcoming SlideShare
Loading in …5
×

Effective Git

1,823 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,823
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
17
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Effective Git

  1. 1. Andrzej GrzesikKonrad MalawskiLunarLogicPolska
  2. 2. Ask them right away!
  3. 3. a distributed open source version control system
  4. 4. is also fast reliable powerful popular
  5. 5. •  it is too new•  not tested•  does not provide backups (sic!)•  does not like windows•  does not support ...•  its not subversion
  6. 6. Git is "simple" but hard.Subversion is "easy", but eventually complex. Thomas Nicolaisen (http://blog.tfnico.com/2011/11/some-thoughts-on-git-vs-complexity.html)
  7. 7. git config --global user.name Sheldon Coopergit config --global user.email bazinga@bigbang.comgit config --global color.ui true
  8. 8. •  cherry-pick•  rebase (interactive)•  interactive add•  submodules•  git svn•  git sh
  9. 9. # initialize a submodulegit submodule add git://llp.pl/common.git common# initial pull of its contentsgit submodule init# pull pointed to commit (and overwrite your changes)git submodule update
  10. 10. cd commongit pullcd ..# Warning! Add the dir without trailing "/”git add commongit commit -m "Latest common submodule commit"
  11. 11. ... or "Why merge isnt enough?"
  12. 12. https://github.com/ktoso/maven-git-commit-id-plugin
  13. 13. Keeping commit info in UI of the running app,results in better (or less!) bug reports :-)
  14. 14. Or expose full details, for developers only@InjectGitRepositoryState repoState;@GET@Path("/git")public GitRepositoryState getRepoState(){ return repoState;} { "branch" : "testing-maven-git-plugin", "commitTime" : "06.01.1970 @ 16:16:26 CET", "commitId" : "787e39f61f99110e74deed68ab9093088d64b969", "commitIdAbbrev" : "787e39f", "commitUserName" : "Konrad Malawski", "commitUserEmail" : "konrad.malawski@java.pl", "commitMessageFull" : "releasing my fun plugin :-) + fixed some typos + cleaned up directory structure + added license etc", "commitMessageShort" : "releasing my fun plugin :-)", "buildTime" : "06.01.1970 @ 16:17:53 CET", "buildUserName" : "Konrad Malawski", "buildUserEmail" : "konrad.malawski@java.pl" }
  15. 15. De facto standard of viewing git-based repositoriesJust point it to the repoWorks through Apache and CGI
  16. 16. simple, read/write permissionsper-repositoryssh-key based authenticationbut its trivial to expose config file via f.ex. Grails frontend
  17. 17. online code review(like ReviewBoard, but better ;-))also hosts git repositories review commits before they enter a branch
  18. 18.     with some help        by the power of Jenkins,             allows to have pre-tested commits
  19. 19. Git immersion:http://library.edgecase.com/git_immersion/index.htmlOn branching with Githttp://nvie.com/posts/a-successful-git-branching-model/Pro Git book (creative commons)www.progit.orgGit-scm.comGit.wiki.kernel.org

×