我想提示您确认[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. 从一个php脚本运行git pull
- 3. git pull与本地变化
- 4. 使用Github for windows的Git pull脚本
- 5. 以纯PHP执行git pull
- 6. 脚本执行的地方
- 7. Git Pull - 擦除本地更改
- 8. git pull(只更新本地文件)
- 9. git pull保留本地更改
- 10. 通过ssh和旁路密码要求执行git pull的脚本?
- 11. 'git pull'在SSH中执行,但不在github中后接收脚本
- 12. Rails的“脚本/插件”安装http://github.com...git挂在'git pull'
- 13. 在git init上执行脚本
- 14. 在post-receive hook上运行git repo后在服务器上运行Perl脚本
- 15. git clone - 本地更改后无法进行pull或push
- 16. 执行脚本
- 17. 执行脚本
- 18. 执行脚本
- 19. shell脚本的Ruby脚本执行
- 20. windows上的Git脚本
- 21. Git:强制执行shell脚本执行权限
- 22. Git更新后的挂钩未能使用sudo执行'git pull'
- 23. 通过PHP执行IIS git pull IIS
- 24. PHP:如何从其他脚本执行脚本遍地
- 25. 从任何地方执行JS脚本?
- 26. 从任何地方执行脚本
- 27. 脚本不执行
- 28. 执行bash脚本
- 29. 执行php脚本
- 30. 执行bash脚本
我已经通过该链接。在这里,我的要求是我有脚本,提示用户输入他/她的意见。现在我需要将这个脚本放在git钩子脚本中,当我尝试使用git pull(从一个钩子脚本)和git push(另一个git钩子脚本)获得执行时,它们会询问我的输入。我发现客户端和服务器的钩子是不同的。如果在工作位置和服务器端更新脚本的更新脚本中添加不同的回显语句,它将只显示服务器端,而不是本地回显。 – user1482764