2. What I expect
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
3. What I expect
I You already used Git
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
4. What I expect
I You already used Git
I You know how to commit
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
5. What I expect
I You already used Git
I You know how to commit
I You know how to branch
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
6. What I expect
I You already used Git
I You know how to commit
I You know how to branch
I You know remotes
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
7. Motivation
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
8. Motivation
I OSS Projects migrate: Zend Framework, phpBB, PHPUnit, ...
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
9. Motivation
I OSS Projects migrate: Zend Framework, phpBB, PHPUnit, ...
I Bigger projects have more complex workflows
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
10. Motivation
I OSS Projects migrate: Zend Framework, phpBB, PHPUnit, ...
I Bigger projects have more complex workflows
I Git is at the beginning of the tech lifecycle
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
11. Beispiel
developer
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
12. A typical work flow
Edit
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
13. A typical work flow
Edit Commit
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
14. A typical work flow
Edit Commit
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
15. A typical work flow
Edit Commit Publish
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
16. Feature Branch
„Every feature on a branch“
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
17. Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
18. Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
19. master
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
20. master
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
21. master
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
22. feature-x
master
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
23. feature-x
master
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
24. feature-x
master
DAG (Directed Acyclic Graph)
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
25. master
feature-y
git checkout feature-y git rebase master
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
26. master
feature-y
git checkout feature-y git rebase master
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
27. master
feature-y
git checkout feature-y git rebase master
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
28. master
feature-y
git checkout feature-y git rebase master
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
29. Branch and Rebase
Commit
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
30. Branch and Rebase
Commit Rebase
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
31. Branch and Rebase
Commit Rebase
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
32. Branch and Rebase
Commit Rebase Merge
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
33. Interactive Rebasing
git rebase -i bf0225ae pick / rotate squash
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
34. Interactive Rebasing
feature-y
git rebase -i bf0225ae pick / rotate squash
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
35. Interactive Rebasing
bf0255ae
feature-y
git rebase -i bf0225ae pick / rotate squash
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
36. Interactive Rebasing
bf0255ae
feature-y
git rebase -i bf0225ae pick / rotate squash
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
37. Interactive Rebasing
bf0255ae
feature-y
git rebase -i bf0225ae pick / rotate squash
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
38. Interactive Rebasing
bf0255ae
feature-y
git rebase -i bf0225ae pick / rotate squash
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
39. „Never rebase branches that you pulled or
pushed. Rebase local branches only!“
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
40. Index
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
41. $ git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: README.md
#
no changes added to commit (use "git add" and/or "git commit -a")
$ git commit
no changes added to commit (use "git add" and/or "git commit -a")
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
42. Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
43. working directory index repository
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
44. working directory index repository
git add [file]
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
45. working directory index repository
git add [file]
git stage [file]
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
46. working directory index repository
git add [file]
git stage [file]
git commit
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
47. working directory index repository
git add [file]
git stage [file]
git commit
git commit -a
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
48. static int run_builtin(struct cmd_st
+ int status, help;
struct stat st;
const char *prefix;
prefix = NULL;
help = argc == 2 && !strcmp(argv[1],
if (!help) {
if (p->option & RUN_SETUP)
prefix = setup_git_directory();
+ if (use_pager == -1 && p->option
+ use_pager = check_pager_c
+ if (use_pager == -1 && p->option
+
}
use_pager = 1;
Commit
commit_pager_choice();
git add -p
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
49. static int run_builtin(struct cmd_st
+ int status, help;
struct stat st;
const char *prefix;
prefix = NULL;
help = argc == 2 && !strcmp(argv[1],
if (!help) {
if (p->option & RUN_SETUP)
prefix = setup_git_directory();
+ if (use_pager == -1 && p->option
+ use_pager = check_pager_c
+ if (use_pager == -1 && p->option
+
}
use_pager = 1;
Commit
commit_pager_choice();
git add -p
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
50. New concepts
New possibilities
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
51. Project
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
52. externe Module
submodules
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
53. phpBB
git init phpBB
git submodule add git://..../zf2.git Zend Framework 2
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
54. phpBB
git.zendframework.com
Zend Framework 2
git init phpBB
git submodule add git://..../zf2.git Zend Framework 2
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
55. phpBB
Zend Framework 2 git.zendframework.com
Symfony 2 git.github.com
git clone git submodule init git submodule update
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
56. phpBB
Zend Framework 2 git.zendframework.com
Symfony 2 git.github.com
git clone git submodule init git submodule update
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
57. phpBB
Zend Framework 2 git.zendframework.com
Symfony 2 git.github.com
git clone git submodule init git submodule update
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
58. mr obvious says: Git is not subversion
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
59. system integration
Administration
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
60. Windows
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
61. CRLF
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
62. CRLF
I There is no svn:eol-style
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
63. CRLF
I There is no svn:eol-style
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
64. CRLF
I There is no svn:eol-style
I Modifications but no commit possible?
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
65. CRLF
I There is no svn:eol-style
I Modifications but no commit possible?
I git config core.autocrlf true
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
66. CRLF
I There is no svn:eol-style
I Modifications but no commit possible?
I git config core.autocrlf true
I git help config
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
67. FileMode
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
68. FileMode
I Windows Share or FAT filesystem change your exec bit?
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
69. FileMode
I Windows Share or FAT filesystem change your exec bit?
I git config core.fileMode false to the rescue
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
70. Server
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
71. Server
I No git daemon
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
72. Server
I No git daemon
I No symlinks (FAT filesystem)
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
73. Server
I No git daemon
I No symlinks (FAT filesystem)
I git config core.symlinks true
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
74. Reflog
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
75. Reflog
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
76. Reflog
I Your No 1. tool for recovery
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
77. Reflog
I Your No 1. tool for recovery
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
78. Reflog
I Your No 1. tool for recovery
I learn it, it‘s IMPORTANT!
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
79. HEAD@{1}
git checkout test git checkout master git branch -D test
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
80. HEAD@{1}
git checkout test git checkout master git branch -D test
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
81. Git can be tricky...
...but it‘s simple once you
understood it.
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
82. Summary
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
83. Summary
I DAG and Rebase
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
84. Summary
I DAG and Rebase
I Index
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
85. Summary
I DAG and Rebase
I Index
I Submodule
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
86. Summary
I DAG and Rebase
I Index
I Submodule
I Reflog
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
87. More....
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
88. More....
I Concepts
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
89. More....
I Concepts
I Storage format
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
90. More....
I Concepts
I Storage format
I Refspecs
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
91. More....
I Concepts
I Storage format
I Refspecs
I Remotes
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
92. More....
I Concepts
I Storage format
I Refspecs
I Remotes
I Cool features
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
93. More....
I Concepts
I Storage format
I Refspecs
I Remotes
I Cool features
I Bisect
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010
94. More....
I Concepts
I Storage format
I Refspecs
I Remotes
I Cool features
I Bisect
I Notes
Advanced Git I Mayflower GmbH I Jun 1 2010 I
1,
Montag, 14. Juni 2010