একটি লিনাক্স পরিবেশে গিট টান ফাইলগুলির মালিককে পরিবর্তন করে


12

প্রতিবার যখন আমি git pullআমার লাইভ সার্ভারে একটি চালনা করব তখন ফাইলগুলির মালিক পরিবর্তন করা হবে কেন? আমি নিজে একটি করছেন উপর রাখা chown john:john index.php

আমার কী পরিবর্তন করতে হবে যাতে যখন আমি একটি করি, তখন git pullফাইলগুলির মালিক স্বয়ংক্রিয়ভাবে থাকবেন বা থাকবেন john?


1
johnবর্তমান ডিরেক্টরিটির মালিক কি ?
ব্যবহারকারী000001

হ্যাঁ, জন ডিরেক্টরিটির মালিক হলেন :)
PinoyStackOverflower

1
কোন ব্যবহারকারী চলছে git pull?
cuonglm

@ জ্ঞাক রুট ব্যবহারকারী, আমি রুট ব্যবহারকারী হিসাবে এসএসএইচ এর মাধ্যমে আমাদের লাইভ সার্ভারে লগ ইন করেছি :)
পিনয়স্ট্যাক ওভারফ্লাওয়ার

উত্তর:


11

যখন আপনি ব্যবহার করেন git pull(যা সমান git fetch; git merge) তখন গিট মালিক পরিবর্তন না করেই ফাইল আপডেট করবে (গিটটি সেই তথ্য সংরক্ষণ করে না)। তবে যদি নতুন ফাইল তৈরি করতে হয় তবে বর্তমান ব্যবহারকারীর মালিক হিসাবে সেট করা হবে।

এটি সমাধান করার জন্য বিভিন্ন সমাধান রয়েছে। সহজ সম্ভবত একটি যোগ হয় post-updateআঙ্গুলসমূহ (আপনার মধ্যে .git/hooksডিরেক্টরি) স্বয়ংক্রিয়ভাবে কল chown john:john . -Rপর একত্রীকরণ / টান ( একটি উদাহরণ জন্য যাতে সমাধান দেখতে )।

বিকল্প সমাধানগুলি হ'ল:

  • git pullমূলের পরিবর্তে জন ব্যবহারকারী হিসাবে চালান (যার জন্য .git ডিরেক্টরিতে জনকে লেখার অনুমতি প্রয়োজন হবে)।
  • মোতায়েন করার জন্য একটি হুক তৈরি করুন, যা হয় জন হিসাবে ব্যবহারকারী হিসাবে ব্যবহার করবে, হয় আপডেটের পরে শ্যাওন করবে (যাতে আপনাকে খালি রেপোর হুকের git pullভিতরেই করতে হবে post-receive)।

আপনি যদি git fetchরুট হিসাবে এবং তারপরে git mergeব্যবহারকারী জন হিসাবে কি করেন ? জন কি এখনও .gitডিরেক্টরিতে লেখার অনুমতি প্রয়োজন ?
ওয়াইল্ডকার্ড

হ্যাঁ, বেশিরভাগ সময়। git fetchরুট হিসাবে, .git / অবজেক্টে নতুন ফাইলগুলির মালিক হিসাবে মূল থাকতে পারে। git mergeব্যবহারকারী জন হিসাবে (বেশিরভাগ সময়) কমপক্ষে .git/indexএবং .git/HEAD(যা আমি মনে করি প্রতিটি পরিবর্তনে মুছে ফেলা / তৈরি হতে পারে ) ওভাররাইট করার চেষ্টা করবে এবং এতে কিছু ফাইল লিখবে .git/objects/। আপনার ওয়ার্কিং ডিরেক্টরিতে কোনও নতুন ফাইল। উদাহরণস্বরূপ দ্রুত ফরোয়ার্ড মার্জ সহ ব্যতিক্রম রয়েছে।
আসেনার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.