DEV Community

Quazi Mohammad Aldin Fardin
Quazi Mohammad Aldin Fardin

Posted on • Originally published at blog.aldinn.com on

গিট কনফিগারেশন (Configuring Git)

Configuring Git

প্রথম আমরা গিট ব্যাবহার করার সময় আমাদের কিছু কনফিগারেশন সেটিংস করে নিতে হবে ।

Settings

  • Name
  • Email
  • default Editor
  • Line Editing

আমাদের নেইম , ইমেইল , ডিফল্ট এডিটর , লাইন এডিটিং এগুলো স্পেসিফাই করে দিতে হবে ।। এগুলো আমরা তিনটি লেভেল এ স্পেসিফাই করব ।

প্রথমে আমরা আমরা আমাদের গিট ব্যাশ টার্মিনাল উইন্ডোটি ওপেন করব । তারপর আমরা ইউজার নেইম সেট করার জন্য নিচের কমান্ডটি দিব

git config --global user.name "your user name "
Enter fullscreen mode Exit fullscreen mode

তারপর আবার ইমেল সেট কররার জন্য । আগের কমান্ডটিতে আমরা ইউজার নেইম কে “” আবদ্ধ করেছিলাম বাট ইমেইল এর সময় খেয়াল রাখতে হবে এইখানে কোন “” কোটেশন ব্যাবহার করা যাবে নাহ

git config --global user.email me@example.com
Enter fullscreen mode Exit fullscreen mode

তারপর আমি আমার ডিফল্ট এডিটর হিসেবে ইউজ করব vscode আপনি চাইলে আপনার পছন্দমত যেকোন একটি ইউজ করতে পারেন । তবে আমি vscode ইউজ করছি । আমরা আমাদের টার্মিনাল এ পাথ এ আমদের ভিএসকোড শর্টকাট কনফিগার করা রয়েছে ।।

নিচের ভিডিও টির মত code টাইপ করলেই ভিএস এর কোড এর উইন্ডো ওপেন হবে

<!--[if lt IE 9]>document.createElement(&#39;video&#39;);<![endif]-->

যাইহোক এবার আমি ডিফল্ট এডিটর হিসেবে ভিএসকোড কনফিগার করব

এখন টার্মিনালে আমরা এই কমান্ডটি রান কর করব

git config --global core.editor "code --wait"
Enter fullscreen mode Exit fullscreen mode

—wait একটি ফ্লাগ এটির মাধ্যমে আমরা টার্মিনাল উইন্ডোকে বলি যাতে নিউ ভিএসকোড ইন্সটেন্স ওপেন হওয়া পর্যন্ত অপেক্ষা করে ।

আমরা এতক্ষন যত কনফিগারেশন করেছি সব টেক্সট ফাইল হিসেবে সেইভ হয়েছে .gitconfig নামক ফাইলে । আমরা আমদের কাস্টমাইজেশনগুলো সেই ফাইল গিয়েও করতে পারি তার জন্য আমাদের টার্মিনালে কমান্ড দিতে হবে

git config --global -e
Enter fullscreen mode Exit fullscreen mode

এই কমান্ডটি আমাদের মেশিন এর ডিফল্ট এডিটর ওপেন করবে ।

এডিটরে আমরা অনেক গুলো সেকশন দেখতে পাই যেমন user,credential,safe ইত্যাদি । আমাদের টার্মিনাল আমরা লক্ষ করলে দেখতে পাব

আমাদের টার্মিনাল আমাদের এডিটরটি ক্লোজ করার জন্য অপেক্ষা করছে । তারপর আমরা ক্লোজ করে টার্মিনাল ফেরত আসব ।

তারপর আমরা CRLF কনফিগ করব অর্থ্যাৎ গিট কিভাবে আমাদের end of line কন্ট্রোল করবে তা আমরা কনফিগ করব । যা খুবই ইম্পরট্যান্ট ।উইন্ডোজ মুলত r (carrige return) n(line feed ) এই দুটোই ইন্ডিকেট করে তবে ম্যাক অথবা লিনাক্স এ শুধু মাত্র n (line feed) দিয়ে ইন্ডিকেট করে , সো আমরা যদি লাইন ফিড ঠিক ঠাক মত কনফিগার না করি তাহলে কিছু আজব আজব সমস্যা হতে পারে । । আমি আর CRLF নিয়ে তেমন কোন কথা বলছি নাহ পরবর্তীতে হয়ত আমরা এইটা নিয়ে বিস্তারিত জানব আপাতত আপনারা চাইলে CRLF নিয়ে এই ব্লগটিপড়তে পারেন আশা করি আপনারা হেল্পফুল হবেন । তাহলে আমরা এই প্রব্লেমটি কিভাবে সল্ভ করব ? এইটা সlভ করার জন্য আমাদের একাট প্রপার্টি কল করতে হবে core.autocrlf

ধরি দুইজন ব্যাক্তি আলদিন আর তারান্নুম । আলদীন উইন্ডোজ ইউজার আর তারান্নুম ম্যাক ইউজার । তারা দুইজন একই রিপোজেটরিতে কাজ করছে তাহলে তাদের crlf হ্যান্ডেলিং নিয়ে সমস্যা হবার সম্ভাবনা রয়েছে কেননা আমরা জানি উইন্ডোজ মেশিনে crlf দুটোই কাজ করে আবার ম্যাক অথবা লিনাক্স শুধু lf । তাহলে এই সমস্যা কিভাবে সমাধান করা যায় ? তাহলে আলদীন যখন রিপোজেটরিতে তার তার কোড চেকইন করবে তখন গিট cr রিমোভ করে দিবে শুধু মাত্র সে lf রাখবে আবার একই ভাবে আলদীন যখন গিট হতে তার কোড চেক আউট করবে গিট তখন আবার তাকে crlf যোগ করে দিবে । এই বিহেভিয়ার পাওয়ার জন্য আমাদের core.autocrlf প্রপার্টিটি true করে দিতে হবে । একইভাবে যখন তারান্নুম যখন কোডটি চেকআউট করবে তখন সে এক্সপেক্ট করবে শুধু মাত্র LF আবার সে যখন কোড চেকইন করবে তখন গিট LF হিসেবে আপলোড করবে । সুতরাং তারান্নুম এর ক্ষেত্রে এই বিহেভিয়র এচিভ করার জন্য আমরা core.autocrlf প্রপার্টিকে input করে দিব ।

এবার টার্মিনালে নিচের কমান্ডটি দিব

# for windoows 
git config --global core.autocrlf true 
# for linux or macuser 
git config --global core.autocrlf input 
Enter fullscreen mode Exit fullscreen mode

ধন্যবাদ

The post গিট কনফিগারেশন (Configuring Git) appeared first on Aldinn Rocks.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay