Changes for page Getting Started with Git

Last modified by Bastian Triller on 2013/05/21 17:24

From version 210.1
edited by Kieran Kelleher
on 2012/01/20 08:26
Change comment: less is more
To version 215.1
edited by Bastian Triller
on 2013/04/21 15:06
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.kieran
1 +XWiki.btriller
Content
... ... @@ -16,6 +16,7 @@
16 16  ** Scott Chacon (of GitHub) Video Intro [[http://www.youtube.com/watch?v=ZDR433b0HJY]]
17 17  ** [[This>>http://www.eecs.harvard.edu/~~cduan/technical/git/]] is an excellent tutorial on the basic concepts behind Git
18 18  ** [[Git for Computer Scientists>>http://eagain.net/articles/git-for-computer-scientists/]] gives another good view on the underlying concepts
19 +** [[Git For Ages 4 And Up>>https://lca2013.linux.org.au/wiki/Tutorials/Git_For_Ages_4_And_Up]]: video tutorial ([[mp4>>http://mirror.internode.on.net/pub/linux.conf.au/2013/mp4/Git_For_Ages_4_And_Up.mp4]], [[YouTube>>http://www.youtube.com/watch?v=1ffBJ4sVUb4]])
19 19  * Learn the basics.
20 20  ** [[Everyday GIT With 20 Commands Or So>>http://schacon.github.com/git/everyday.html]]
21 21  ** [[Free Online Pro Git book>>http://progit.org/book/]]
... ... @@ -110,6 +110,14 @@
110 110  * During setup, gitolite creates the file /.ssh/authorized//keys in the gitolite user account. Ensure it has permissions of 600. If not change it//
111 111  * If other system users such as apache, chiliproject or redmine need [[read access to the gitolite repositories to allow integration>>http://www.giocc.com/public-repositories-in-gitolite-with-umasks.html]], then you probably want to change the $REPO//MASK configuration value from 0077 to 0027 in the [[gitolite configuration file>>http://sitaramc.github.com/gitolite/rc.html]]//
112 112  
114 +=== Gitlab - Self hosted Git management software ===
115 +
116 +From the [[Gitlab>>http://gitlab.org/]] homepage:
117 +
118 +GitLab is a fast, secure and stable solution to manage your projects.
119 +It is based on Ruby on Rails and has a free and open-source license (MIT).
120 +GitLab is the most installed git management application in the world.
121 +
113 113  = Unique Git Concepts =
114 114  
115 115  === Rebasing ===
... ... @@ -171,3 +171,19 @@
171 171  git reset --hard
172 172  
173 173  {{/code}}
183 +
184 +=== Stash to Clean and Checkout from Stash to Work ===
185 +
186 +Say that you have several different things going on in your project at any one time. How can you seperate them to check something in? You know about the "git stash" command, which cleans up your project. But what if you want part of the dirtiness, but not all of it?
187 +
188 +Suppose you have file1.java, file2.java, file3.java, and file4.java. You have a single feature implemented in file1.java and file3.java and those edits stand on their own. If you are going to check in just file1.java and file3.java, you should test them on their own, without your other changes. First, do a "git stash". A "git status" will show you have no staged changes. Now do:
189 +
190 +{{code}}
191 +
192 +git checkout stash@{0} -- file1.java
193 +git checkout stash@{0} -- file3.java
194 +
195 +{{/code}}
196 +
197 +Now you have your two files and not the others and you can build and test them in a clear project before you check them in
198 +One odd thing I noticed is this. The "git diff" you were doing before the stash will show your changes. Now you have to do "git diff HEAD". Not completely sure why, but there it is.