ローカルリポジトリにコミットするたびに自動的にリモートレポ(パスフレーズの自動提供を含む)にプッシュするようにgitを設定しますか?gitでコミットした後に自動的にプッシュする方法は?
答えて
まず、パスワードを入力せずに手動でプッシュできることを確認します。 HTTPまたはHTTPSを押している場合は、creating a .netrc
file with the login detailsまたはadding your username and password into the URL for the remoteのいずれかの場合があります。 SSHを使用している場合、秘密鍵がパスワードを持たない鍵ペア、またはuse ssh-agent
to cache your private keyを作成することができます。あなたはorigin
よりも、リモート他にプッシュ、またはmaster
以外のブランチをプッシュする場合は、その行をカスタマイズ...
#!/bin/sh
git push origin master
:
その後、あなたは次のものが含まれてい.git/hooks/post-commit
にファイルを作成する必要があります。そのファイルを実行可能にすることを確認してください。
このgit-autopushスクリプトでは、 "How configure automatic pushing?"で推奨されているのと同様に、ポストコミットフックを設定できます。
ただし、パスフレーズの場合はrun a ssh-agent
が必要です。
マスターブランチ以上の使用を開始した場合は、現在のブランチを自動的にプッシュしたい場合があります。私のフックは次のようになります。
#!/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のシンボリック-REFと支店名を決めることができればそれは、現在のブランチをプッシュします。
"How to get current branch name in Git?"は、この方法と現在のブランチ名を取得する他の方法を扱います。
sausage makingが発生すると予想されるタスクブランチで作業すると、すべてのブランチの自動プッシュが邪魔になることがあります(プッシュした後は簡単に再分割できません)。したがって、フックは定義された接尾辞で終わるブランチをプッシュしません(この例では "_local")。ここで
は、クライアント上でLinuxとWindows(のgit bashの)
を使用している人々のためにSSH経由でパスフレーズを提供せずに引っ張っ/プッシュするための簡単な命令である:あなたが生成された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
あなたが任意のキー(2「のLS:アクセスすることはできません...」の行を)持っていない場合は、新しいものを生成します。いずれかのキーがある場合は、このステップをスキップしてください。
$ ssh-copy-id [email protected]_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 [email protected]_name's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]_name'" and check to make sure that only the key(s) you wanted were added.
注:
$ 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を使用してプッシュしたいからリモートサーバへの鍵をコピーしますが、この操作中にパスワードを入力する必要があります。その後プル/プッシュ操作はパスワードを要求しません。
注2:あなたはどのようなプロトコルを
- 1. 自動コミット/プッシュ用にgitをサーバにインストールするには?
- 2. Gitはプル後自動的に変更を加えずにコミットしました
- 3. Git - マスタリポジトリにプッシュした後にプロダクション/ステージングサーバを自動アップデートする
- 4. 自動的にコミットを削除する方法Gitで自分自身をキャンセルするコミット
- 5. 自動的にプッシュする方法
- 6. PhpStormとgit:チェックアウト前に自動コミットする方法
- 7. gitでコミット時にバージョンファイルを自動的に変更
- 8. コミット後にコミット後のスクリプト(フック)が起動しないGit
- 9. リバースパッチを使用したプッシュ後にGitコミットを元に戻しますか?
- 10. GIT:リモートリポジトリにプッシュされた複数のコミットをスクラッシュする方法は?
- 11. Git:プッシュなしでコミットをテストする
- 12. 変更されたコミットをリモートのgitリポジトリにプッシュする最も効率的な方法は何ですか?
- 13. TSFタスクを自動的に追加、コミット、プッシュ
- 14. WhatsAppからTwitterにメッセージを自動的にプッシュする方法
- 15. sucessfullマージ後に自動コミットを行う方法は?
- 16. Gitを使って変更をコミットしてプッシュする方法
- 17. は、自動的に各チェンジに私がコミットするたびに
- 18. git pushはすべてのブランチから自動的にコミットしますか?
- 19. すでにGitのプッシュ前にコミットunneccesaryファイルを削除する方法
- 20. コミットをgitにプッシュできません
- 21. GitでASP.NET MVC Webサイトを自動的にマークするハッシュIDをコミットする
- 22. git rebaseを使用すると自動的に空のコミットをスキップします
- 23. git-svn Kerberosをコミットした後のコミット
- 24. Gitを使用してリモートリポジトリにプッシュされたコミットを取り除く方法
- 25. Rx - onNext()を受信した後に自動的に退会する方法は?
- 26. 各コミット後に自動的にSVNリビジョン番号を保存するには?
- 27. プッシュされたコミットを部分的に元に戻す/修正する方法?
- 28. Ubuntuサーバーに自動的にGitプルをプッシュからBitbucketに設定する方法
- 29. Gitリポジトリの最後のコミットを元に戻す方法は?
- 30. コミット時にdev/QAサーバーでgit pullプロセスを自動化する
を超える推進している(SSHキーが最初のログイン時に作成されたコピーされるために、ホームディレクトリ)は、この手順を使用する前に、少なくとも1回のuser_nameを使用してサーバーにログインする必要がありますか?パスワードの入力を求められたら、これはSSHかHTTPのどちらかと仮定します。 –
また、gitの質問では、使用しているオペレーティングシステムについて少なくとも言及することが役に立ちます。 –
私はそのような設定の知恵に疑問を呈します。これにより、変更内容を異なるコミットセット(特にリベース)に再編成する機能が削除されます。私はこのような設定のために、あまりにも多くの間違いを犯して、私にとって有益なものになってしまう。 – jpmc26