Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
ff6dac56
Unverified
Commit
ff6dac56
authored
Oct 19, 2023
by
Marc Cornellà
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix(git): fix smart cd to cloned directory in `gccd` function
parent
f79647db
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
2 deletions
+9
-2
git.plugin.zsh
plugins/git/git.plugin.zsh
+9
-2
No files found.
plugins/git/git.plugin.zsh
View file @
ff6dac56
...
...
@@ -166,8 +166,15 @@ alias gclean='git clean --interactive -d'
alias
gcl
=
'git clone --recurse-submodules'
function
gccd
()
{
command
git clone
--recurse-submodules
"
$@
"
[[
-d
"
$_
"
]]
&&
cd
"
$_
"
||
cd
"
${${
_
:t
}
%.git
}
"
# get repo URI from args based on valid formats: https://git-scm.com/docs/git-clone#URLS
local
repo
=
"
${${
@[(r)(ssh
://
*|git
://
*|ftp(s)#
://
*|http(s)#
://
*|*@*)(.git/#)#]
}:-
$_
}
"
# clone repository and exit if it fails
command
git clone
--recurse-submodules
"
$@
"
||
return
# if last arg passed was a directory, that's where the repo was cloned
# otherwise parse the repo URI and use the last part as the directory
[[
-d
"
$_
"
]]
&&
cd
"
$_
"
||
cd
"
${${
repo
:t
}
%.git/#
}
"
}
compdef _git
gccd
=
git-clone
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment