threads / discuss / 47356

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

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

## tl;dr

2 messages between Nov 30, 2017 and Nov 30, 2017.

replies: 1people: 1as markdown or json

David Turner· Nov 30, 2017, 17:05 UTC · lore

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· Nov 30, 2017, 17:10 UTC · re: David Turner · lore

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

On Thu, 2017-11-30 at 12:05 -0500, David Turner wrote:
Show 17 quoted lines
> 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.

← back to recent threads