5 ответов:
во-первых, убедитесь, что вы можете нажать вручную без ввода пароля. Если вы нажимаете на HTTP или HTTPS, это будет случай либо создание
.netrcфайл с логином или добавление имени пользователя и пароля в URL для удаленного. Если вы используете SSH, вы можете либо создать пару ключей, где закрытый ключ не имеет пароля, либо использоватьssh-agentкэш ваш закрытый ключ.затем вы должны создайте исполняемый файл (
chmod +xфайл) в.git/hooks/post-commit, который содержит следующее:#!/bin/sh git push origin master... настройка этой строки, Если вы хотите нажать на пульт, отличный от
origin, или нажмите ветку, отличную отmaster. Убедитесь, что вы делаете этот файл исполняемым.
Если вы начинаете использовать больше, чем основная ветвь, вы можете автоматически нажать текущую ветвь. Мой крюк (
.git/hooks/post-commit) выглядит так:#!/usr/bin/env bash branch_name=`git symbolic-ref --short HEAD` retcode=$? non_push_suffix="_local" # Only push if branch_name was found (my be empty if in detached head state) if [ $retcode = 0 ] ; then #Only push if branch_name does not end with the non-push suffix if [[ $branch_name != *$non_push_suffix ]] ; then echo echo "**** Pushing current branch $branch_name to origin [i4h_mobiles post-commit hook]" echo git push origin $branch_name; fi fiон толкает текущую ветвь, если он может определить имя ветви с помощью Git symbolic-ref.
"как получить текущее название филиала в Git? " имеет дело с этим и другими способами, чтобы получить текущее название филиала.
автоматический толчок для каждой ветви может быть тревожным при работе в задаче ветви, где вы ожидаете некоторые колбасу делать случиться (вы не сможете легко перебазировать после нажатия). Таким образом, крючок не будет толкать ветви, которые заканчиваются определенным суффиксом (в Примере "_local").
создайте файл с именем "post-commit".каталог git/hooks с содержимым "git push", хотя если вы хотите автоматически предоставить пароль, поэтому потребуется модификация.
этой git-autopush скрипт позволяет настроить крюк после фиксации, подобный тому, что было рекомендовано в "как настроить автоматическое толкая?".
Но для парольной фразы, вам нужно запуститьssh-agent.
вот простая инструкция для нажатия / вытягивания без предоставления парольной фразы через ssh для людей, использующих Linux и Windows (git bash)
на ваш клиент:
проверьте, если у вас есть SSH-ключи генерируются:
$ ls ~/.ssh/id_rsa.pub; ls ~/.ssh/id_dsa.pub /c/Users/Cermo/.ssh/id_rsa.pub <-- I have RSA key ls: cannot access '/c/Users/Cermo/.ssh/id_dsa.pub': No such file or directoryЕсли у вас нет ключа (два "ls: не удается получить доступ ..."линии") генерируют новый. Если у вас есть какие-либо ключи, пропустите этот шаг.
$ ssh-keygen.exe Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/Cermo/.ssh/id_rsa): Enter passphrase (empty for no passphrase): <-- press Enter Enter same passphrase again: <-- press Enterскопируйте ключ на удаленный сервер из которого вы хотите вытащить или нажать с помощью git:
$ ssh-copy-id user_name@server_name /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys user_name@server_name's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'user_name@server_name'" and check to make sure that only the key(s) you wanted were added.Примечание: Вы должны предоставить пароль во время этой операции. После этого ваши операции pull/push не будут запрашивать пароль.
примечание 2: вы должны войти на сервер с помощью user_name по крайней мере один раз перед использованием этой процедуры (домашний каталог, в который копируются ключи ssh создается во время первого входа в систему)
Comments