aboutsummaryrefslogtreecommitdiff
path: root/doc/rcs/gitmanual.mdwn
blob: d61b8c2e4ae35ea49292b16299d388e5328ea3ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Main use case I am trying to accomplish: Edit wiki pages offline.

1. Imagine you're the administrator of the site and you want to checkout the wiki sources to give them some love while on a train journey.
2. Or you are writing a complex document and you want to simply use your favourite $EDITOR
3. Learn a little more about [git](http://git.or.cz/)

# Workflow

## on webconverger.org/si.dabase.com/hendry

Wiki page created with [ikiwiki](http://ikiwiki.info). Example usb.mdwn [usb](http://webconverger.org/usb/)

## on monty (my laptop)

I wonder why a "pull" doesn't just init a repo like a "svn co" does?

I think I should have used `git-clone ssh://si.dabase.com/home/hendry/wikiwc/.git/`

    monty:~/git-testing% git-init
    Initialized empty Git repository in .git/

You might want to set some config variables like your email as this [tutorial](http://www.kernel.org/pub/software/scm/git/docs/tutorial.html) describes.

    monty:~/git-testing% git-pull ssh://si.dabase.com/home/hendry/wikiwc/.git/
    warning: no common commits
    remote: Generating pack...
    remote: Done counting 746 objects.
    remote: Deltifying 746 objects...
    remote:  100% (746/746) done
    Indexing 746 objects...
    remote: Total 746 (delta 443), reused 723 (delta 431)
     100% (746/746) done
    Resolving 443 deltas...
     100% (443/443) done

    echo "blah" >> usb.mdwn
    monty:~/git-testing% git-commit -a -m "added test"
    Created commit d3507df: added test
     1 files changed, 1 insertions(+), 0 deletions(-)

I think I should have used `git push origin` here...

    monty:~/git-testing% git-push ssh://si.dabase.com/home/hendry/wikiwc/.git/
    updating 'refs/heads/master'
      from 75a4a8e94e5fff2a4beced1574e772742d3f9847
      to   d3507dfe19b469e61a728d1b0a833a5f480f5802
    Generating pack...
    Done counting 5 objects.
    Result has 3 objects.
    Deltifying 3 objects...
     100% (3/3) done
    Writing 3 objects...
     100% (3/3) done
    Total 3 (delta 2), reused 0 (delta 0)
    refs/heads/master: 75a4a8e94e5fff2a4beced1574e772742d3f9847 -> d3507dfe19b469e61a728d1b0a833a5f480f5802


## on webconverger.org/si.dabase.com/hendry

    hendry:239$ git-status 
    # On branch master
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #       modified:   usb.mdwn
    #
    # Untracked files:
    #   (use "git add <file>..." to include in what will be committed)
    #
    #       .ikiwiki/

Great, we see the usb.mdwn file has been modified. Now we need to check it out to update the local work tree (and the wiki?)

    hendry:242$ git-checkout master usb.mdwn


# Stuff I am confused about

* this master/origin stuff
* why do I have to explicitly say the filename "usb.mdwn" for it to be updated?
* why do I have to explicitly have to write the url if I am going a git-pull again? I know I can alias it, but why can't it just pull from the last source?
* how ikiwiki interfaces with git. does it have its own working copy? or is it the files simply in ~/wikiwc?
* I know git-push seems unpopular (git-pull seems to have the emphasis), though I think it is really convenient

# Ack

Thanks to gitte on #git on Freenode