Вставить фиксацию перед корневой фиксацией в Мерзавце?

Проблема связана с межрегиональной. Ваш регион по умолчанию в AWS-CLI может отличаться от региона, в котором вы находитесь. Служба SNS.

Проверьте местоположение AWS-CLI и убедитесь, что вы находитесь в том же регионе, что и ваш SNS.

Чтобы проверить свой регион в AWS CLI, используйте:

aws configure get region

Для настройки региона AWS вы можете использовать команду:

aws configure set region

https://docs.aws.amazon.com/cli/latest/reference/configure/set.html

209
задан Community 23 May 2017 в 02:03
поделиться

4 ответа

Ответ середины 2017

Создание новой абсолютно пустой фиксации без побочных эффектов, вероятно, лучше всего сделан при помощи Git’s, устанавливающего вертикально непосредственно. При выполнении его тот путь избегает любых побочных эффектов: никакое касание рабочей копии или индекса, никакие временные ответвления для чистки, и т.д. Так:

  1. Для создания фиксации нам нужно дерево каталогов для него, таким образом, мы создаем пустой сначала:

    tree=`git hash-object -wt tree --stdin < /dev/null`
    
  2. Теперь мы можем обернуть фиксацию вокруг этого:

    commit=`git commit-tree -m 'root commit' $tree`
    
  3. И теперь мы можем повторно базироваться на это:

    git rebase --onto $commit --root master
    

И that’s это. Можно перестроить ту целую вещь в остроту, если Вы знаете свою оболочку достаточно хорошо.

(N.B.: на практике I’d теперь используют filter-branch. Отредактирует это в позже.)

<час>

Исторический ответ (ссылаемый другими ответами)

Here’s более чистая реализация того же решения, в котором это работает без потребности создать дополнительный репозиторий, futz вокруг с пультами ДУ, и исправить отдельную голову:

# first you need a new empty branch; let's call it `newroot`
git checkout --orphan newroot
git rm -rf .

# then you apply the same steps
git commit --allow-empty -m 'root commit'
git rebase --onto newroot --root master
git branch -d newroot

Вуаля, you’ve закончился на master с его историей, переписанной для включения пустой корневой фиксации.

<час>

нбар.: на старых версиях Мерзавца, которым недостает эти --orphan переключатель к checkout, Вам нужна инфраструктура для создания пустого ответвления:

git symbolic-ref HEAD refs/heads/newroot
git rm --cached -r .
git clean -f -d
287
ответ дан Aristotle Pagaltzis 23 November 2019 в 04:39
поделиться

Ну, вот то, что я придумал:

# Just setting variables on top for clarity.
# Set this to the path to your original repository.
ORIGINAL_REPO=/path/to/original/repository

# Create a new repository…
mkdir fun
cd fun
git init
# …and add an initial empty commit to it
git commit --allow-empty -m "The first evil."

# Add the original repository as a remote
git remote add previous $ORIGINAL_REPO
git fetch previous

# Get the hash for the first commit in the original repository
FIRST=`git log previous/master --pretty=format:%H  --reverse | head -1`
# Cherry-pick it
git cherry-pick $FIRST
# Then rebase the remainder of the original branch on top of the newly 
# cherry-picked, previously first commit, which is happily the second 
# on this branch, right after the empty one.
git rebase --onto master master previous/master

# rebase --onto leaves your head detached, I don't really know why)
# So now you overwrite your master branch with the newly rebased tree.
# You're now kinda done.
git branch -f master
git checkout master
# But do clean up: remove the remote, you don't need it anymore
git remote rm previous
2
ответ дан kch 23 November 2019 в 04:39
поделиться

Запустите новый репозиторий.

Задержите свою дату к дате начала, которую Вы хотите.

Сделайте все способ, которым Вам жаль, что Вы не сделали его, корректируя системное время для отражения, когда Вам было жаль, что Вы не сделали его тот путь. Вытяните файлы из существующего репозитория по мере необходимости для предотвращения большого бесполезного ввода.

Когда Вы добираетесь до сегодня, подкачиваете репозитории, и Вы сделаны.

Если Вы просто сумасшедшие (установленный), но довольно интеллектуальный (вероятно, потому что у Вас должно быть определенное количество ума для продумывания сумасшедших идей как это) Вы напишете сценарий процесса.

Это также сделает это более хорошим, когда Вы решите, что хотите, чтобы прошлое произошло некоторый другой путь неделя с этого времени.

-6
ответ дан MarkusQ 23 November 2019 в 04:39
поделиться

Объединение последнего и самого большого. Никакие побочные эффекты, никакие конфликты, сохраняя теги.

git log --reverse

tree=`git hash-object -wt tree --stdin < /dev/null`
commit=`git commit-tree -m 'Initialize empty repository' $tree`
echo $commit # copy below, interpolation didn't work for me

git filter-branch --parent-filter 'sed "s/^\$/-p <commit>/"' --tag-name-filter cat master

git log --reverse

Примечание, что на GitHub Вы потеряете CI выполненные данные и PR, могло бы быть испорчено, если другие ответвления не фиксируются также.

0
ответ дан 23 November 2019 в 04:39
поделиться
Другие вопросы по тегам:

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