Changes between Version 4 and Version 5 of WorkingWithGit


Ignore:
Timestamp:
06/13/08 21:06:43 (6 years ago)
Author:
mso
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WorkingWithGit

    v4 v5  
    1313Unlike some other SCM like cvs or svn, git is sort of decentralised since you work locally with full-featured repository in which you can even have local development branches, etc. That means you can do many changes to the repository when working offline and than just '''push''' the changes to the master repository, but it also means that 
    1414 
    15 git commit  
     15{{{ git commit }}} 
    1616 
    1717will make changes only to the local repository, unlike cvs. 
     
    2121This is the easiest step, since all you need to do (as root) is 
    2222 
    23 yum install git-all 
     23{{{ yum install git-all }}} 
    2424 
    2525which will install the basic git commands as well as some useful extras (like simple gui that helps managing your git repository). 
     
    2929Now that you've set up git, you need to copy the master repository so that you can make changes locally. In order to do so, navigate into a folder you'd like to keep your echo-icon-theme git repository in and issue 
    3030 
    31 git clone ssh://git.fedorahosted.org/git/echo-icon-theme 
     31{{{ git clone ssh://git.fedorahosted.org/git/echo-icon-theme }}} 
    3232 
    3333which will make a exact copy of the master repository in your disk. After the repository is cloned, you can start browsing - it has normal directory structure and the only directory that has something to do with git, is the hidden .git directory. 
     
    3535''Note'': The command above expects that you have a working fedora account and you are member of gitecho-icon-theme group. We use this one, because it simplifies life a little more after you want to push your changes back to master repository - the ssh access is read & write. If you don't need to push your changes back or you don't have ssh access, you can use 
    3636 
    37 git clone git://git.fedoraproject.org/echo-icon-theme 
     37{{{ git clone git://git.fedoraproject.org/echo-icon-theme }}} 
    3838 
    3939== Setting up local branches == 
     
    4343First go to the echo-icon-theme directory you just git-cloned and issue 
    4444 
    45 git gui 
     45{{{ git gui }}} 
    4646 
    4747A not so nice, but pretty usable app shows up ;-) You can even do your commits from there. But not yet. Now go to Repository -> Visualise All Branch History. Another window shows up. Try to play with it a little, if you screw up your repository, you can always start from scratch by deleting it and cloning it again (or restoring it from a backup copy, if you had done any). After you feel comfortable with it, find a branch you want to track localy (master branch is already tracked by default) - as an example we use 0.3.x. Right-click on the commit message and select Create new branch, as shown in the example image. 
     
    5252 
    5353[[Image(makebranch.png)]] 
     54 
     55Now you need to tell git to synchronise your branch with the remote one. Go to .git folder and open the config file in there. It should look similar to that: 
     56 
     57{{{ 
     58[core] 
     59        repositoryformatversion = 0 
     60        filemode = true 
     61        bare = false 
     62        logallrefupdates = true 
     63[remote "origin"] 
     64        url = ssh://git.fedorahosted.org/git/echo-icon-theme 
     65        fetch = +refs/heads/*:refs/remotes/origin/* 
     66[branch "master"] 
     67        remote = origin 
     68        merge = refs/heads/master 
     69}}} 
     70 
     71Now add there a new branch section following the example of master branch. In our example the final config file will look like this: 
     72 
     73{{{ 
     74[core] 
     75        repositoryformatversion = 0 
     76        filemode = true 
     77        bare = false 
     78        logallrefupdates = true 
     79[remote "origin"] 
     80        url = ssh://git.fedorahosted.org/git/echo-icon-theme 
     81        fetch = +refs/heads/*:refs/remotes/origin/* 
     82[branch "master"] 
     83        remote = origin 
     84        merge = refs/heads/master 
     85[branch "0.3.x"] 
     86        remote = origin 
     87        merge = refs/heads/0.3.x 
     88}}} 
    5489 
    5590== Switching between branches ==