"মারাত্মক: গিট সংগ্রহস্থল নয়: '।'” পাওয়ার পরে যখন অন্য রেপোতে 'গিট টান' চালানোর জন্য পোস্ট-আপডেট হুক ব্যবহার করা হয়


90

আমি গিটে নতুন তাই আমি ক্ষমা চাই (এবং দয়া করে আমাকে সংশোধন করুন) যদি আমি এখানে পরিভাষার অপব্যবহার করি তবে আমি যথাসাধ্য চেষ্টা করব।

আমি একটি ওয়েব সার্ভারে একটি বেয়ার গিট রেপো (হাব) এবং একটি ডেভলপমেন্ট সাইট ওয়ার্কিং কপি (প্রাইম) সেট আপ করার চেষ্টা করছি। আমি এই নিবন্ধটি পরে এটি প্যাটার্ন করার চেষ্টা করেছি । আমি চাই যখনই হাব রেপোতে চাপ দেওয়া হবে তখন বিকাশের কাজের কপিটি আপডেট করা হোক updated আমি এই ধারণাটির আওতায় আছি যে এটির জন্য সঠিক হুকটি post-updateআমি এটি তৈরি করেছি:

#!/bin/sh
whoami
cd /path/to/working-copy/
RET=`git pull`
echo $RET

হালনাগাদ

আমি যখন আমার স্থানীয় রেপো থেকে বেয়ার হাবটিতে পরিবর্তনগুলি চাপি তখন আমি আপডেট-পরবর্তী স্ক্রিপ্ট থেকে নিম্নলিখিত আউটপুটটি পাই:

remote: sites
remote: fatal: Not a git repository: '.'

তবে আমি যদি সার্ভারের মধ্যে ব্যবহারকারী হিসাবে 'সাইটগুলি' এসএসএইচ করি এবং এই স্ক্রিপ্টটি ম্যানুয়ালি চালিত করি তবে এটি দুর্দান্ত কাজ করে কোন ধারণা যা এই হুক বা স্ক্রিপ্টটির সাথে ভুল হচ্ছে?

উত্তর:


179

এখানে স্ক্রিপ্টটি শেষ পর্যন্ত কাজ করেছিল। আমি মনে করি যে আমি যে বিটটি মূলত অনুপস্থিত ছিল তা দূর থেকে কাজ করা থেকে বিরত ছিল theunset GIT_DIR

#!/bin/sh
cd /path/to/working-copy/ || exit
unset GIT_DIR
git pull repo branch

exec git-update-server-info

18
আমি নিশ্চিত করতে পারি, আনসেট করা সমস্যার GIT_DIRসমাধান করে।
jmtd

16
যারা ইচ্ছুক তাদের বুঝতে কেন: গিট GIT_DIRপরিবর্তিত পরিবর্তনশীল ব্যবহার করে কারণ এটি PWDcdপরিবর্তনগুলি -ing PWDনা GIT_DIR। সেখান থেকে Git একটি ফলব্যাক হওয়া আবশ্যক GIT_DIRথেকে PWDপ্রথম না উপলব্ধ হবে।
zupa

প্রশ্নটি হিট স্ক্রিপ্টের জন্য এটি করা দরকার কেন গিটকে অবশ্যই দেখতে হবে (GIT_DIR সেট করুন যাতে স্ক্রিপ্টটি অন্য কোথাও 'সিডি' করে দেয় 'গিট যাই হোক' এখনও কাজ করবে)? আমি ব্যক্তিগতভাবে পছন্দ করব যে গিট এই ধরণের যাদু করে না।
স্টিভেন হরিয়ানো

4
এর পেছনে কারণ যে গীত আবেদন করা হয় কিছু এনভায়রনমেন্ট ভেরিয়েবল থেকে সব কোর Git কমান্ড।
কেসি

যখন একত্রীকরণের বিরোধ আছে তখন কী হবে git pull?
লোলোলোলল ওল


0

আনসেট থাকা সত্ত্বেও GIT_DIR কেবলমাত্র কাজ করে।

সমস্যাটি ঘটে যখন আপনি অন্য কোথাও ভুলভাবে GIT_DIR সেট করেন।

পরিবর্তে আপনি কেবল এটি যুক্ত করতে পারেন: GIT_DIR = .git / এটি কাজ করবে


0

আমার ক্ষেত্রে আমি একটি কার্যনির্বাহী গাছ নির্দিষ্ট করে দিয়েছি এবং এটি কিছু আদেশের মতো pull(বা আরও স্পষ্টভাবে fetch) ব্রেক করে ।

যদি আপনার গিট কনফিগারেশনে থাকে তবে কার্যক্ষম গাছটিকে আনসেট করার জন্য নিম্নলিখিত মাধ্যমে:

git config --unset core.worktree

(কাজের গাছ সেট করার অন্যান্য উপায় রয়েছে)

লক্ষণীয় গুরুত্বপূর্ণ,

আপনি নিজের জায়গায় প্রথমদিকে কাস্টম ওয়ার্কট্রি ব্যবহার করে আপনার চারপাশে এই গর্তটি খুঁড়ে না নিলে এর সমস্যা হওয়ার কোনও পরিবর্তন নেই।

ব্যান্টার:

এটি আমার কাছে বোঝায় যে গিট ইন্টার্নালগুলি .git/কিছু ক্ষেত্রে ওয়ার্কট্রি + এর সাথে সম্পর্কিত পাথ ব্যবহার করে । আমার অভিজ্ঞতায় ওয়ার্টরিজগুলি গিটের মূল মৌলিক অংশগুলি ব্যতীত যা কিছু সমর্থিত তা নয়। আমি পুরোপুরি পরীক্ষা-নিরীক্ষা করি নি, গিট ডিরেক্টরিটি কনফিগার ভেরিয়েবল সঠিকভাবে যা আমি খেলিনি তা সেট করে দিলে সম্ভবত গিট আচরণ করবে।


-1

আপনার কাছে সম্ভবত কোনও অনুমতি সংক্রান্ত সমস্যা রয়েছে। আপনি কীভাবে আপনার বেয়ার গিট রেপো সেটআপ করেছেন তা আমি নিশ্চিত নই, তবে এটি যদি gitব্যবহারকারীর অধীনে চলছে তবে নিশ্চিত হয়ে নিন যে gitব্যবহারকারীকে git pullআপনার প্রকল্প ডিরেক্টরিতে এটি সম্পাদন করার অনুমতি দেওয়া হয়েছে ।

হুক চালিত হলে আপনি কী ব্যবহারকারী তা খুঁজে বের করার জন্য বিকল্পভাবে এটি চেষ্টা করুন:

echo `whoami`

যদি আমি গিট ব্যবহারকারী হিসাবে সার্ভারে প্রবেশ করি তবে আমি কোনও সমস্যা ছাড়াই আমার প্রকল্প ডিরেক্টরিতে গিট টান ব্যবহার করতে সক্ষম। আমি বিশ্বাস করি যে এটিই সেই ব্যবহারকারী যা স্ক্রিপ্টটি কার্যকর করা উচিত। আমি স্ক্রিপ্টে হোয়ামি লাইন যুক্ত করার চেষ্টা করতে পারি, তবে হুক হিসাবে সম্পাদন করা হলে সেই স্ক্রিপ্ট থেকে আউটপুট কোথায় যায়? আমার কি আউটপুটটি প্রতিধ্বনির পরিবর্তে লগ ফাইলে প্রেরণ করতে হবে?
Ty W

কী echo `whoami`যে কি whoamiনা?
ক্রিস্টোফার হামারস্ট্রিম

একটি হুক স্ক্রিপ্ট থেকে স্টপআউট আউটপুট অ্যাকশনটি করানো দূরবর্তীটিতে দৃশ্যমান। অথবা, অন্য কথায়, যদি আপনি 'গিট পুশ' বলে থাকেন তবে রিমোটের একটি হুক থেকে আউটপুট আপনার স্টাডআউটে প্রদর্শিত হবে।
ebneter

হ্যাঁ, আমি খেয়াল করছি যে আমি স্টাফ নিয়ে খেলছিলাম। খুব সুবিধাজনক :)
Ty W
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.