Чомусь я зараз не можу натиснути, тоді як я міг би це зробити вчора. Можливо, я заплутався з налаштуваннями чи щось.
Ось що відбувається:
Коли я використовую master git push origin
Як виглядає мій робочий каталог та віддалене сховище:
Чомусь я зараз не можу натиснути, тоді як я міг би це зробити вчора. Можливо, я заплутався з налаштуваннями чи щось.
Ось що відбувається:
Коли я використовую master git push origin
Як виглядає мій робочий каталог та віддалене сховище:
Відповіді:
Якщо репортаж GitHub бачив, що нові комісії підштовхуються до нього, поки ви працювали на місцях, я б радив використовувати:
git pull --rebase
git push
Повний синтаксис:
git pull --rebase origin master
git push origin master
З Git 2.6+ (вересень 2015 р.), Після цього (раз)
git config --global pull.rebase true
git config --global rebase.autoStash true
Простих git pull
буде досить.
(Примітка: з Git 2.27 Q2 2020 , a merge.autostash
також доступний для вашої звичайної тяги, без відновлення)
Таким чином, ви б перегравати (в --rebase
частині) локальні коммітов на вершині недавно оновлений origin/master
(або origin/yourBranch
: git pull origin yourBranch
).
Дивіться більш повний приклад у главі 6 Витягніть із основою книги Git Pocket Book .
Я рекомендую:
# add and commit first
git push -u origin master
Це встановило б зв'язок відстеження між вашою локальною гілкою та її гілкою.
Після цього будь-який майбутній поштовх для цієї гілки можна зробити простим:
git push
Див. " Чому мені потрібно явно натиснути нову гілку? ".
Оскільки Оперативна програма вже скинула і повторно взяла на себе зобов'язання поверх origin/master
:
git reset --mixed origin/master
git add .
git commit -m "This is a new commit for what I originally planned to be amended"
git push origin master
Не потрібно pull --rebase
.
Примітка: git reset --mixed origin/master
також можна записати git reset origin/master
, оскільки --mixed
параметр є типовим для використання під час використання git reset
.
Хтось намагався:
git push -f origin master
Це повинно вирішити проблему.
EDIT: Грунтуючись на коментарі @Mehdi нижче, мені потрібно щось уточнити
—force pushing
. Команда git вище працює безпечно лише для першого введення. Якщо вже було зроблено комітети, витягніть запити чи гілки в попередніх, це скидає все це та встановить його з нуля. Якщо так, то для кращого вирішення зверніться до детальної відповіді @VonC.
-f
/ замість цього --force
завжди безпечніше використовувати --force-with-lease
, що перерве, якщо будуть зміни в нижній частині течії, які будуть зациклюватися натисканням --force-with-lease
потрібен для безлічі повсякденних ситуацій із звільненням, але --force
майже ніколи не потрібен.
Якщо ви щойно використовували git init
та додавали свої файли з git add .
чимось подібним і додали вашу віддалену гілку, можливо, ви просто не зробили ( git commit -m 'commit message'
) нічого локального, щоб натиснути на пульт ... У мене була просто ця помилка, і це була моя проблема.
У мене була така ж проблема. У мене виникла ця проблема, тому що я не взяв жодного зобов’язання навіть на початкові зобов’язання, і все ще намагався натиснути.
Колись я це зробив git commit -m "your msg"
і тоді все працювало нормально.
Перейменуйте свою філію та натисніть, наприклад:
git branch -m new-name
git push -u new-name
Це працювало для мене.
my-branch_wont_push
. Одного разу я перейменував це my_branch_wont_push
, потім git push -u origin my_branch_wont_push
працював на мене.
Я знаходжу рішення цієї проблеми в довідці github.
Ви можете бачити це з: Помилка з помилками, що не переходять вперед
Він говорить:
Ви можете виправити це шляхом вилучення та об'єднання змін, які були зроблені на віддаленій гілці, із змінами, які ви внесли локально:
$ git fetch origin
# Fetches updates made to an online repository
$ git merge origin branch
# Merges updates made online with your local work
Або ви можете просто використовувати git pull для виконання обох команд одночасно:
$ git pull origin branch
# Grabs online updates and merges them with your local work
git init
git remote add origin https://gitlab.com/crew-chief-systems/bot
git remote -v
(для перевірки поточного сховища)
git add -A
(додати всі файли)
git commit -m 'Added my project'
git pull --rebase origin master
git push origin master
Я зіткнувся з тією ж проблемою, виправленою нижче кроками.
git init
git add .
git commit -m 'Add your commit message'
git remote add origin https://User_name@bitbucket.org/User_name/sample.git
(Вище URL-адреса https: //User_name@bitbucket.org/User_name/sample.git посилається на ваш URL-адресу проекту біт-відра)
git push -u origin master
натяк
перевірте, чи зв’язаний ваш обліковий запис git hub з місцевим git, використовуючи:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
перед тим, як натиснути, ви повинні додати або зробити зміни або зробити git push -f origin master
Я дотримувався наступних кроків, і це працювало на мене.
rm -rf .git
git init
git add .
git commit -m"first message"
git remote add origin "LINK"
git push -u origin master
Це може статися, коли у вас немає файлів. Спробуйте створити текстовий файл, після чого виконайте наступні команди
git add .
git commit -m "first commit"
git push --set-upstream origin master
Я створив порожнє репо в GitHub і мій код локально. Я зіткнувся з тією ж проблемою і зараз, коли дотримувався нижченаведеної послідовності,
git init
git commit -m 'Initial Commit'
git remote add origin https://github.com/kavinraju/Repo-Name.git
git add .
git push -u origin master
ВИПУСК: Я намагався вчинити перед тим, як ставити файли, які у мене є.
Тож нам потрібно складати файли і потім вчиняти.
Це правильна послідовність.
git init
git add .
git commit -m 'Initial Commit'
git remote add origin https://github.com/kavinraju/Repo-Name.git
git push -u origin master
Оскільки я спочатку виконую неправильну послідовність, я просто виконую наступні команди
git add .
git commit -m 'Initial Commit'
git push -u origin master
Не впевнений, чи це стосується, але для мене виправданням було зробити щось місцеве після git init. Потім я натиснув на віддалений за допомогою --set-upstream ...
Створення нової гілки для мене вирішено:
git checkout -b <nameOfNewBranch>
Як очікувалося, немає необхідності в об'єднанні, оскільки попередня філія повністю містилася в новій.
git push origin feature22-fix
, але feature22-fix
не виходив ні з локального, ні з віддаленого, тому мені довелося спочатку
Якщо ви намагаєтеся ініціалізувати каталог із наявним сховищем GitHub, вам слід переконатися, що ви вносите зміни.
Спробуйте створити файл:
touch initial
git add initial
git commit -m "initial commit"
git push -u origin master
Це дозволить розмістити файл з ім'ям початкового, який ви можете видалити пізніше.
Сподіваюся, що ця відповідь допомагає! Удачі!
У моєму випадку саме мій husky
пакунок відключає поштовх.
> husky - pre-push hook failed (add --no-verify to bypass)
> husky - to debug, use 'npm run prepush'
error: failed to push some refs to 'https://username@bitbucket.org/username/my-api.git'
Щоб натиснути його насильно, просто запустіть
git push origin master --no-verify
Я побіг npm run prepush
переглядати помилку, і це було причиною:
npm ERR! code ELOCKVERIFY
npm ERR! Errors were found in your npm-shrinkwrap.json, run npm install to fix them.
npm ERR! Invalid: lock file's loopback-utils@0.8.3 does not satisfy loopback-utils@^0.9.0
Побіг npm install
і вчинив це, і проблема виправлена.
Спробуйте цю команду git,
git push origin master –f
git push origin master --force