সিমলিঙ্কযুক্ত ফোল্ডারে আমি কীভাবে গিট কমিট ফাইল তৈরি করতে পারি


19

আমার দুটি ফোল্ডার রয়েছে:

  • /home/me/code/project/
  • /srv/www/projectfiles/

ইন /home/me/code/projectফোল্ডারের, আমি সিমলিঙ্ক আছে staticকরতে/srv/www/projectfiles/

অর্থাত /home/me/code/project/static/ ->/srv/www/projectfiles/

আমি এখনই প্রতিশ্রুতি দেওয়ার চেষ্টা করার সময় এটি সিমলিংকের পিছনে থাকা কোনও ফাইল দেখতে পায় না এবং এর পরিবর্তে ফাইল হিসাবে সিমলিংকটি নিজেই প্রতিশ্রুতিবদ্ধ করার চেষ্টা করে।

আমি কীভাবে একটি ফাইল (উদাহরণস্বরূপ /srv/www/projectfiles/style.css) সিমলিংকের পিছনে থাকা প্রতিশ্রুতিবদ্ধ করব?

উত্তর:


12

একটি কাজের ভিত্তিতে / এসআরভি / www / প্রজেক্টফাইলে / হোম / আমার / কোড / প্রকল্প / স্থিতিক্রে একটি সিমলিংক হওয়া উচিত যাতে গিট কোনও প্রতিলিপি না দেখে


সুতরাং আপনি মূলত যুক্তি বিপরীত হয়? গিট ফোল্ডারে প্রয়োজনীয় ফাইল / ফোল্ডার রাখুন এবং তার পরে অন্য কোথাও একটি সিমিলিংক রাখুন (যেখানে মূল ফাইল / ফোল্ডারগুলি থাকত)?
RusI

@ রাসেল হ্যাঁ ঠিক তা
ইউজার 151019

তবে আমি কীভাবে ফাইলগুলির স্থানীয় কাস্টমাইজেশন করব? প্রতিটি মেশিনের জন্য আমার আলাদা রেপো রাখা উচিত? পুরো পয়েন্টটি হারায়।
আশ্নুর

আচ্ছা স্থানীয় কাস্টমাইজেশনটি
গিটে

3

আপনি যদি লিনাক্স ব্যবহার করে থাকেন তবে আমি বিশেষত গিটবিএলএসআর দ্বারা সরবরাহিত সমাধানটি পছন্দ করি । এটি একটি লাইব্রেরি যা LD_PRELOAD এর মাধ্যমে লোড করা হয় যা স্বচ্ছভাবে একটি সংগ্রহস্থলের বাইরে ফাইল এবং ফোল্ডারগুলিতে প্রতিলিপিগুলি ডিগ্রি করে।

স্থানীয় ব্যবহারকারীর অ্যাকাউন্টের জন্য এটি ইনস্টল করা সহজ:

git clone https://github.com/Alcaro/GitBSLR.git
cd GitBSLR
./install.sh

এটি লাইব্রেরিটি সংকলন করবে এবং নীচের মত একটি উপকরণ তৈরি করবে ~/.bashrc:

alias git="LD_PRELOAD=/path/to/gitbslr.so git"

এই উপনামটি ব্যবহার করা স্বচ্ছ লিঙ্কটিকে ডিফেরেন্সিং সক্ষম করে।


1
ভয়ানক! তবে এটি দুর্দান্ত কাজ করে, তাই এটি দুর্দান্ত। ধন্যবাদ!
কে

এটা বিরক্তিকর! আমি স্পষ্টভাবে এটি পছন্দ করি
মার্কোস বেস্টেরিও লোপেজ

2

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


1

ফোল্ডারে ফাইলগুলি সরান এবং সিমলিংকটি সরিয়ে দিন। গিট সিমলিংকগুলি অতিক্রম করে না।

এটি (এবং আমি) ধরে নেবে যে আপনি যে ফাইলগুলি নিয়ন্ত্রণ করেন না বা সংশোধন করতে চান না সেগুলির একটি সংকেত আপনি সিলেক করছেন যা তাদের সংস্করণ করার দরকার নেই।


1
আমি এই ফাইলগুলি নিয়ন্ত্রণ করি। এগুলি স্টাইলশীট ইত্যাদি and এগুলি একটি ডিরেক্টরিতে থাকা উচিত যা সার্ভারটি সার্ভার করবে।
মাচা

1

আর একটি কাজ - একমাত্র আমি খুঁজে পেয়েছি যে ডিরেক্টরিতেও কাজ করে - হ'ল নির্দিষ্ট কর্মের জন্য গিট ওয়ার্কিং ট্রি পরিবর্তন করা।

git --work-tree=/home/me/code/project/ add /home/me/code/project/static/
git --work-tree=/home/me/code/project/ commit /home/me/code/project/static/
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.