我想提示您確認[yes/no]每個命令git push和pull哪些聯繫人git服務器。有沒有一種方法可以包含任何命令/腳本來實現這一點?所以用戶可以給出輸入,之後只有git才能進行該操作。本地執行的Git pull hook腳本
回答
我相信你正在尋找Git hooks。
雖然你將不得不把鉤子放在那裏。我不認爲你可以讓用戶將(客戶端)鉤子與其他代碼一起拉出來。
首先,我認爲你不會在這種變化中結交更多的朋友。如果有人輸入git pull
,他已經證明他願意聯繫遠程服務器。在我看來,在這種情況下,沒有必要用確認對話框來惹惱用戶。
無論如何,如果你想到確定各pull
和push
,掛鉤不是因爲拉/推掛鉤只在服務器端存在的工具。在客戶端沒有pre-pull
,post-pull
,pre-push
或post-push
掛鉤。所以,我們不得不放棄勾當。
你可以用alias這個pull
和push
命令將它們包圍在查詢中是否真的應該被拉/推。
查詢很簡單:
echo -n "really push? [y/n] "
read -s -n 1 really
if [[ $really == "y" ]]; then
# PULL/PUSH HERE
else
echo "aborting"
fi
Unfortunately,你不能爲一個別名使用相同的名稱。所以,容易想到
[alias]
push = "!echo -n \"really push? [y/n]\";read -s -n 1 really;if [[ $really == \"y\" ]];then git push; else echo \"aborting\"; fi"
不起作用。
但您還有其他兩個選項來實現你想要的:
- 使用git bord的手段,並呼籲別名
safepush
/safepull
或類似的東西 - 設置了一個別名在你
.bashrc
爲git pull
和git push
(參見SU上的this question以建立多字別名其實際上函數)
這些解決方案似乎不起作用。我的腳本在預先提交鉤子腳本中工作正常。我們不能做出類似於預拉和預推的類似設置。 – user1482764
$貓。git/hooks/pre-commit #允許我們讀取下面的用戶輸入,將鍵盤分配給鍵盤 exec dev/tty while true; (Y/n)「yn if [」$ yn「=」「];執行 read -p」[post-commit hook]檢查過期的gems?然後 yn ='Y' fi case $ yn in [YY])echo「You entered yes」;打破;; [Nn])exit ;;回覆「請回答y或n是或否。」;; ESAC 做 KH837 @ KH837/d/gitwork/20120626 /爲myplugin(開發-3.0)$ git的承諾-m 「測試」 測試 進入烏爾選擇 [提交後鉤]凱明完成了! [提交後掛鉤]檢查過時的寶石? (Y/n)y 您輸入了是 什麼都沒有提交 – user1482764
@ user1482764:不,我們無法進行類似的設置,因爲沒有「預拉」和「預推」鉤子。期。 – eckes
- 1. Git Hook for git pull
- 2. CGI腳本的git pull由'nobody'運行
- 3. 從一個php腳本運行git pull
- 4. git pull與本地變化
- 5. Team City執行Git腳本
- 6. 允許Apache執行git pull
- 7. 來自GitHub腳本的PHP Git Pull
- 8. 使用Github for windows的Git pull腳本
- 9. 以純PHP執行git pull
- 10. 在powershell腳本中執行git命令
- 11. git pull和虛假的本地變化
- 12. 腳本執行的地方
- 13. Git Pull覆蓋本地更改
- 14. git pull保留本地更改
- 15. Git Pull - 擦除本地更改
- 16. git pull(只更新本地文件)
- 17. Git Pull不同步本地文件
- 18. 通過ssh和旁路密碼要求執行git pull的腳本?
- 19. 通過R.NET執行本地R腳本
- 20. GIT pull:用遠程版本替換本地版本
- 21. 'git pull'在SSH中執行,但不在github中後接收腳本
- 22. Rails的「腳本/插件」安裝http://github.com...git掛在'git pull'
- 23. 在git init上執行腳本
- 24. 無法運行ruby腳本從github git pull
- 25. 從本地python腳本執行遠程python腳本時出錯
- 26. 在post-receive hook上運行git repo後在服務器上運行Perl腳本
- 27. git clone - 本地更改後無法進行pull或push
- 28. 執行腳本
- 29. 執行腳本
- 30. 執行腳本
我已經通過該鏈接。在這裏,我的要求是我有腳本,提示用戶輸入他/她的意見。現在我需要將這個腳本放在git鉤子腳本中,當我嘗試使用git pull(從一個鉤子腳本)和git push(另一個git鉤子腳本)獲得執行時,它們會詢問我的輸入。我發現客戶端和服務器的鉤子是不同的。如果在工作位置和服務器端更新腳本的更新腳本中添加不同的回顯語句,它將只顯示服務器端,而不是本地回顯。 – user1482764