diff --git a/dvc/exceptions.py b/dvc/exceptions.py
--- a/dvc/exceptions.py
+++ b/dvc/exceptions.py
@@ -286,3 +286,11 @@ def __init__(self, url):
         super(UrlNotDvcRepoError, self).__init__(
             "URL '{}' is not a dvc repository.".format(url)
         )
+
+
+class GetDVCFileError(DvcException):
+    def __init__(self):
+        super(GetDVCFileError, self).__init__(
+            "the given path is a DVC-file, you must specify a data file "
+            "or a directory"
+        )
diff --git a/dvc/repo/get.py b/dvc/repo/get.py
--- a/dvc/repo/get.py
+++ b/dvc/repo/get.py
@@ -2,8 +2,9 @@
 import os
 import shortuuid
 
+from dvc.stage import Stage
 from dvc.config import Config
-from dvc.exceptions import NotDvcRepoError, UrlNotDvcRepoError
+from dvc.exceptions import NotDvcRepoError, UrlNotDvcRepoError, GetDVCFileError
 from dvc.path_info import PathInfo
 from dvc.external_repo import external_repo
 from dvc.state import StateNoop
@@ -17,6 +18,9 @@
 def get(url, path, out=None, rev=None):
     out = out or os.path.basename(urlparse(path).path)
 
+    if Stage.is_valid_filename(out):
+        raise GetDVCFileError()
+
     # Creating a directory right beside the output to make sure that they
     # are on the same filesystem, so we could take the advantage of
     # reflink and/or hardlink. Not using tempfile.TemporaryDirectory

diff --git a/tests/func/test_get.py b/tests/func/test_get.py
--- a/tests/func/test_get.py
+++ b/tests/func/test_get.py
@@ -3,7 +3,7 @@
 
 import pytest
 
-from dvc.exceptions import UrlNotDvcRepoError
+from dvc.exceptions import UrlNotDvcRepoError, GetDVCFileError
 from dvc.repo import Repo
 
 from tests.utils import trees_equal
@@ -46,3 +46,8 @@ def test_get_repo_rev(repo_dir, erepo):
 def test_get_from_non_dvc_repo(git_erepo):
     with pytest.raises(UrlNotDvcRepoError):
         Repo.get(git_erepo.root_dir, "some_file.zip")
+
+
+def test_get_a_dvc_file(repo_dir, erepo):
+    with pytest.raises(GetDVCFileError):
+        Repo.get(erepo.root_dir, "some_file.dvc")

get: error while fetching DVC-file
`dvc get` is to download data artifacts, but if the user hasn't this clear, they might try to `get` a DVC-file and the error is not that clear.

```
❯ dvc get https://github.com/iterative/dvc scripts/innosetup/dvc.ico.dvc
ERROR: failed to get 'scripts/innosetup/dvc.ico.dvc' from 'https://github.com/iterative/dvc' - unable to find DVC-file with output '../../../tmp/tmpbzwhrmqcdvc-repo/scripts/innosetup/dvc.ico.dvc'
```

I suggest showing a message to guard from this behavior:
```
ERROR: failed to get 'scripts/innosetup/dvc.ico.dvc' from 'https://github.com/iterative/dvc' - this is a DVC-file, you must specify the path of an output
```

tests/func/test_get.py::test_get_repo_file tests/func/test_get.py::test_get_repo_dir tests/func/test_get.py::test_get_repo_rev tests/func/test_get.py::test_get_from_non_dvc_repo tests/func/test_get.py::test_get_a_dvc_file