Перейти к основному содержанию

Организация проектов с помощью gclone

20 September 2024 | 302 words | tags: #tips #git

Ранее у меня все проекты хранились в одной директории. То есть я создавал в домашней директории нечто вроде Projects и затем все что делал сам, или находил на просторах интернета, размещал на одном уровне в этой директории.

Спутся время разобраться во всем этом было проблематично. И не так давно я выработал определенный принцип организации проектов на жестком диске.

Как и раньше, я создаю одну директорию для хранения исходных кодов интересующих проектов. Но затем я провожу клонирование в поддридектории в зависимости от их источника. К примеру https://github.com/juev/juev.org размещаю в директории ~/src/github.com/juev/juev.org. Теперь организация стала понятной и даже спустя время исходя из местоположения проекта понятно, где он размещается в интернете. Так же понятно, что относиться к моим проектам, а что взято из интереса.

Но каждый раз создавать весь путь вручную надоедает, отнимает время. И для того, чтобы упростить этот процесс, я создал проект gclone . Установить можно с помощью go:

go install github.com/juev/gclone@latest

либо взять бинарник со страницы релизов . Теперь необходимо определить переменную окружения GIT_PROJECT_DIR, которая будет указывать на директорию, куда будет проводиться клонирование. Например:

GIT_PROJECT_DIR="~/src" gclone https://github.com/juev/gclone.git 

Команда создаст директорию ~/src/github.com/juev/gclone, в которую будет склонирован проект. Для fish я определил две функции, которые дополнительно упрощают работу с исходным кодом:

function gcd --argument repo
    if test "$argv[1]" = ""
        echo "argument is empty"
        return
    end
    cd $(gclone $argv[1])
end
function gcode --argument repo
    if test "$argv[1]" = ""
        echo "argument is empty"
        return
    end
    code $(gclone $argv[1])
end

первая команда gcd, которая проводит клонирование репозитория в новую директорию, и затем меняет текущую директорию на директорию проекта. И вторая команда gcode, которая так же создает директории, проводит клонирование и затем открывает эту директорию в vscode.

Вроде минимальные изменения, но значительно упростили жизнь. Часто использую созданные команды в своем воркфлоу.

Надеюсь проект окажется полезным и для вас. Если будут вопросы или замечания, создавайте issue .