blob: 4388f0bf7cf01ed90f1e7c8d7c83c5f926dccd1b (
plain) (
tree)
|
|
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename using-git.info
@settitle using git
@afourpaper
@documentencoding UTF-8
@documentlanguage en
@finalout
@c %**end of header
@dircategory Version Control
@direntry
* using git: (using git). Using the Git source control management
@end direntry
@copying
Copyright @copyright{} 2013 Mattias Andrée
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the section entitled
``GNU Free Documentation License''.
@end quotation
@end copying
@ifnottex
@node Top
@top Using Git
@insertcopying
@end ifnottex
@titlepage
@title Using Git
@author by Mattias Andrée (maandree)
@page
@vskip 0pt plus 1filll
@insertcopying
@end titlepage
@contents
@menu
* Getting started::
* GNU Free Documentation License::
@end menu
@node Getting started
@chapter Getting started
@menu
* Create a repository::
* Create an origin::
@end menu
@node Create a repository
@section Create a repository
A repository is a directory under source control,
normally your project you are working on.
Create an empty directory and @command{cd} into it:
@example
mkdir MY_PROJECT
cd MY_PROJECT
@end example
When you are inside the directory for the repository
issus the git command to initialise the repository:
@example
git init
@end example
This command creates a directory namend @file{.git}
inside the directory with all data git requires to
operate on the repository.
The next thing you want to do is to create a
@file{.gitignore} file, it is used to keep track
of with files that should be be included in the
repository, unless overruled with a forced staging.
A good base @file{.gitignore} content you probably
always want to use is:
@example
_/
# It is a good idea to allow the directory _ to
# contain temporary file you do not whant to stage.
.*
# Generally you probably do not want to include
# hidden files.
!.git*
# But you do generally want to include files
starting with .git, such as .gitignore.
\#*\#
*~
*.bak
# And you do not want to include backup files.
@end example
Git parses @file{.gitignore} with wildcards,
@code{#} for comments and @code{!} for inclusion
rather than exclusion, latter entires override
earlier entries.
When you have create you @file{.gitignore} you
are ready to stage it and make your first commit:
@example
git add .gitignore
git commit -n 'first commit'
@end example
@node Create an origin
@section Create an origin
It is a good idea to create a backup repostory,
so you do not lose your work on a disc failure,
filesystem corruption accidental removal.
You can such repostory for allowing collaboration
with a command repository that the collaborators
can all submit and fetch commits from.
This repository is customarly called `origin'.
And it is a bare repository, meaning that it
only hold the data in the @file{.git} directory
and cannot be used as the working directory.
@example
mkcd -p /srv/git/MY_REPOSITORY.git
cd /srv/git/MY_REPOSITORY.git
git init --bare
cd - # Go back to your project respository
git remote add origin file:///srv/git/MY_REPOSITORY.git
git push -u orgin master # master is the bransh you are working in
@end example
It is standard to append @file{.git} to the
end of the repository name when it is bare.
To submit your changes to origin you can now
use the command @command{git push}. To fetch
updates others have made, use the command
@command{git pull}.
@node GNU Free Documentation License
@appendix GNU Free Documentation License
@include fdl.texinfo
@bye
|