কোন শাখায় প্রদত্ত প্রতিশ্রুতি রয়েছে তা জানতে আমি কীভাবে গিটকে জিজ্ঞাসা করতে পারি? gitk
সাধারণত খুব বেশি শাখা না থাকলে শাখাগুলি তালিকাভুক্ত করে case আমার পুরো তালিকাটি জানতে হবে, বা কমপক্ষে কোনও নির্দিষ্ট শাখায় কমিট রয়েছে কিনা তা জানতে হবে।
কোন শাখায় প্রদত্ত প্রতিশ্রুতি রয়েছে তা জানতে আমি কীভাবে গিটকে জিজ্ঞাসা করতে পারি? gitk
সাধারণত খুব বেশি শাখা না থাকলে শাখাগুলি তালিকাভুক্ত করে case আমার পুরো তালিকাটি জানতে হবে, বা কমপক্ষে কোনও নির্দিষ্ট শাখায় কমিট রয়েছে কিনা তা জানতে হবে।
উত্তর:
থেকে Git-শাখা ম্যানুয়েল পৃষ্ঠা :
git branch --contains <commit>
কেবলমাত্র শাখাগুলি নির্দিষ্ট করুন যা নির্দিষ্ট প্রতিশ্রুতি রয়েছে (যদি উল্লেখ না করা থাকে তবে হেড)। বোঝায়
--list
।
git branch -r --contains <commit>
দূরবর্তী ট্র্যাকিং শাখাগুলিও তালিকাভুক্ত করে ( নীচে ব্যবহারকারী 3941992 এর উত্তরে উল্লিখিত) এটি "স্থানীয় শাখা যাগুলির প্রত্যন্ত শাখার সাথে সরাসরি সম্পর্ক রয়েছে"।
এই গিট প্রস্তুত নিবন্ধটি দেখুন।
--contains
ট্যাগ জিনিসটা একটি নির্দিষ্ট কমিট আপনার শাখা মধ্যে এখনও আনা হয়েছে যদি হবে। সম্ভবত আপনি যে প্যাচটি ভেবেছিলেন যে আপনি প্রয়োগ করেছেন, সেটির কাছ থেকে আপনি একটি প্রতিশ্রুতিবদ্ধ SHA পেয়েছেন বা আপনি কেবলমাত্র আপনার প্রিয় ওপেন সোর্স প্রকল্পের জন্য প্রতিশ্রুতিবদ্ধ কিনা যা মেমরির ব্যবহারের 75% হ্রাস করে তা এখনও বন্ধ রয়েছে কিনা তা যাচাই করতে চান।
$ git log -1 tests
commit d590f2ac0635ec0053c4a7377bd929943d475297
Author: Nick Quaranto <nick@quaran.to>
Date: Wed Apr 1 20:38:59 2009 -0400
Green all around, finally.
$ git branch --contains d590f2
tests
* master
দ্রষ্টব্য: যদি প্রতিশ্রুতিটি কোনও দূরবর্তী ট্র্যাকিং শাখায় থাকে তবে -a
বিকল্পটি যুক্ত করুন ।
( নীচে মিচিয়েলবি মন্তব্য হিসাবে )
git branch -a --contains <commit>
ম্যাট্রিক্সফ্রোগ মন্তব্য করেছেন যে এটি কেবলমাত্র শাখাগুলিতে সেই সঠিক প্রতিশ্রুতি রয়েছে।
আপনি যদি জানতে চান কোন শাখাগুলিতে একটি "সমতুল্য" প্রতিশ্রুতি রয়েছে (অর্থাত্ কোন শাখাগুলিতে চেরি-বাছাই করা আছে) যেটি git cherry
:
git cherry
কমিট আইডি (শ 1) এর চেয়ে পরিবর্তনের তুলনা করার কারণে , আপনিgit cherry
স্থানীয়ভাবে করা<upstream>
কমিট আলাদা কমিট আইডির আওতায় প্রয়োগ করা হয়েছে কিনা তা জানতে আপনি ব্যবহার করতে পারেন ।
উদাহরণস্বরূপ, যদি আপনি<upstream>
ইমেলের মাধ্যমে প্যাচগুলি খাওয়ান বা সরাসরি কমিটস চাপান বা টানেন না this
__*__*__*__*__> <upstream>
/
fork-point
\__+__+__-__+__+__-__+__> <head>
(এখানে, -
' চিহ্নিত চিহ্নিত কমিটগুলি প্রদর্শন হবে না git cherry
, অর্থাত তারা ইতিমধ্যে উপস্থিত রয়েছে <upstream>
))
tests
এবং master
- master
বর্তমান শাখা, সুতরাং তারা।
git cherry
: "কারণ গিট চেরি কমিট আইডি (শে 1) এর পরিবর্তে চেঞ্জটি তুলনা করে, আপনি গিট চেরি ব্যবহার করতে পারেন এটি সন্ধান করতে যদি আপনি স্থানীয়ভাবে প্রতিশ্রুতিবদ্ধ থাকেন তবে <অপ্রাপ্তবয়স্ক> একটি ভিন্ন কমিট আইডির অধীনে প্রয়োগ করা হয়েছে For উদাহরণস্বরূপ, আপনি যদি সরাসরি কমিটকে চাপ দেওয়া বা টানানোর চেয়ে ইমেলের মাধ্যমে <upstream> প্যাচগুলি খাওয়াতেন তবে এটি ঘটবে "" kernel.org/pub/software/scm/git/docs/git-cherry.html
-a
দূরবর্তী শাখাগুলি পরীক্ষা করতে একটি পরামিতি যুক্ত করুন ।
git tag --contains <commit>
। দেখুন সমস্ত ট্যাগ করে একটি ধারণ কমিট খুঁজছেন? ।
git cherry
অংশ @UpAndAdam প্রশ্ন জিজ্ঞাসা এখানে: stackoverflow.com/questions/16304574/... , হায়রে প্রশ্ন না (এখনও) বললেন হয়েছে।
আপনি চালাতে পারেন:
git log <SHA1>..HEAD --ancestry-path --merges
আউটপুটে সর্বশেষ প্রতিশ্রুতিবদ্ধ মন্তব্য থেকে আপনি মূল শাখার নামটি খুঁজে পেতে পারেন
উদাহরণ:
c---e---g--- feature
/ \
-a---b---d---f---h---j--- master
git log e..master --ancestry-path --merges
commit h
Merge: g f
Author: Eugen Konkov <>
Date: Sat Oct 1 00:54:18 2016 +0300
Merge branch 'feature' into master
git log <SHA1>..master --ancestry-path --merges --oneline | tail -n1
এটি একটি লাইনে পেয়েছি
git log <SHA1>..master --ancestry-path --merges --oneline -1
A..B
প্রতিশ্রুতি পরিসর করতে পারবেন না , কেবল :: git log HEAD --oneline -1
> এর মতো পরিসর ব্যবহার করবেন না 82c12a9 (HEAD, origin/remote-branch-name, origin/master, origin/dev, origin/HEAD, master, dev) commit message
।
master
এটি এই তালিকায় থাকলে সর্বদা পছন্দ হয় । সেখান থেকে এটি কম পরিষ্কার। আপনি চেষ্টা এবং .gitmodules ফাইল থেকে Git শাখা পড়তে পারি: git config -f .gitmodules submodule.src/foo/submodule.branch
। এটি দীর্ঘস্থায়ী কাঁটাচামচ / পিআর হতে পারে। আপনি রুট রেপ এবং চালাতে সিডি করতে পারেন git config submodule.src/foo/submodule.branch
। আপনি সুপারপ্রজেক্টের বর্তমান গিট শাখাও ব্যবহার করতে পারেন।
git config submodule.src/foo/submodule.branch
সরু হিসাবে: কোনও রেপো-লোকাল .gitconfig ফাইল সহ গিট কনফিগারেশনের বিভিন্ন ধরণের দ্বারা প্রভাবিত হতে পারে। (চলমান প্রয়োজন git config --local include.path ./path/to/your/.gitconfig
)