ডিফল্টরূপে উইন্ডোজ গিট গ্লোবাল .gitconfig এ রাখে c:\documents and settings\user\
.Gitconfig সঞ্চিত আছে তাই আমি কীভাবে সেই অবস্থান পরিবর্তন করতে পারি c:\my_configuration_files\
?
এটা কি আদৌ করা যায়?
ডিফল্টরূপে উইন্ডোজ গিট গ্লোবাল .gitconfig এ রাখে c:\documents and settings\user\
.Gitconfig সঞ্চিত আছে তাই আমি কীভাবে সেই অবস্থান পরিবর্তন করতে পারি c:\my_configuration_files\
?
এটা কি আদৌ করা যায়?
উত্তর:
যদি আপনি সেট HOME
করে c:\my_configuration_files\
রাখেন, তবে গিটটি সেখানে .gitconfig সন্ধান করবে। পরিবেশের ভেরিয়েবলগুলি সম্পাদনা করার বিষয়টি এখানে বর্ণিত হয়েছে । আপনাকে হোম ভেরিয়েবল সেট করতে হবে, তারপরে যে কোনও সেন্টিমিডি.এক্সএই উইন্ডোটি আবার খুলুন। হোম সত্যই সঠিক মানের দিকে নির্দেশ করে তা যাচাই করতে "সেট" কমান্ডটি ব্যবহার করুন।
হোম পরিবর্তন করা অবশ্যই অন্যান্য অ্যাপ্লিকেশনগুলিকেও প্রভাবিত করবে। যাইহোক, গিটের উত্স কোড পড়া থেকে, কমান্ড লাইনটি সামঞ্জস্য করার প্রয়োজন ছাড়াই এই ফাইলগুলির অবস্থান পরিবর্তন করার একমাত্র উপায় বলে মনে হয়। আপনার স্টেফানের প্রতিক্রিয়াও বিবেচনা করা উচিত: আপনি GIT_CONFIG ভেরিয়েবল সেট করতে পারেন। তবে, আপনার ইচ্ছাকে প্রভাবিত করার জন্য, আপনাকে --global
সমস্ত গিট অনুরোধগুলিতে পতাকাটি পাস করতে হবে (প্লাস কোনও স্থানীয় .git / কনফিগার ফাইল উপেক্ষা করা হবে)।
.gitconfig
ফাইলটিকে সেই ডিরেক্টরিতে স্থানান্তরিত করেছি , এটি কার্যকর হয়নি।
এর জন্য হোম ডিরেক্টরি পরিবর্তন করুন ভুল। হোম ডিরেক্টরিতে gitconfig এর জন্য প্রতীকী লিঙ্ক তৈরি করা ভাল।
$HOME
একটি নেটওয়ার্ক ড্রাইভে রয়েছে এবং যখনই নেটওয়ার্ক সংযোগে কোনও সমস্যা আছে, লিঙ্কটিও অ্যাক্সেসযোগ্য নয়।
আমি অন্যান্য কনফিগারেশন ফাইলের জন্য কাজ দেখেছি এমন কিছুটা ভিন্ন পদ্ধতির সাহায্যে এই সমস্যাটি সমাধান করেছি। গিট কনফিগারেশনের সমর্থনে অন্তর্ভুক্ত রয়েছে যা আপনাকে অন্য কোনও স্থানে কনফিগারেশন ফাইলের দিকে নির্দেশ করতে পারে। সেই বিকল্প অবস্থানটি তখন আমদানি করে এমন জায়গায় প্রসারিত করা হয় যেন এটি .gitconfig ফাইলের অংশ। তাই এখনই .gitconfig- এ আমার একক প্রবেশ রয়েছে:
[include]
path = c:\\path\\to\\my.config
.Gitconfig ফাইলটিতে গিট দ্বারা লিখিত কোনও আপডেট আমার অন্তর্ভুক্ত পাথটিকে ওভাররাইট করবে না। এর অর্থ এই যে মাঝেমধ্যে আমার কাছে .gitconfig থেকে my.config এ মান সরিয়ে নেওয়া দরকার।
git config --file "included.file"
এর ফাইল এবং পরিবেশ বিভাগটি দেখুন git help config
।
আমি গিট মাস্টার নই, তবে যে সমাধানটি আমার পক্ষে সবচেয়ে সহজ কাজ করেছিল তার সন্ধান করা কেবল একটি পাঠ্য সম্পাদক এ গিয়ে C:\Program Files (x86)\Git\etc
খোলার profile
ছিল।
if
37 লাইনে একটি বিবৃতি আছে # Set up USER's home directory
। আমি if
বিবৃতিটি নিয়েছিলাম এবং স্থানীয় ডিরেক্টরিতে রেখেছিলাম যে আমি গিটকনফিগের চেয়েছিলেন, তারপরে আমি আমার বিদ্যমান গিটকনফিগ ফাইলটি (একটি নেটওয়ার্ক ড্রাইভে ছিল) সেই স্থানে অনুলিপি করেছি।
আমার জন্য, স্টার্ট ইন লোকেশন (কমপক্ষে গিট-গুই এর) পরিবর্তন করা যেখানে এটি .gitconfig সন্ধান করেছে তাতে কোনও প্রভাব ফেলেনি। কর্মক্ষেত্রে আমার সেটআপটি ইউ এর উপর চাপ দেয়: আমাদের বাড়ির জন্য, তবে আমাদের ইউতে লেখার অনুমতি নেই: সরাসরি, কেবলমাত্র উপ-ডিরেক্টরি যা আমাদের জন্য ভিতরে তৈরি হয়েছিল, তাই এটি আমার জন্য একটি চুক্তি-বিভক্ত ছিল।
আমি ব্যাচের স্ক্রিপ্ট তৈরি করে সমস্যার সমাধান করেছি যা কেবলমাত্র সেই অ্যাপ্লিকেশনের জন্য হোমড্রাইভ এবং হোমপ্যাথ এনভ ভেরিয়েবলগুলিকে ওভাররাইড করে। তারপরে পরিবর্তে আমার স্টার্ট মেনু শর্টকাটটি পরিবর্তে সেই ব্যাচের স্ক্রিপ্টের দিকে নির্দেশ করুন।
আপনি যদি উইন্ডোতে থাকেন এবং পরিবেশের ভেরিয়েবলগুলি পরিবর্তন করছেন বা mklink
অপর্যাপ্ত সুযোগ-সুবিধার কারণে সমস্যা হয় তবে আপনার সমস্যার সহজ সমাধান হ'ল গিট ব্যাচটি অন্য জায়গায় শুরু করা।
গিট বাশ.এক্সে ঠিক ডান ক্লিক করুন, বৈশিষ্ট্যগুলি ক্লিক করুন এবং "স্টার্ট ইন" বৈশিষ্ট্যটিতে পরিবর্তন করুন c:\my_configuration_files\
।
%HOMEDRIVE%%HOMEPATH%
সি: \ my_repo_folder` এ পরিবর্তিত হয়েছে ` একটি কবজ কাজ।
আমি একই জিনিস করতে চেয়েছিলেন। @ মাইকটেক এর সমাধানটি আমি সবচেয়ে ভাল খুঁজে পেতে পারি। যাইহোক, @ মটওয়িলিয়ামস দ্বারা চিহ্নিত হিসাবে এটি গিট দ্বারা .gitconfig ফাইলের কোনও আপডেট থেকে বেঁচে নেই যা কেবলমাত্র নতুন সেটিংসযুক্ত একটি নতুন ফাইলের সাথে লিঙ্কটি প্রতিস্থাপন করে।
আমি নিম্নলিখিত পাওয়ারশেল স্ক্রিপ্টটি লিখে এটি আমার প্রোফাইল স্টার্টআপ স্ক্রিপ্টে চালিয়ে সমাধান করেছি। প্রতিবার এটি চালিত হলে এটি ব্যবহারকারীর .gitconfig- এ যুক্ত হওয়া কোনও সেটিংসকে বিশ্বব্যাপী অনুলিপি করে এবং তারপরে .gitconfig ফাইলের সমস্ত পাঠ্যকে প্রতিস্থাপন করে এবং [অন্তর্ভুক্ত] যা বিশ্বব্যাপী ফাইল আমদানি করে।
আমি প্রচুর অন্যান্য গ্লোবাল স্ক্রিপ্ট এবং সরঞ্জামের সাথে একটি রেপোতে গ্লোবাল .gitconfig ফাইল রাখি। আমাকে যা করতে হবে তা হ'ল স্ক্রিপ্টটি আমার গ্লোবাল ফাইলে সংযুক্ত যে কোনও পরিবর্তন পরীক্ষা করে।
এটি আমার পক্ষে বেশ স্বচ্ছতার সাথে কাজ করছে বলে মনে হচ্ছে। আশা করি এটা সাহায্য করবে!
9 ই সেপ্টেম্বর: কনফিগার ফাইলে যুক্ত হওয়া নতুন এন্ট্রিগুলি সদৃশ হয় এবং সেগুলি উপেক্ষা করে তা সনাক্ত করতে আপডেট হয়েছে। এটি SourceTree এর মতো সরঞ্জামগুলির জন্য দরকারী যা নতুন আপডেটগুলি লিখবে যদি তারা বিদ্যমানগুলি খুঁজে না পায় এবং অনুসরণ না করে তবে এর মধ্যে রয়েছে।
function git-config-update
{
$localPath = "$env:USERPROFILE\.gitconfig".replace('\', "\\")
$globalPath = "C:\src\github\Global\Git\gitconfig".replace('\', "\\")
$redirectAutoText = "# Generated file. Do not edit!`n[include]`n path = $globalPath`n`n"
$localText = get-content $localPath
$diffs = (compare-object -ref $redirectAutoText.split("`n") -diff ($localText) |
measure-object).count
if ($diffs -eq 0)
{
write-output ".gitconfig unchanged."
return
}
$skipLines = 0
$diffs = (compare-object -ref ($redirectAutoText.split("`n") |
select -f 3) -diff ($localText | select -f 3) | measure-object).count
if ($diffs -eq 0)
{
$skipLines = 4
write-warning "New settings appended to $localPath...`n "
}
else
{
write-warning "New settings found in $localPath...`n "
}
$localLines = (get-content $localPath | select -Skip $skipLines) -join "`n"
$newSettings = $localLines.Split(@("["), [StringSplitOptions]::RemoveEmptyEntries) |
where { ![String]::IsNullOrWhiteSpace($_) } | %{ "[$_".TrimEnd() }
$globalLines = (get-content $globalPath) -join "`n"
$globalSettings = $globalLines.Split(@("["), [StringSplitOptions]::RemoveEmptyEntries)|
where { ![String]::IsNullOrWhiteSpace($_) } | %{ "[$_".TrimEnd() }
$appendSettings = ($newSettings | %{ $_.Trim() } |
where { !($globalSettings -contains $_.Trim()) })
if ([string]::IsNullOrWhitespace($appendSettings))
{
write-output "No new settings found."
}
else
{
echo $appendSettings
add-content $globalPath ("`n# Additional settings added from $env:COMPUTERNAME on " + (Get-Date -displayhint date) + "`n" + $appendSettings)
}
set-content $localPath $redirectAutoText -force
}
এমন একজন হিসাবে যিনি খুব দীর্ঘ সময়ের জন্য এটিতে আগ্রহী হয়েছেন। ম্যানুয়াল থেকে দেখুন:
$ এক্সডিজি_সনফিগহোম / গিট / কনফিগারেশন - দ্বিতীয় ব্যবহারকারী-নির্দিষ্ট কনফিগারেশন ফাইল। যদি $XDG_CONFIG_HOME
সেট না করা হয় বা খালি না থাকে তবে $ HOME / .config / git / config ব্যবহার করা হবে। এই ফাইলে যে কোনও একক-মূল্যবান ভেরিয়েবল সেট g / .gitconfig এ যা আছে তার দ্বারা ওভাররাইট করা হবে। আপনি যদি মাঝে মাঝে গিট এর পুরানো সংস্করণ ব্যবহার করেন তবে এই ফাইলটি তৈরি না করা ভাল ধারণা, কারণ সম্প্রতি এই ফাইলটির জন্য সমর্থনটি মোটামুটি যুক্ত হয়েছিল।
যা সম্প্রতি যুক্ত হয়েছিল। এই ডাম্পটি 2.15.0 থেকে।
আমার জন্য কাজ কর.
%PROGRAMFILES%\Git\etc
profile
HOME="c:\location_were_you_want_gitconfig"
দ্রষ্টব্য: ফাইল অনুমতিগুলি সাধারণত সীমাবদ্ধ থাকে, সুতরাং সে অনুযায়ী সেগুলি পরিবর্তন করুন বা আপনি নিজের পরিবর্তনগুলি সংরক্ষণ করতে পারবেন না।
git config --list --show-origin
shows শো করে, মূল হোম এখনও স্থানে রয়েছে।
আমার জন্য এটি খুব সাধারণ কাজ করেছে:
উইন্ডোজ হোম ভেরিয়েবল
ওএস পরিবর্তন না করে সমাধান : উইন্ডোজ 10
গিট সংস্করণ: 2.27.0.windows.1
আমি গিটের বহনযোগ্য সংস্করণ ব্যবহার করি, সুতরাং আমার সমস্ত কনফিগারেশন ফাইলগুলি আমার পেনড্রাইভ (ই :) এ রয়েছে। এটিই আমার পক্ষে কাজ করেছে:
.gitconfig
এবং অন্যান্য ব্যাশ ফাইলগুলি রাখতে চাইছিলাম , তাই আমি হোম নামে একটি ফোল্ডার তৈরি করেছি যেখানে আমি সেগুলি সব চাই।mkdir home
HOME="E:\git\home"
এখন এটি সি: \ ব্যবহারকারী <ব্যবহারকারী নাম> ডিরেক্টরিটি। গিটকনফিগের জন্য আর অনুসন্ধান করে না তবে কেবল উপরের আপনার সেট পথেই দেখায়।
$ git config --global --list
fatal: unable to read config file 'E:/git/home/.gitconfig': No such file or directory
এটি একটি ত্রুটি দিয়েছে কারণ এখনও সেখানে .gitconfig ফাইল নেই। এটি কেবল এটি প্রদর্শনের জন্য যে আমরা উইন্ডোজের হোম ডিরেক্টরিটি পরিবর্তন না করেই .gitconfig ফাইলের অবস্থান সফলভাবে পরিবর্তন করেছি।