Создание/загрузка личных проектов в определенную папку GIT (каждая папка имеет свой собственный «.git» )ЛОКАЛЬНЫЙ СЕРВЕР GIT

#!/bin/bash
#set -x
#Please pass document library path
SOURCE='/crypto/home/hl/tmp/stackexchange/dir_groups/source'
DEST='/crypto/home/hl/tmp/stackexchange/dir_groups/target'
declare -a target_dir_indexes
cd "$SOURCE" || exit 1
for dir in *; do
    test "$DEBUG" = 'yes' && echo "$dir"
    test -d "$dir" && ! test -L "$dir" || continue
    if ! [[ "$dir" =~ ^(0|[1-9][0-9]*)$ ]]; then
        echo "error: dir name '${dir}'; skipping"
        continue
    fi
    target_index=$((dir/50000))
    if [ "$dir" -gt 0 ]; then
        if [ $((dir%50000)) -eq 0 ]; then
            ((target_index--))
        fi
    fi
    target_dir_name=$(((target_index+1)*50000))
    target_dir_path="${DEST}/${target_dir_name}"
    # avoid unneccessary calls to mkdir or the VFS
    if [ -z "${target_dir_indexes[target_index]}" ]; then
        mkdir -p "$target_dir_path"
        target_dir_indexes[target_index]=1
    fi
    echo "${dir} is moved to ${target_dir_name}"
    mv -i "$dir" "$target_dir_path"
done
0
21.12.2020, 22:57
1 ответ

Я думаю, вам нужно использовать команду git clone <dir_project1>, чтобы сначала клонировать главный проект, а затем использовать git checkout -b <new_branch_name>для создания новой ветки и работы с файлом клонированного проекта с выбранной веткой.

Чтобы проверить, какая ветка выбрана, запустите git checkoutэто отобразит список всех доступных веток (звездочка укажет, в какой ветке вы сейчас работаете)

После того, как вы проверили новую ветку, вы можете начать вносить изменения в каталог вашего проекта.Все изменения, сделанные сейчас, выполняются через только что созданную ветку. Таким образом, вы не будете изменять свою основную ветку, пока не протестируете и не будете на 100% уверены, что хотите зафиксировать/объединить свои изменения в основную ветку. (мы доберемся до этой части ближе к концу)

После того, как вы каким-либо образом изменили каталог, (добавив файл или изменив существующий файл/каталог ), используйте команду git add <insert_file_here.txt>, чтобы git понял, что вы внесли изменения в этот файл.

Затем вы должны зафиксировать изменения, чтобы навсегда сохранить их в этой ветке. Обычно перед вашей первой фиксацией вы должны использовать git config, который будет содержать ваше имя пользователя или адрес электронной почты, чтобы указать, кто вносит эти изменения.

бывший:git config --global user.email EMAILgit config --global user.name “FULL NAME"

Но в данном случае, поскольку все это локально и кажется, что вы будете единственным, кто будет работать с этими файлами, вы можете пропустить этот шаг и сделать свой первый локальный коммит:

git commit -m «Первый черновик файла project.txt»

(-m используется для описания вносимых вами изменений, которые отобразятся, если вы запуститеgit diff <filename>)

Теперь вместо использования push/pull (, которое в основном используется для удаленных репозиториев )для локальной конфигурации git, вы можете просто использовать команду git merge.

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

git checkout master
git merge dir_project1

Мне удалось найти способ отправить сообщение в локальную ветку, если вы предпочитаете делать это таким образом:

git push. dir_project1:master
0
18.03.2021, 22:41

Теги

Похожие вопросы