উইন্ডোজে গিট এবং বিটবকেট দিয়ে সবে শুরু করা এবং বাশের সাথে যারা এতটা পরিচিত নন তাদের জন্য এটি লেখার জন্য (যেহেতু এটি উভয় একটি সাধারণ সমস্যা এবং প্রশ্নের মধ্যে ত্রুটির বার্তা অনুসন্ধান করার সময় গুগলের একটি উচ্চতর ফলাফল)।
যারা এইচটিটিপিএসকে আপত্তি করে না এবং যারা দ্রুত সমাধানের সন্ধান করছেন তাদের জন্য অলস-এর নির্দেশাবলীর জন্য এই উত্তরের নীচে স্ক্রোল করুন
যারা আসল সমস্যাটি সমাধান করতে চাইছেন তাদের জন্য নীচের নির্দেশিকাগুলি অনুসরণ করুন:
যত দ্রুত সম্ভব এসএসএইচ সমস্যা ঠিক করা Fix
এটি ভনসির লিঙ্কযুক্ত URL থেকে প্রাপ্ত নির্দেশাবলীর একটি সেট। এটি যতটা সম্ভব স্থিতিস্থাপক এবং সংশ্লেষ হিসাবে পরিবর্তিত হয়েছিল।
আপনার বৈশ্বিক তথ্য সেট করুন যদি আপনি ইতিমধ্যে না:
$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"
ওপেনএসএইচ-র জন্য পরীক্ষা করুন:
$ ssh -v localhost
OpenSSH_4.6p1, OpenSSL...
এরকম কিছু দেখুন?
- হ্যাঁ: চালিয়ে যান।
- নং: এড়িয়ে যেতে জন্য Thế অলস বিভাগে বা VonC থেকে লিঙ্ক নিবন্ধ অনুসরণ করুন।
আপনি কীগুলি ইতিমধ্যে তৈরি করেছেন কিনা তা দেখুন:
$ ls -a ~/.ssh/id_*
যদি দুটি ফাইল থাকে তবে আপনি পরবর্তী পদক্ষেপটি এড়িয়ে যেতে পারেন।
$ ssh-keygen
সমস্ত কিছু ডিফল্ট হিসাবে ছেড়ে দিন, একটি পাসফ্রেজ দিন। আপনার এখন এই আদেশটি দিয়ে ফলাফলগুলি দেখতে হবে:
$ ls -a ~/.ssh/id_*
বিদ্যমান কনফিগারেশন ফাইলের জন্য পরীক্ষা করুন:
$ ls -a ~/.ssh/config
আপনি যদি কোনও ফলাফল পান তবে ভুল তথ্যের জন্য এই ফাইলটি পরীক্ষা করে দেখুন। যদি কোনও ফাইল বিদ্যমান না থাকে তবে নিম্নলিখিতটি করুন:
$ echo "Host bitbucket.org" >> ~/.ssh/config
$ echo " IdentityFile ~/.ssh/id_rsa" >> ~/.ssh/config
বিষয়বস্তু নিশ্চিত করুন:
$ cat ~/.ssh/config
Host bitbucket.org
IdentityFile ~/.ssh/id_rsa
- "আইডেন্টিটি ফাইল" এর আগে একক স্থান প্রয়োজন।
আপনি যখনই গিটব্যাশ চালান তখনই আপনি এসএসএইচ এজেন্ট শুরু করছেন কিনা পরীক্ষা করুন:
$ cat ~/.bashrc
- যদি আপনি কোনও ফাংশন বলে দেখেন তবে
start_agent
ইতিমধ্যে এই পদক্ষেপটি সম্পন্ন হয়েছে।
- ফাইল না থাকলে চালিয়ে যান।
- যদি কোনও ফাইল থাকে যা এই ফাংশনটি ধারণ করে না, আপনি একটি চটচটে পরিস্থিতিতে রয়েছেন। এটি সম্ভবত যুক্ত করা নিরাপদ (নীচের নির্দেশাবলী ব্যবহার করে) তবে এটি নাও হতে পারে! যদি অনিশ্চিত হয় তবে নীচের নির্দেশাবলী অনুসরণ করার আগে আপনার .bashrc এর একটি ব্যাকআপ তৈরি করুন বা অলস বিভাগে এগিয়ে যান ।
আপনার .bashrc ফাইলটি তৈরি করতে নিম্নলিখিতটি গিটব্যাশে প্রবেশ করুন:
$ echo "SSH_ENV=$HOME/.ssh/environment" >> ~/.bashrc
$ echo "" >> ~/.bashrc
$ echo "# start the ssh-agent" >> ~/.bashrc
$ echo "function start_agent {" >> ~/.bashrc
$ echo " echo \"Initializing new SSH agent...\"" >> ~/.bashrc
$ echo " # spawn ssh-agent" >> ~/.bashrc
$ echo " /usr/bin/ssh-agent | sed 's/^echo/#echo/' > \"\${SSH_ENV}\"" >> ~/.bashrc
$ echo " echo succeeded" >> ~/.bashrc
$ echo " chmod 600 \"\${SSH_ENV}\"" >> ~/.bashrc
$ echo " . \"\${SSH_ENV}\" > /dev/null" >> ~/.bashrc
$ echo " /usr/bin/ssh-add" >> ~/.bashrc
$ echo "}" >> ~/.bashrc
$ echo "" >> ~/.bashrc
$ echo "if [ -f \"\${SSH_ENV}\" ]; then" >> ~/.bashrc
$ echo " . \"\${SSH_ENV}\" > /dev/null" >> ~/.bashrc
$ echo " ps -ef | grep \${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {" >> ~/.bashrc
$ echo " start_agent;" >> ~/.bashrc
$ echo " }" >> ~/.bashrc
$ echo "else" >> ~/.bashrc
$ echo " start_agent;" >> ~/.bashrc
$ echo "fi" >> ~/.bashrc
ফাইলটি সফলভাবে তৈরি করা হয়েছে যাচাই করুন (যেখানে "আপনার ব্যবহারকারীর নাম" প্রদর্শিত হবে সেখানে কেবল আপনার পৃথক হওয়া উচিত):
$ cat ~/.bashrc
SSH_ENV=/c/Users/yourusername/.ssh/environment
# start the ssh-agent
function start_agent {
echo "Initializing new SSH agent..."
# spawn ssh-agent
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add
}
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
- গিটব্যাশ বন্ধ করুন এবং এটি আবার খুলুন।
- আপনাকে আপনার পাসফ্রেজ জিজ্ঞাসা করা উচিত (এসএসএইচ ফাইলের জন্য আপনি আগে তৈরি করেছেন)।
- যদি কোনও প্রম্পট না হয় আপনি হয় কোনও পাসফ্রেজ সেট করেন নি বা গিটব্যাশ .bashrc স্ক্রিপ্টটি চালাচ্ছেন না (যা অদ্ভুত হবে তাই এর বিষয়বস্তু পর্যালোচনা বিবেচনা করুন!)। আপনি যদি এটি কোনও ম্যাক (ওএস এক্স) এ চালাচ্ছেন তবে এটি
.bashrc
ডিফল্টরূপে কার্যকর করা হয় না - .bash_profile
হয়। এটি ঠিক করতে, এই স্নিপেটটি আপনার .bash_profile
:[[ -s ~/.bashrc ]] && source ~/.bashrc
আপনি যদি কোনও পাসফ্রেজ প্রবেশ না করে থাকেন, গিটব্যাশ শুরু করার সময় আপনি এমন কিছু দেখতে পেয়েছিলেন:
Initializing new SSH agent...
succeeded
Identity added: /c/Users/yourusername/.ssh/id_rsa (/c/Users/yourusername/.ssh/id_rsa)
এবং নিম্নলিখিতগুলির ফলাফলগুলি ফিরে আসা উচিত:
$ ssh-add -l
তবে, আপনি যদি নিম্নলিখিতগুলি থেকে পান ssh-add -l
:
Could not open a connection to your authentication agent.
এটি এসএসএইচ এজেন্টকে উত্সাহ দেয়নি এবং আপনার .bashrc সম্ভবত এটির কারণ।
যদি, গিটব্যাশ শুরু করার সময়, আপনি এটি দেখতে পান:
Initializing new SSH agent...
sh.exe": : No such file or directory
তার মানে আপনি যখন ফাইলটিতে প্রতিধ্বনিত হবেন তখন a a সহ escape পালাতে ভুলে গিয়েছিলেন (অর্থাত্ ভেরিয়েবলগুলি প্রসারিত হয়েছিল)। এটি সমাধানের জন্য আপনার .bashrc পুনরায় তৈরি করুন।
এজেন্ট চলছে কিনা তা যাচাই করুন এবং আপনার কীগুলি যুক্ত করা হয়েছে:
$ ssh-add -l
এর মতো কিছু প্রত্যাবর্তন করা উচিত:
2048 0f:37:21:af:1b:31:d5:cd:65:58:b2:68:4a:ba:a2:46 /Users/yourusername/.ssh/id_rsa (RSA)
আপনার সর্বজনীন কী পেতে নিম্নলিখিত কমান্ডটি চালান:
$ cat ~/.ssh/id_rsa.pub
(এটি "এসএসএস-আরএসএ ......" দিয়ে শুরু করে কিছু ফিরিয়ে দেওয়া উচিত)
- গিটব্যাশ উইন্ডো আইকনটি ক্লিক করুন
- সম্পাদনা ক্লিক করুন
- চিহ্ন ক্লিক করুন
- আপনার মাউস ব্যবহার করে সর্বজনীন কী হাইলাইট করুন (শীর্ষস্থানীয়
ssh-rsa
বিট এবং ট্রেলিং == youremail@yourdomain.com
বিট সহ)
- উইন্ডোতে ডান ক্লিক করুন (একটি অনুলিপি সম্পাদন করুন)
- আপনার সর্বজনীন কী নোটপ্যাডে আটকান।
- সমস্ত নিউলাইনগুলি মুছুন যেমন এটি কেবল একটি লাইন line
- প্রেস
CTRL+A
তারপর CTRL+C
আপনার ক্লিপবোর্ডে আবার সর্বজনীন কী কপি করতে।
নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করে আপনার ব্যক্তিগত কীটি বিটবাকেটের সাথে কনফিগার করুন:
- আপনার ব্রাউজারটি খুলুন এবং BitBucket.org সাইটে নেভিগেট করুন
- BitBucket.org এ লগইন করুন
- আপনার অবতারটি ক্লিক করুন (উপরে-ডান)
- অ্যাকাউন্ট পরিচালনা করুন ক্লিক করুন
- এসএসএইচ কীগুলি (বাম-হাতের মেনুতে সুরক্ষার অধীনে) ক্লিক করুন
- কী যুক্ত করুন ক্লিক করুন
Global Public Key
লেবেলের জন্য প্রবেশ করান
- নোটপ্যাড থেকে আপনার অনুলিপি করা সর্বজনীন কী আটকান
Global Public Key
আপনার কীগুলির তালিকায় এখন একটি এন্ট্রি দৃশ্যমান হওয়া উচিত।
- গিটব্যাশে ফিরে আসুন
- আপনার প্রকল্পের ডিরেক্টরিতে সিডি করুন
- আপনার উত্সকে এসএসএইচ প্রকরণে পরিবর্তন করুন (আপনি যদি অলস পদক্ষেপের জন্য দৌড়েন তবে তা হবে না )
আপনার রিমোটগুলি পরীক্ষা করুন:
$ git remote -v
এসএসএইচ url এ স্যুইচ করুন:
$ git remote set-url origin git@bitbucket.org:youraccount/yourproject.git
জিনিসগুলি কাজের ক্রমে রয়েছে তা পরীক্ষা করুন:
$ git remote show origin
আপনার এমন কিছু দেখা উচিত:
Warning: Permanently added the RSA host key for IP address '...' to the list of known hosts.
* remote origin
Fetch URL: git@bitbucket.org:youruser/yourproject.git
Push URL: git@bitbucket.org:youruser/yourproject.git
HEAD branch: master
Remote branch:
master tracked
Local ref configured for 'git push':
master pushes to master (fast-forwardable)
সম্পন্ন!
আপনি এসএসএইচের পরিবর্তে এইচটিটিপিএস ব্যবহার করতে বেছে নিতে পারেন। দূরবর্তী ক্রিয়াকলাপগুলির সময় আপনাকে আপনার পাসওয়ার্ডটি টাইপ করতে হবে (আপনি একবার এটি টাইপ করার পরে এটি অস্থায়ীভাবে ক্যাশে হবে)। আপনি এইচটিটিপিএস কনফিগার করতে পারেন তা এখানে:
অলস জন্য
ভনসির বর্ণিত হিসাবে আপনার এসএসএইচ সমস্যাটি ঠিক করা উচিত; তবে কমিট প্রয়োজন এবং না থাকলে আপনি একটি ভিড়ের মধ্যে আছেন সরঞ্জাম / সময় / জ্ঞান একটি নতুন সর্বজনীন কী জেনারেট করতে ডান এখন , HTTPS দ্বারা বিকল্প আপনার উৎপত্তি সেট করুন:
> https://accountname@bitbucket.org/accountname/reponame.git
একটি জিইউআই সরঞ্জাম যেমন টরটোজজিট বা কমান্ড লাইন সরঞ্জাম ব্যবহার করে ।
এই বিকল্প উত্স URL এর ডকুমেন্টেশন এখানে।
কোনও অস্তিত্ব না থাকলে একটি উত্স যুক্ত করার জন্য কমান্ড লাইন:
git remote add origin https://accountname@bitbucket.org/accountname/reponame.git
বিদ্যমান উত্স পরিবর্তন করতে কমান্ড লাইন:
git remote set-url origin https://accountname@bitbucket.org/accountname/reponame.git
দ্রষ্টব্য: আপনার অ্যাকাউন্টের নামটি আপনার ইমেল নয়।
আপনি নিজের বিশ্বব্যাপী তথ্যও সেট করতে চাইতে পারেন:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
তারপরে আপনার ধাক্কা আবার চেষ্টা করুন (আবার প্রতিশ্রুতি দেওয়ার দরকার নেই)
git push origin master