====== Git ======
===== Links =====
* Git Book [[https://git-scm.com/book/pl/v2 | PL ]] [[ https://git-scm.com/book/en/v2 | ENG ]]
* [[ http://git.asic.fis.agh.edu.pl/ ]]
===== Administrators =====
* Git administrators : **Kuba Moron**, **Krzysztof Swientek**
===== Using Git =====
==== Help ====
It goes without saying that the book exists to be a source of information and assistance for GIT users new and old. Conveniently, though, the GIT command-line is self-documenting, alleviating the need to grab a book off the shelf (wooden, virtual, or otherwise). The git help command is your gateway to that built-in documentation:
$ git help
or for particular command
$ git help COMMAND
==== Starting svn/git shell ====
Before you start using git you have to start **svnshell**. It's not a mistake. You really should run svnshell to work with git! The main function of this script is to simplify key management, you will be asked only once to enter yours pass-phrase at script startup (if you don't like this script you may configure your ssh client in different way). Script is pre-installed on all production servers (koi, ibm). To start shell, just type:
svnshell
You should see modified prompt :
[SVN] promt$
**Notes:**
* script assumes existence of public/private-key named **svn** and **svn.pub** in yours **.ssh** directory (''.ssh/svn'' and ''.ssh/svn.pub'')
* script doesn't have any significant dependencies you may copy it to you workstation and use it
* script source is in ''svn : cds_etc/trunk/etc/svn_scripts/svnshell''
==== Getting repository ====
To get local copy (clone) of repository :
git clone git@asic.fis.agh.edu.pl:REPOSITORY_NAME
or optionally to have different local directory name
git clone git@asic.fis.agh.edu.pl:REPOSITORY_NAME LOCAL_DIRECTORY_NAME
If you have local definition of asic server IP (most of machines) a short version will also work
git clone git@asic:REPOSITORY_NAME
==== Update/Pull ====
To download most recent version form repository use:
git pull
==== Adding ====
To add new resource (file or directory) use:
git add file
**NOTE:** Be careful, adding directory means adding directory itself and all files inside it.
**NOTE:** In fact this command only adds the files to next commit, so you can put here a new or already tracked files.
==== Committing ====
In Git all commits are local, so after committing you should send your data to server.
To commit (remember) yours changes use:
git commit
**NOTE:** It will remember only files added to commit by **git add**
You can commit all changed files (already tracked by git) without using **git add** by:
git commit -a
You may also commit only specific resource:
svn commit filename
In addition you may provide commit comment from command line using **-m** option:
git commit -m "comment to my commit"
==== Sending to server ====
To send all your commits to server use
git push
==== Deleting ====
To remove resource (file / directory) use:
git rm file
==== Reverting ====
To cancel your changes (revert to file version remembered in repository) use:
git checkout -- file
==== Checking status ====
To check the status of your local repository copy use
git status
To check changes done by you and other users do
git log
or in graphical form
gitk