diff --git a/elm-init.cabal b/elm-init.cabal
--- a/elm-init.cabal
+++ b/elm-init.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                elm-init
-version:             1.0.1.1
+version:             1.0.2
 synopsis:            Set up basic structure for an elm project
 description:
   Initialize a new empty elm project with some basic scaffolding according to 'https://github.com/evancz/elm-architecture-tutorial'.
@@ -63,9 +63,3 @@
 source-repository head
   type:     git
   location: git://github.com/JustusAdam/elm-init.git
-
-source-repository this
-  type:     git
-  branch:   master
-  location: git://github.com/JustusAdam/elm-init.git
-  tag:      1.0.1.1
diff --git a/src/ElmInit/Types.hs b/src/ElmInit/Types.hs
--- a/src/ElmInit/Types.hs
+++ b/src/ElmInit/Types.hs
@@ -10,6 +10,7 @@
   , makeVersion
   , Version
   , makePackage
+  , showVersion
   , verifyElmVersion
   , readOneVersion
   ) where
@@ -20,10 +21,11 @@
 import           Control.Monad                ((<=<))
 import           Data.Aeson                   as Aeson (ToJSON, Value, object,
                                                         toJSON, (.=))
+import           Data.List                    (intercalate)
 import           Data.Text                    (Text, pack)
 import           Data.Traversable             (sequenceA)
 import           Data.Version                 (Version (Version), parseVersion,
-                                               showVersion)
+                                               versionBranch)
 import           Prelude.Unicode
 import           Text.ParserCombinators.ReadP (readP_to_S)
 
@@ -55,6 +57,9 @@
                              , pkgElmVersion     ∷ Text
                              , pkgSourceDirs     ∷ [Text]
                              }
+
+showVersion :: Version -> String
+showVersion = intercalate "." . map show . versionBranch
 
 
 readVersion ∷ String → [(Version, String)]
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -8,7 +8,7 @@
 import           Control.Applicative         ((<$>), (<*>))
 import           Control.Applicative.Unicode
 import           Control.Arrow               as Arrow (first)
-import           Control.Monad               (join, void, when)
+import           Control.Monad               (join, void, when, unless)
 import           Control.Monad.Unicode
 import           Data.Aeson.Encode.Pretty    (encodePretty)
 import qualified Data.ByteString             as ByteString (ByteString, hPut,
@@ -21,7 +21,7 @@
 import           Data.Text                   as Text (Text, pack, unpack)
 import qualified Data.Text.IO                as TextIO (getLine, putStrLn)
 import           Data.Time
-import           ElmInit.Types               (makeVersion, Version)
+import           ElmInit.Types               (makeVersion, Version, showVersion)
 import           ElmInit                     (CmdArgs (..), Result,
                                               UserDecisions (..), askChoices,
                                               askChoicesWithOther, exists,
@@ -133,7 +133,7 @@
         "initial project version?"
         0
         (verifyElmVersion ∘ unpack)
-        [pack $ show defaultProjectVersion]
+        [pack $ showVersion defaultProjectVersion]
   ⊛ (TextIO.putStrLn "a quick summary" ≫ TextIO.getLine)
   ⊛ (TextIO.putStrLn "project repository url" ≫ TextIO.getLine)
   ⊛ askChoicesWithOther
@@ -223,11 +223,13 @@
 
 initGit ∷ IO ()
 initGit = do
-  TextIO.putStrLn "Shall I initialize a git repository? [Y/n]"
-  answ ← getLine
-  when (answ `elem` ["y", "Y", ""]) $ do
-    ByteString.writeFile ".gitignore" gitignore
-    void $ callProcess "git" ["init"]
+  hasGit <- doesDirectoryExist ".git"
+  unless hasGit $ do
+    TextIO.putStrLn "Shall I initialize a git repository? [Y/n]"
+    answ ← getLine
+    when (answ `elem` ["y", "Y", ""]) $ do
+      ByteString.writeFile ".gitignore" gitignore
+      void $ callProcess "git" ["init"]
 
 
 main ∷ IO ()
