অকার্যকর কিছুতে (যেমন, git remote set-url --push origin DISABLED
) পুশ ইউআরএল পরিবর্তন করা ছাড়াও কেউ pre-push
হুক ব্যবহার করতে পারে ।
থামানোর একটি দ্রুত উপায় হুক git push
হ'ল সিমলিংক /usr/bin/false
করা:
$ ln -s /usr/bin/false .git/hooks/pre-push
$ git push
error: failed to push some refs to '...'
একটি হুক ব্যবহার করা যদি আকাঙ্ক্ষিত হয় তবে পুশের আরও সূক্ষ্ম কন্ট্রোল নিয়ন্ত্রণের অনুমতি দেয়। .git/hooks/pre-push.sample
কার্য-অগ্রগতি কমিটিকে কীভাবে ঠেকানো যায় তার উদাহরণ দেখুন ।
একটি নির্দিষ্ট শাখায় ঠেলাঠেলি ঠেকাতে বা একক শাখায় পুশিং সীমাবদ্ধ করার জন্য এটি উদাহরণস্বরূপ হুক:
$ cat .git/hooks/pre-push
#!/usr/bin/sh
# An example hook script to limit pushing to a single remote.
#
# This hook is called with the following parameters:
#
# $1 -- Name of the remote to which the push is being done
# $2 -- URL to which the push is being done
#
# If this script exits with a non-zero status nothing will be pushed.
remote="$1"
url="$2"
[[ "$remote" == "origin" ]]
একাধিক রিমোটেস সহ একটি পরীক্ষার রেপো:
$ git remote -v
origin ../gitorigin (fetch)
origin ../gitorigin (push)
upstream ../gitupstream (fetch)
upstream ../gitupstream (push)
এতে চাপ দেওয়ার origin
অনুমতি রয়েছে:
$ git push origin
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 222 bytes | 222.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To ../gitorigin
* [new branch] master -> master
অন্য কোনও রিমোটে পুশ করার অনুমতি নেই:
$ git push upstream
error: failed to push some refs to '../gitupstream'
নোট করুন যে pre-push
হুক স্ক্রিপ্টটি অন্য জিনিসগুলির মধ্যে পরিবর্তিত হতে পারে, স্ট্ডারকে একটি বার্তা মুদ্রণ করে বলে যে পুশটি অক্ষম করা হয়েছে।