Во-первых, он не имеет хорошего, чтобы иметь более одного файла settings.gradle - он смотрит только на верхний уровень.
Когда вы получаете эта ошибка «Конфигурация с именем» по умолчанию «не найдена», это действительно запутанно, но это означает, что Gradle ищет файл (или файл build.gradle) где-то, и он не находит его. В вашем случае это у вас в файле settings.gradle :
include ':libraries:Android-Bootstrap',':Android-Bootstrap'
, который заставляет Gradle искать библиотеку в FTPBackup / libraries / Android-Bootstrap . Если вы используете чувствительную к регистру файловую систему (и вы не ошибались библиотеки в своем вопросе, когда вы имели в виду библиотеки ), он может не найти FTPBackup / Библиотеки / Android-Bootstrap из-за разницы в случае. Он также ищет другую библиотеку в FTPBackup / Android-Bootstrap , и она определенно не найдет ее, потому что этого каталога там нет.
Это должно работать:
include ':Libraries:Android-Bootstrap'
В блоке dependencies
вам нужна такая же чувствительная к регистру спецификация:
compile project (':Libraries:Android-Bootstrap')
Предполагая, что ваша ветка называется master
как здесь, так и удаленно, и что ваш пульт называется origin
, вы можете сделать:
git reset --hard <commit-hash>
git push -f origin master
Однако вам следует избегать этого, если кто-либо еще работает с вашим удаленным репозиторием и вытащил ваши изменения. В этом случае было бы лучше вернуть те коммиты, которые вы не хотите, а затем нажимать как обычно.
Обновление: у вас есть объяснил ниже, что другие люди вытащили те изменения, которые вы нажали, поэтому лучше создать новую фиксацию, которая возвращает все эти изменения. Есть хорошее объяснение ваших вариантов для этого в этом ответе от Jakub Narębski . Какой из них наиболее удобен, зависит от количества фиксаций, которые вы хотите вернуть, и какой метод имеет для вас наибольший смысл.
Поскольку из вашего вопроса ясно, что вы уже использовали git reset --hard
для сброса настроек master
], вам может потребоваться начать с git reset --hard ORIG_HEAD
, чтобы переместить ветку назад туда, где она была раньше. (Как всегда с git reset --hard
, убедитесь, что git status
чист, что вы находитесь на правильной ветке и знаете, что вы знаете git reflog
как инструмент для восстановления явно потерянных коммитов.) Вы также должны проверить, что ORIG_HEAD
указывает на право фиксации с помощью git show ORIG_HEAD
.
Сделайте одно, получите SHA команды. например, 87c9808, а затем,
: не удалось нажать некоторые ссылки на « https://github.com/YOURREPOSITORY/AndroidExperiments.git »: Обновления были отклонены, потому что подсказка вашей текущей ветки отстает от намека: ее удаленная копия. Интеграция удаленных изменений (например, подсказка: «git pull ...») перед повторным нажатием. **
- Таким образом, теперь вы можете сделать
git push --force origin master
- И, таким образом, я надеюсь, что он работает:)
Мои два цента к предыдущим ответам: если
git push --force <remote> <the-hash>:<the remote branch>
все еще не работает, вы можете отредактировать раздел приема <your-remote-repo>.git/config
файла:
[receive]
#denyNonFastforwards = true
denyNonFastforwards = false
Изучить раздел: Отменить публичные коммиты с возвратом в блог Atlassian https://www.atlassian.com/git/tutorials/resetting-checking-out-and-reverting
В GitLab вам, возможно, придется отключить свою ветку до этого. Это можно сделать в режиме [репо]> Настройки> Репозиторий> Защищенные ветви. Затем работает метод из ответа Марка.
git reset --hard <commit-hash>
git push -f origin master
Если ваш филиал не является разработкой или производством, самый простой способ достичь этого - сменить его на определенную фиксацию локально и создать там новую ветку. Вы можете использовать:
git checkout 000000
(где 000000 - идентификатор фиксации, куда вы хотите пойти) в вашей проблемной ветке, а затем просто создать новую ветку:
git remote add [name_of_your_remote]
Затем вы можете создать новый PR, и все будет работать нормально
Я решил эту проблему, как ваша, с помощью следующих команд:
git reset --hard <commit-hash>
git push -f <remote> <local branch>:<remote branch>
Если вы хотите использовать предыдущую версию файла, я бы порекомендовал использовать git checkout.
git checkout <commit-hash>
. Это приведет к возврату вас вовремя, это не повлияет на текущее состояние вашего проекта, вы может прийти на mainline git checkout mainline
, но когда вы добавляете файл в аргумент, этот файл возвращается вам из предыдущего времени в текущее время проекта, то есть ваш текущий проект изменяется и ему необходимо
git checkout <commit-hash> -- file_name
git add .
git commit -m 'file brought from previous time'
git push
Преимущество этого заключается в том, что он не удаляет историю, а также не отменяет определенные изменения кода (git revert)
Подробнее здесь https://www.atlassian.com/git/tutorials/undoing-changes#git-checkout
Используйте другие ответы, если вы не против потери локальных изменений. Этот метод может по-прежнему разрушать ваш пульт, если вы выберете неправильный хэш хешей, чтобы вернуться к нему.
Если вы просто хотите, чтобы удаленное совпадение выполнялось с фиксацией, которая уже находится в вашей локальной ветке:
git log
, чтобы найти хеш фиксации, которую хотите, чтобы пульт был включен. git log -p
, чтобы увидеть изменения, или git log --graph --all --oneline --decorate
, чтобы увидеть компактное дерево. [Имеет этот последний в качестве псевдонима в вашей оболочке очень удобно.) git push --force <remote> <the-hash>:<the remote branch>
, например. git push --force origin 606fdfaa33af1844c86f4267a136d4666e576cdc:master
git update-ref
вместоreset --hard
; это позволит вам сделать то же самое без наличия рабочего дерева / проверенной ветки – sehe 28 April 2011 в 10:59revert
, но, допустим, хочу вернуть последние 4 коммита, чтобы я сделалgit revert comit1; git push; git revert comit2; git push; ...
или простоgit revert commit4; git push
? – nacho4d 28 April 2011 в 11:06git revert commit4
создает новую фиксацию, которая отменяет изменения, введенные вcommit4
. Как ответ, который я связывал с указаниями, вы можете перевести их в одну фиксацию. – Mark Longair 28 April 2011 в 11:34.git
с refs, которые они не собирались создавать. Я был неправ, чтобы сказать, что никаких проверок безопасности нет. Вы можете найти классификацию в "сантехника" и "фарфор" команды на странице git man . – Mark Longair 28 April 2011 в 11:55