Git tutorial, getting started with Git
Below is a short comprehensive description of getting Git up and running in just a few minutes. I personally use OSX as a development machine and so the installation part of Git will cover an installation on OSX. If you like to install Git on another platform please take a look at the Git installation documentation. There are a lot of other ways to install Git, but the one described below seems to bring the least hassle on OSX.
Install Git and add your first project
- First download the installer at the Google Git OSX installer project, http://code.google.com/p/git-osx-installer/downloads/list after running the installer you are good to go.
- After this easy GUI installation it’s time to startup the terminal, although if you really are into GUI’s you can also download and install OpenInGitGui which can be found at http://code.google.com/p/git-osx-installer/wiki/OpenInGitGui. In your terminal go to the directory where your website is located and initialize a new repository here.
$cd site_directory
$git init
You should now get a response like “Initialized empty Git repository in site_directory/.git/”. The next step is to add the current directory and all of its contents to the repository.
$git add .
$git commit -m "Initial import"
You will now see that all files and directories are committed.
Basically this is it, nothing more to it. You could now start working with Git. Off course we can configure the Git installation just a little bit to set things right.
Basic configuration of Git, ignoring files and configuring the user settings
Whenever you will type “git status” on the current directory you will see if there are any changes that need to be committed, if so you can add them with the “commit” command like we did before. One of the first problems that you will bump into is that your cache files will also be committed. I personally don’t want to commit automatically created cache files or user content. So how can we deal with this? We can create a “.gitignore” file in the root of our project. You can find an example of the .gitignore file below.
*.cache
files
Now any file that has the *.cache extension will be ignored, also all the user content in the files directory will be ignored. This keeps our repository clean. By executing “git show” after committing the .gitignore file you will see that our ignore rules are correctly interpreted.
When you view the Git commit log of the project (“git log”) you will see that Git has already automatically used an author name and email address in the commits we did so far. These values are automatically detected by Git that examined your system configuration. You can change your name and email by executing the following commands:
$git config --global user.name Sjoerd Maessen
$git config --global user.email youremail@address.com
Taking advantage of Git
Off course we didn’t install Git just to add one project and change some basic settings. The power in any version control system is to make checkouts, revert and diff changes. Below you can find some basic commands that you will need to master.
$git checkout thepath
$git diff commitid1 commitid2
$git diff -- filepath
$git revert commitid1
The commands are pretty self explaining like all other commands of Git. If you already worked with other version control systems their is one thing to be aware of, “git revert” doesn’t behave like “svn revert” for example. “Git revert” will do a new commit to reverse a previous one, if you would like to undo your changes you should use “git checkout” instead. The things I have showed above are only small aspects of what Git is capable of. Cloning repo’s, tagging, branching, patching and resolving conflicts are all aspects that will make your life a lot easier, check them out at the Git community book
One more thing
There are some Git GUI repository browsers available that let you view who, why and when something was committed. One that is easy to setup and PHP only is viewgit, give it a try it will just run from your webserver!
http://viewgit.sourceforge.net
https://t.me/Official_1xbet_1xbet/1775
Josephadvem
17 Oct 25 at 7:26 pm
https://t.me/s/Official_1xbet_1xbet/1792
Josephadvem
17 Oct 25 at 7:30 pm
https://t.me/Official_1xbet_1xbet/1676
Josephadvem
17 Oct 25 at 7:58 pm
https://t.me/Official_1xbet_1xbet/1651
Josephadvem
17 Oct 25 at 7:58 pm
https://t.me/s/Official_1xbet_1xbet/1811
Josephadvem
17 Oct 25 at 8:01 pm
https://t.me/s/Official_1xbet_1xbet/1658
Josephadvem
17 Oct 25 at 8:28 pm
https://t.me/s/Official_1xbet_1xbet/1788
Josephadvem
17 Oct 25 at 8:31 pm
https://t.me/s/Official_1xbet_1xbet/1680
Josephadvem
17 Oct 25 at 8:57 pm
https://t.me/s/Official_1xbet_1xbet/1683
Josephadvem
17 Oct 25 at 9:00 pm
https://t.me/s/Official_1xbet_1xbet/1720
Josephadvem
17 Oct 25 at 9:26 pm
https://t.me/s/Official_1xbet_1xbet/1708
Josephadvem
17 Oct 25 at 9:29 pm
https://t.me/s/Official_1xbet_1xbet/1641
Josephadvem
17 Oct 25 at 9:55 pm
https://t.me/s/Official_1xbet_1xbet/1779
Josephadvem
17 Oct 25 at 9:58 pm
https://t.me/Official_1xbet_1xbet/1621
Josephadvem
17 Oct 25 at 10:24 pm
https://t.me/s/Official_1xbet_1xbet/1742
Josephadvem
17 Oct 25 at 10:28 pm
https://t.me/s/Official_1xbet_1xbet/1777
Josephadvem
17 Oct 25 at 10:53 pm
https://t.me/s/Official_1xbet_1xbet/1613
Josephadvem
17 Oct 25 at 10:57 pm
https://t.me/Official_1xbet_1xbet/1679
Josephadvem
17 Oct 25 at 11:22 pm
https://t.me/Official_1xbet_1xbet/1794
Josephadvem
17 Oct 25 at 11:25 pm
https://t.me/s/Official_1xbet_1xbet/1688
Josephadvem
17 Oct 25 at 11:50 pm
https://t.me/Official_1xbet_1xbet/1770
Josephadvem
17 Oct 25 at 11:53 pm
https://t.me/s/Official_1xbet_1xbet/1787
Josephadvem
18 Oct 25 at 12:19 am
https://t.me/Official_1xbet_1xbet/1649
Josephadvem
18 Oct 25 at 12:23 am
https://t.me/s/Official_1xbet_1xbet/1723
Josephadvem
18 Oct 25 at 12:35 am
https://t.me/s/Official_1xbet_1xbet/1710
Josephadvem
18 Oct 25 at 12:52 am
https://t.me/s/Official_1xbet_1xbet/1767
Josephadvem
18 Oct 25 at 1:17 am
https://t.me/Official_1xbet_1xbet/1683
Josephadvem
18 Oct 25 at 1:21 am
https://t.me/s/Official_1xbet_1xbet/1626
Josephadvem
18 Oct 25 at 1:45 am
https://t.me/s/Official_1xbet_1xbet/1689
Josephadvem
18 Oct 25 at 1:48 am
https://t.me/Official_1xbet_1xbet/1694
Josephadvem
18 Oct 25 at 1:59 am
https://t.me/s/Official_1xbet_1xbet/1832
Josephadvem
18 Oct 25 at 2:12 am
https://t.me/Official_1xbet_1xbet/1829
Josephadvem
18 Oct 25 at 2:16 am
https://t.me/Official_1xbet_1xbet/1776
Josephadvem
18 Oct 25 at 2:40 am
https://t.me/s/Official_1xbet_1xbet/1781
Josephadvem
18 Oct 25 at 2:44 am
https://t.me/Official_1xbet_1xbet/1738
Josephadvem
18 Oct 25 at 3:09 am
https://t.me/s/Official_1xbet_1xbet/1607
Josephadvem
18 Oct 25 at 3:13 am
https://t.me/s/Official_1xbet_1xbet/1836
Josephadvem
18 Oct 25 at 3:37 am
https://t.me/Official_1xbet_1xbet/1787
Josephadvem
18 Oct 25 at 3:41 am
https://t.me/Official_1xbet_1xbet/1716
Josephadvem
18 Oct 25 at 4:06 am
https://t.me/s/Official_1xbet_1xbet/1839
Josephadvem
18 Oct 25 at 4:10 am
https://t.me/s/Official_1xbet_1xbet/1806
Josephadvem
18 Oct 25 at 4:36 am
https://t.me/Official_1xbet_1xbet/1759
Josephadvem
18 Oct 25 at 4:39 am
https://t.me/Official_1xbet_1xbet/1718
Josephadvem
18 Oct 25 at 5:04 am
https://t.me/s/Official_1xbet_1xbet/1685
Josephadvem
18 Oct 25 at 5:08 am
https://t.me/s/Official_1xbet_1xbet/1782
Josephadvem
18 Oct 25 at 5:33 am
https://t.me/s/Official_1xbet_1xbet/1719
Josephadvem
18 Oct 25 at 5:37 am
https://t.me/s/Official_1xbet_1xbet/1729
Josephadvem
18 Oct 25 at 6:01 am
https://t.me/s/Official_1xbet_1xbet/1736
Josephadvem
18 Oct 25 at 6:05 am
https://t.me/s/Official_1xbet_1xbet/1724
Josephadvem
18 Oct 25 at 6:31 am
https://t.me/s/Official_1xbet_1xbet/1716
Josephadvem
18 Oct 25 at 6:35 am