উত্তর:
আপনি একটি হ্যাশের মাধ্যমে শাখা তৈরি করতে পারেন:
git branch branchname <sha1-of-commit>
বা প্রতীকী রেফারেন্স ব্যবহার করে:
git branch branchname HEAD~3
শাখাটি তৈরি করার সময় চেকআউট করতে, ব্যবহার করুন
git checkout -b branchname <sha1-of-commit or HEAD~3>
git push origin BRANCH_NAME
<sha1-of-commit>
রান থেকে একটি শাখা শুরু করতে git checkout -b <name-of-branch> <sha1-of-commit>
তবে শাখাটি ইতিমধ্যে উপস্থিত থাকলেgit checkout -B <name-of-branch> <sha1-of-commit>
Github.com এ এটি করতে:
গিট রিসেটের মাধ্যমে ম্যাজিকটি করা যেতে পারে ।
একটি নতুন শাখা তৈরি করুন এবং এতে স্যুইচ করুন (সুতরাং আপনার সর্বশেষ কমিটগুলি এখানে সঞ্চিত আছে)
git checkout -b your_new_branch
আপনার পূর্ববর্তী কার্যকারী শাখায় ফিরে যান (ধরুন এটির মাস্টার)
git checkout master
সর্বশেষ এক্স কমিটস সরান, মাস্টার পরিষ্কার রাখুন
git reset --hard HEAD~x # in your case, x = 3
এই মুহুর্ত থেকে, সমস্ত সর্বশেষ এক্স কমিটগুলি কেবলমাত্র নতুন শাখায় রয়েছে, আপনার আগের কার্যক্ষম শাখায় (মাস্টার) আর নেই।
git reset --hard
আপনি ইতিমধ্যে প্রতিশ্রুতিটি উত্সের দিকে ঠেলে দিলে এটি একটি ভাল ধারণা নয় ...
git push --force
যদি ইতিমধ্যে শাখাটি ধাক্কা দিয়ে থাকেন তবে
আপনি যদি নিশ্চিত হন না যে আপনি কোন অঙ্গীকারটি আগে থেকেই শাখা করতে চান আপনি কমিটগুলি পরীক্ষা করে দেখতে পারেন এবং তাদের কোডগুলি পরীক্ষা করতে পারেন (উত্স, সংকলন, পরীক্ষা দেখুন) দ্বারা
git checkout <sha1-of-commit>
আপনি যখন শাখা করতে চান সেই প্রতিশ্রুতিটি খুঁজে পাওয়ার পরে আপনি কমিটের মধ্যে থেকে (যেমন প্রথমে মাস্টারের কাছে ফিরে না গিয়ে) কেবল সাধারণ উপায়ে একটি শাখা তৈরি করে তা করতে পারেন:
git checkout -b <branch_name>
git checkout -b <branch-name> <sha1-of-commit>
git branch branchname <sha1-of-commit>
" (স্বীকৃত উত্তর থেকে) থেকে কীভাবে আলাদা ?
git checkout -b
একটি নতুন শাখা তৈরি করতে ব্যবহার করি ।
আপনার গিথুব রেপোতে এটি করার একটি দ্রুত উপায় নিম্নলিখিত হিসাবে থাকবে:
সহজভাবে চালান:
git checkout -b branch-name <commit>
উদাহরণ স্বরূপ :
git checkout -b import/january-2019 1d0fa4fa9ea961182114b63976482e634a8067b8
checkout
পরামিতি সঙ্গে কমান্ড -b
একটি নতুন শাখা তৈরি করবে এবং তা থেকে তোমাদের উপর পাল্টাবে
git fetch
ও git branch
কমান্ড দিন, তবে যদি বৈশিষ্ট্য শাখাটি বিদ্যমান রয়েছে কিনা তা পরীক্ষা করে দেখুন, যদি হ্যাঁ, অবশ্যই আপনি মুছে ফেলা শাখাগুলি থেকে একটি শাখা তৈরি করতে সক্ষম হবেন না, আপনি ক্ষেত্রে শাখা মুছে ফেলার ক্ষেত্রেও পরিবর্তন করতে পারবেন শাখাটি গেছে
একটি দুর্দান্ত সম্পর্কিত প্রশ্ন হ'ল --help
গিটের বিকল্পটি ব্যবহার করে কীভাবে আপনি এটিকে আবিষ্কার করতে পারেন ? এর চেষ্টা করুন:
git branch --help
আমরা এই আউটপুট দেখতে:
NAME
git-branch - List, create, or delete branches
SYNOPSIS
git branch [--color[=<when>] | --no-color] [-r | -a]
[--list] [-v [--abbrev=<length> | --no-abbrev]]
[--column[=<options>] | --no-column]
[(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>]
[--points-at <object>] [<pattern>...]
git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
git branch --unset-upstream [<branchname>]
git branch (-m | -M) [<oldbranch>] <newbranch>
git branch (-d | -D) [-r] <branchname>...
git branch --edit-description [<branchname>]
দুর্বোধ্য গুরুগম্ভীর পরিভাষা-কণ্টকিত ভাষা।
"কমিট" শব্দটির পরবর্তী পাঠ্যগুলি অনুসন্ধান করুন। আমরা এটি পাই:
<start-point>
The new branch head will point to this commit. It may be given as a branch name, a
commit-id, or a tag. If this option is omitted, the current HEAD will be used instead.
আমরা কোথাও পাচ্ছি!
এখন, গাবলডেগুকের এই লাইনে ফোকাস করুন:
git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
এটিকে শর্ত করুন:
git branch <branchname> [<start-point>]
এবং সম্পন্ন।
Eclipse এ এটি করতে:
এটি আপনার জন্য একটি স্থানীয় শাখা তৈরি করবে। তারপরে আপনি যখনই আপনার পরিবর্তনগুলি ধাক্কা দেবেন, তখন আপনার শাখাটি দূরবর্তী সার্ভারে চাপ দেওয়া হবে।
আপনি স্ট্যাশ এ এটি করতে পারেন।
আমি এটি এর মতো করতে সক্ষম হয়েছি:
git branch new_branch_name `git log -n 1 --skip 3 --format=%H`
যেখানে আপনাকে অবশ্যই এড়িয়ে যাওয়ার মান লিখতে হবে। 0 সর্বশেষ, 1 এর আগের, 2 এর আগে প্রতিশ্রুতিবদ্ধকরণ ইত্যাদি etc.
HEAD~1
(যেখানে 1 টি 1 টি প্রতিশ্রুতি ফিরিয়ে দেয়)?
এটি একটি কমান্ড দিয়ে শাখা তৈরি করে:
git push origin <sha1-of-commit>:refs/heads/<branch-name>
আমি উপরের প্রকাশিতগুলির চেয়ে এই উপায়ে আরও ভাল পছন্দ করি কারণ এটি শাখাটি তত্ক্ষণাত্ তৈরি করে (পরে কোনও অতিরিক্ত পুশ কমান্ডের প্রয়োজন হয় না)।
সোর্সট্রি ব্যবহার | সহজতম পথ.
এটি আমিই করেছি:
C:\Users\[path]\build>git checkout -b responsivenavigation 8a75b001096536b3216022484af3026aa9c7bb5b
Switched to a new branch 'responsivenavigation'
C:\Users\jaimemontoya\Dropbox\CuponClub\androidapp\build>git branch
master
* responsivenavigation
এই ক্ষেত্রে, শাখার অন্তর্ভুক্ত 8a75b001096536b3216022484af3026aa9c7bb5b
ছিল এবং পুরানো প্রতিশ্রুতি master
।
গিট সংগ্রহস্থলের একটি বিশেষ প্রতিশ্রুতিতে যান
কখনও কখনও গিট সংগ্রহস্থল নিয়ে কাজ করার সময় আপনি নির্দিষ্ট সময়ে আপনার প্রকল্পের স্ন্যাপশট পেতে কোনও নির্দিষ্ট প্রতিশ্রুতি (পুনর্বিবেচনা) -এ ফিরে যেতে চান। এটি করার জন্য আপনাকে যে কমিটের সাহায্যে লগ চেক করতে সহজেই পাওয়া যাবে তার কমিটের SHA-1 হ্যাশটি দরকার:
git log --abbrev-commit --pretty=oneline
যা আপনাকে সমস্ত কমিটের একটি কমপ্যাক্ট তালিকা এবং SHA-1 হ্যাশের সংক্ষিপ্ত সংস্করণ দেবে।
এখন আপনি যে কমিটের কাছে যেতে চান তা জানতে পেরে আপনি নীচের 2 টি কমান্ড ব্যবহার করতে পারেন:
git checkout HASH
অথবা
git reset --hard HASH
চেকআউট
git checkout <commit> <paths>
গিটকে প্রদত্ত প্রতিশ্রুতিতে বর্তমানের রাস্তাগুলি তাদের রাষ্ট্রের সাথে প্রতিস্থাপন করতে বলে। পাথ ফাইল বা ডিরেক্টরি হতে পারে।
যদি কোনও শাখা দেওয়া না হয়, গিটটি হেড কমিট অনুমান করে।
git checkout <path> // restores path from your last commit. It is a 'filesystem-undo'.
যদি কোনও পথ না দেওয়া হয়, HEAD
প্রদত্ত প্রতিশ্রুতিতে গিটটি সরান (এরপরে আপনি যে প্রতিশ্রুতিতে বসেছেন এবং এতে কাজ করছেন তা পরিবর্তন করে)।
git checkout branch //means switching branches.
রিসেট
git reset <commit> //re-sets the current pointer to the given commit.
আপনি যদি একটি শাখায় থাকেন (আপনার সাধারণত হওয়া উচিত) HEAD
এবং এই শাখাটি প্রতিশ্রুতিবদ্ধ হতে প্ররোচিত হয়।
আপনি যদি বিচ্ছিন্ন HEAD
অবস্থায় থাকেন তবে গিট রিসেট কেবল স্থানান্তরিত হবে না HEAD
। কোনও শাখা পুনরায় সেট করতে প্রথমে এটি পরীক্ষা করে দেখুন।
গিট রিসেট এবং গিট চেকআউটের মধ্যে পার্থক্য সম্পর্কে আপনি যদি আরও জানতে চান তবে আমি অফিসিয়াল গিট ব্লগটি পড়ার পরামর্শ দেব ।
git log --abbrev-commit --pretty=oneline
সংক্ষেপে বলা যেতে পারেgit log --oneline
গিট জিইউআই ব্যবহারকারীদের জন্য আপনি সমস্ত ইতিহাস (যদি প্রয়োজন হয়) কল্পনা করতে পারেন এবং তারপরে শাখাটির যে শাখাটি আপনি শাখা করতে চান তা ক্লিক করে ডান ক্লিক করুন branch
ভিজ্যুয়াল স্টুডিও 2015 এবং 2017 এ গৃহীত উত্তরটি করতে:
পরিবর্তনগুলিতে ক্লিক করুন (উপরে লাল তীর)
ক্রিয়াগুলিতে ক্লিক করুন (উপরে লাল তীর) এবং ড্রপডাউন মেনুতে ইতিহাস দেখুন ক্লিক করুন
এবং নতুন ট্যাব খুলবে:
এবং আপনার পূর্ববর্তী প্রতিশ্রুতিতে ডানদিকে ক্লিক করা উচিত যা আপনি নিজের কোডটিতে ফিরে যেতে চান:
একটি নতুন শাখা এবং voil to চেকআউট চয়ন করুন!
নীচে, যদিও ওপি প্রশ্নের অংশ নয়, তবে আমি উভয়ই করি এবং এটি একটি কৌশল পদক্ষেপ, কমপক্ষে আমার কাছে: আপনি যদি কোনও নতুন শাখায় চেকআউট ছাড়াই পূর্ববর্তী প্রতিশ্রুতিতে ফিরে যেতে চান, তবে প্রত্যাবর্তনটি চয়ন করবেন না (! ?); আপনার পুনরায় সংজ্ঞা বা মেশিন পছন্দ করা উচিত:
আপনি যদি সোজা সামনের দিকে সোর্স ট্রি ব্যবহার করেন।
আপনি যদি কমান্ড-লাইন ভিত্তিক সমাধানের সন্ধান করে থাকেন তবে আপনি আমার উত্তর উপেক্ষা করতে পারেন। আমি আপনাকে গিটক্রেন ব্যবহার করার পরামর্শ দিচ্ছি । এটি একটি অসাধারণ গিট ইউআই ক্লায়েন্ট। এটি হোমপেজে গিট ট্রি দেখায়। আপনি কেবল তাদের দিকে তাকান এবং প্রকল্পটির সাথে কী চলছে তা জানতে পারবেন। কেবল একটি নির্দিষ্ট প্রতিশ্রুতি নির্বাচন করুন, এটিতে ডান ক্লিক করুন এবং 'এখানে একটি শাখা তৈরি করুন' বিকল্পটি নির্বাচন করুন। এটি শাখার নাম লিখতে আপনাকে একটি পাঠ্য বাক্স দেবে। শাখার নাম লিখুন, 'ঠিক আছে' নির্বাচন করুন এবং আপনি সেট হয়ে গেছেন। এটি ব্যবহার করা সত্যিই খুব সহজ।