# git reset <tree-ish> <paths> of addition of a submodule?

2 messages from 2017-11-30 to 2017-11-30. Participants: David Turner.
Thread: https://gitlist.dev/t/47356

## David Turner, 2017-11-30 17:05

Subject: git reset <tree-ish> <paths> of addition of a submodule?
Message-ID: <1512061507.9882.374.camel@novalis.org>
URL: https://gitlist.dev/e/1512061507.9882.374.camel%40novalis.org

```
git submodule add https://my-git-repo blort
git commit -m 'add a submodule'
git reset HEAD^ blort

The reset deletes the gitlink, but does not delete the entry in
.gitmodules.  On one hand, this is exactly what the user asked for --
they wanted the path 'blort' to be changed in the index, and that's
what they got.  On the other hand, the behavior differs from git rm,
and seems confusing: most folks don't want an entry in .gitmodules
which doesn't correspond to a gitlink.  

If reset isn't the right thing for me to do when I want to say "oops"
about adding a submodule, then what is?  I could do:
git reset HEAD^ blort .gitmodules
but what if I added two submodules and only wanted to undo the addition
of one?



```

## David Turner, 2017-11-30 17:10

Subject: Re: git reset <tree-ish> <paths> of addition of a submodule?
Message-ID: <1512061858.9882.375.camel@novalis.org>
URL: https://gitlist.dev/e/1512061858.9882.375.camel%40novalis.org
In-Reply-To: <1512061507.9882.374.camel@novalis.org>

```
On Thu, 2017-11-30 at 12:05 -0500, David Turner wrote:
> git submodule add https://my-git-repo blort
> git commit -m 'add a submodule'
> git reset HEAD^ blort
> 
> The reset deletes the gitlink, but does not delete the entry in
> .gitmodules.  On one hand, this is exactly what the user asked for --
> they wanted the path 'blort' to be changed in the index, and that's
> what they got.  On the other hand, the behavior differs from git rm,
> and seems confusing: most folks don't want an entry in .gitmodules
> which doesn't correspond to a gitlink.  
> 
> If reset isn't the right thing for me to do when I want to say "oops"
> about adding a submodule, then what is?  I could do:
> git reset HEAD^ blort .gitmodules
> but what if I added two submodules and only wanted to undo the
> addition
> of one?


Also, resetting the deletion of a submodule has an even worse issue --
you end up with a gitlink but no entry in .gitmodules.


```
