গিতে শাখা টোপোলজি ভিজ্যুয়ালাইজ করা


882

আমি গিটের সাথে আমার নিজের মেশিনে বিচ্ছিন্ন হয়ে খেলছি এবং আমার সমস্ত শাখা এবং অঙ্গীকারের মানসিক মডেল বজায় রাখা আমার পক্ষে কঠিন। আমি জানি আমি git logযেখান থেকে প্রতিশ্রুতিবদ্ধ ইতিহাস দেখতে একটি করতে পারি , তবে পুরো শাখার টোগোগ্রাফি দেখার কোনও উপায় কি এই এসকিআইআই মানচিত্রের মতো যা শাখা ব্যাখ্যা করার জন্য সর্বত্র ব্যবহৃত হয়?

      .-A---M---N---O---P
     /     /   /   /   /
    I     B   C   D   E
     \   /   /   /   /
      `-------------'

এটি কেবল মনে হচ্ছে যে কেউ এসেছেন এবং আমার সংগ্রহশালাটি বেছে নেওয়ার চেষ্টা করছেন ঠিক কী কাজ চলছে তা কার্যকর করতে অসুবিধা হবে।

আমার ধারণা আমি অ্যাকুরাভের স্ট্রিম ব্রাউজার দ্বারা প্রভাবিত ...



1
@ Leif81, আমার জন্য একটি অর্ধ নকল। @ মসি তার প্রশ্নের মধ্যে গিটকে স্পষ্টতই বাদ দিয়েছে।
বেনজল

উত্তর:


1080

ব্যবহার করুন git log --graphবা gitk। (উভয়ই গ্রহণ করে --all, যা কেবলমাত্র বর্তমানের পরিবর্তে সমস্ত শাখা প্রদর্শন করবে show)

শাখার নাম এবং একটি কমপ্যাক্ট ভিউয়ের জন্য, চেষ্টা করুন:

git log --graph --decorate --oneline

46
এমনকি শাখাগুলির সাথে কমিটগুলিও লেবেল করে না। আমি এটিকে যেমন হয় তেমন একটি ভাল দৃশ্যায়ন বলব না।
রোমান স্টারকভ

7
ধন্যবাদ! গিটগের বিকল্পও রয়েছে এবং কমিটগুলিও --allলেবেল করে। ড্রপডাউনটিতে আমি কখনও দেখিনি যে আপনি সেখানে সমস্ত শাখা নির্বাচন করতে পারেন।
থমাস

210
আমি প্রস্তাব দিই git log --graph --decorate --oneline- প্রতি লাইনে একটি প্রতিশ্রুতি দেখায় এবং শাখার নাম দিয়ে সজ্জিত করে।
স্লেসকে

8
স্পর্শ (ক ncurse Git ক্লায়েন্ট) এছাড়াও উপলব্ধ --allবিকল্প। বেশ সহজ!
পিয়েরে-অ্যাড্রিয়েন

5
আরও দেখুন অ্যান্ড্রু দ্বারা উত্তর সংক্রান্ত --simplify-by-decorationবিকল্প।
রুভিম

482

আমি সাধারণত ব্যবহার করি

git log --graph --full-history --all --pretty=format:"%h%x09%d%x20%s"

রঙ সহ (যদি আপনার শেলটি বাশ হয়):

git log --graph --full-history --all --color \
        --pretty=format:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s"

এটি পাঠ্য-ভিত্তিক উপস্থাপনাটি এর মতো মুদ্রণ করবে:

* 040cc7c       (HEAD, master) Manual is NOT built by default
* a29ceb7       Removed offensive binary file that was compiled on my machine and was hence incompatible with other machines.
| * 901c7dd     (cvc3) cvc3 now configured before building
| * d9e8b5e     More sane Yices SMT solver caller
| | * 5b98a10   (nullvars) All uninitialized variables get zero inits
| |/
| * 1cad874     CFLAGS for cvc3 to work successfully
| *   1579581   Merge branch 'llvm-inv' into cvc3
| |\
| | * a9a246b   nostaticalias option
| | * 73b91cc   Comment about aliases.
| | * 001b20a   Prints number of iteration and node.
| |/
|/|
| * 39d2638     Included header files to cvc3 sources
| * 266023b     Added cvc3 to blast infrastructure.
| * ac9eb10     Initial sources of cvc3-1.5
|/
* d642f88       Option -aliasstat, by default stats are suppressed

(আপনি কেবল ব্যবহার করতে পারেন git log --format=oneline, তবে এটি সংখ্যায় কমিট বার্তাগুলি বেঁধে দেবে, যা দেখতে কম সুন্দর দেখাচ্ছে)

এই আদেশের শর্টকাট তৈরি করতে, আপনি নিজের ~/.gitconfigফাইলটি সম্পাদনা করতে চাইতে পারেন :

[alias]
  gr = log --graph --full-history --all --color --pretty=tformat:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s%x20%x1b[33m(%an)%x1b[0m"

যাইহোক, মন্তব্যগুলিতে সোডেল ভোকিফেরাস নোট হিসাবে , এই জাতীয় দীর্ঘ বিন্যাস কমান্ডটি মুখস্থ করা শক্ত। সাধারণত, এটি ~/.gitconfigফাইল হিসাবে রাখলে এটি কোনও সমস্যা নয় into তবে, আপনাকে যদি কখনও কখনও এমন কোনও দূরবর্তী মেশিনে লগ ইন করতে হয় যেখানে আপনি কনফিগার ফাইলটি পরিবর্তন করতে পারবেন না, আপনি সংস্করণটি টাইপ করার জন্য আরও সাধারণ কিন্তু দ্রুত ব্যবহার করতে পারেন:

git log --graph --oneline

10
আপনি যদি তারিখগুলি পছন্দ করেন: গিট লগ - অনুগ্রহ - পুরো ইতিহাস - সমস্ত - রঙ - তারিখ = সংক্ষিপ্ত - ব্যাখ্যা = ফর্ম্যাট: "% x1b [31m% h% x09% x1b [32m% d% x1b [ 0 মি% x20% বিজ্ঞাপন% s "
সেহাগ

7
- ওনলাইন হ'ল সেই সুন্দর ফর্ম্যাটিং ডিপ-ম্যাজিকের জন্য আরও একটি স্মরণীয় বিকল্প।
ড্যানিয়েল রালস্টন

1
@ সোডেলথেভোসিফরাস, সত্যই, আপনি যে পক্ষের কথা বলছেন সেখান থেকে আমি সমস্যার দিকে যাইনি; আমি আমার উত্তর প্রসারিত।
পি

2
দ্রষ্টব্য: --full-historyকেবল --simplify-by-decorationকোনও ফাইলপথ ব্যবহার বা নির্দিষ্ট করার সময় প্রাসঙ্গিক ।
স্লিপ ডি থম্পসন

2
আমি জিজ্ঞাসা করতে পারি আপনি কোথা থেকে ফর্ম্যাট স্ট্রিংটি পেয়েছেন? অথবা পৃথিবীতে কীভাবে আপনি এই বিষয়টিকে ঘৃণা করলেন?
এলিওটওয়েসফ

442

আমার কাছে আমার 3 টি এলিয়াস (এবং দ্রুত ব্যবহারের জন্য 4 টি উপন্যাস-এলিয়াস) রয়েছে যা আমি সাধারণত আমার ~/.gitconfigফাইলটিতে ফেলে দিই :

[alias]
    lg = lg1
    lg1 = lg1-specific --all
    lg2 = lg2-specific --all
    lg3 = lg3-specific --all

    lg1-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(auto)%d%C(reset)'
    lg2-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(auto)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)'
    lg3-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset) %C(bold cyan)(committed: %cD)%C(reset) %C(auto)%d%C(reset)%n''          %C(white)%s%C(reset)%n''          %C(dim white)- %an <%ae> %C(reset) %C(dim white)(committer: %cn <%ce>)%C(reset)'

git lg/ git lg1দেখে মনে হচ্ছে:

গিট এলজি 1

git lg2 এটা এমন দেখতে:

গিট এলজি 2

এবং এর git lg3মতো দেখাচ্ছে:

গিট এলজি 3

এটি লক্ষ করা উচিত যে এটি সর্বদিক-সর্বস্তরের সমাধান হিসাবে নয় - এটি আপনার পছন্দ অনুসারে পরিবর্তন করতে, যুক্ত করতে এবং ঠিক করার জন্য এটি একটি টেমপ্লেট। আপনি যদি এটি ব্যবহার করতে চান তবে আমার সুপারিশটি হ'ল:

  1. এগুলিকে আপনার .gitconfig,
  2. আপনার পছন্দ অনুসারে কাস্টমাইজ করুন (বিভিন্ন রঙ পছন্দ, 2- এবং 3-লাইনের সংস্করণ ইত্যাদির জন্য আলাদা লাইন বিন্যাস),
  3. এবং তারপরে একটি অনুলিপি বা অন্য কোড স্নিপেট সরঞ্জামে একটি অনুলিপি সংরক্ষণ করুন যাতে আপনি .gitconfigভবিষ্যতে এটি অনুলিপি করে আটকে দিতে পারেন (বা বিকল্পভাবে সংস্করণটি আপনার ডটফাইলে অবশ্যই নিয়ন্ত্রণ করে)

দ্রষ্টব্য: উত্তরটি অনুলিপি করা হয়েছে এবং স্ট্যাকওভারফ্লো / প্রশ্নগুলি ১০০৫756464/ ব্যাখ্যাty-git- ব্র্যাঙ্ক- অনুচ্ছেদে উত্তরের চেয়ে উন্নত হয়েছে কারণ এটি এখানে ছিল বলে তার চেয়ে এখানে অনেক বেশি উপযুক্ত। Questionতিহাসিক কারণে অন্য প্রশ্নের অনুলিপিটি রেখে দিন - এটি এখন বন্ধ হয়ে গেছে, এবং উত্তরটি অন্যান্য উত্তরগুলির একগুচ্ছ দ্বারা রেফারেন্স করা হয়েছে।


10
প্রস্তাবনা: প্রতিস্থাপন %C(bold yellow)সঙ্গে %C(auto)জন্য বিভিন্ন রং থাকার জন্য HEAD, স্থানীয় এবং দূরবর্তী শাখা ( সুত্র )।
অ্যাটকোল্ড

2
নোট করুন যে আপনি নিজের ফর্ম্যাট স্ট্রিংয়ে ম্যানুয়ালি ইনডেন্টেশন যুক্ত এড়াতে পারবেন %w(); এইভাবে আপনি গ্রাফ গোলযোগ না করে সঠিকভাবে লাইন-মোড়ানো বা মাল্টি-লাইন কমিট বার্তাটিও করতে পারেন can
চার্লিগ্রিন

1
@ এমবাবাদি ২৩ প্ল্যাটফর্ম এবং গিট ইনস্টলেশন জুড়ে ধারাবাহিকতার জন্য এগুলি অপ্রয়োজনীয়। --abbrev-commitসেখানে রয়েছেন কারণ ২ য়-তৃতীয় লাইনগুলি স্পেসগুলির সাথে হস্তান্তরিত রয়েছে এবং আমি একেবারে নিশ্চিত করতে চেয়েছিলাম যে এটি সংক্ষিপ্ত SHA— ব্যবহার করবে যাতে দুঃখিতের চেয়ে আরও নিরাপদ। --decorateসেখানেও রয়েছেন কারণ যদিও গিটের ডিফল্ট একই কাজ করে, এটি বিভিন্ন গিট সংস্করণে আলাদাভাবে বা ভিন্নভাবে কনফিগার করা যেতে পারে these এগুলির জন্য, আমি একেবারে সজ্জা চাই। শেষ পর্যন্ত, অতিরিক্ত / অপ্রয়োজনীয় পতাকাগুলি এখানে খারাপ নয় — এটি একটি ফাইলে যায়; এটি আপনি সমস্ত সময় টাইপ কিছু নয়।
স্লিপ ডি থম্পসন

1
@ টিমোথিপুলিয়াম প্রতিটি লাইনের শেষে যা প্রতিটি শাখা / ট্যাগের ডগা উপস্থাপন করে আপনি যুক্ত ব্রাঞ্চ / ট্যাগের নামগুলি বন্ধনীতে দেখতে পাবেন — উদাহরণস্বরূপ রিমোট শাখাটি দেখতে পর্দার lg1lg2স্ক্রিনশটগুলিতে এবং স্ক্রিনশটে আপনি যা করতে পারেন দেখতে উভয় স্থানীয় এবং দূরবর্তী অবস্থানের দেখাচ্ছে শাখা ও । কিছুটা আরও ভার্বোসিটি (কিছু জিইআইআই সরঞ্জাম রঙ-কোডিং ব্যবহার করে ) এর সাথে গিট ডু (গিটক, সোর্স ট্রি, টার্টোজাইজিট, টাওয়ার, ফর্ক, গিটএক্স) এর জন্য জনপ্রিয় ব্রাঞ্চ-ভিজ্যুয়ালাইজিং জিইউআই সরঞ্জামগুলির সাথে এটি মেলে । (origin/test_on_10.8)lg2(HEAD -> master, origin/master, origin/HEAD)masterHEAD
স্লিপ ডি। থম্পসন

2
@ টিমোথিপুলিয়ম "প্রতিটি শাখার অংশ" কি তা বোঝার জন্য আপনাকে বর্ণালী রেখাটি চোখের সাথে দেখতে হবে। প্রায় প্রতিটি সরঞ্জামই এর সাথে আপনাকে খুব বেশি সহায়তা করে না কারণ গিট অঙ্গীকার করে যে কোনও শাখার অন্তর্নিহিত নয় — সেগুলি গ্রাফ-ভিজ্যুয়ালাইজেশন-সময়ে) কোনও শাখা বা ট্যাগের অন্তর্গত যা তাদের পিতৃ-বংশে রয়েছে । যদি কোনও শাখা / ট্যাগ কোনও প্রতিশ্রুতি উল্লেখ করে এবং এটি অদৃশ্য হয়ে যায় (তবে প্রায় 2 সপ্তাহ ধরে আবর্জনা সংগ্রহ করা হয় না); পূর্ববর্তী-অননুমোদিত কমিটের উল্লেখ করে একটি শাখা / ট্যাগ যুক্ত করুন এবং এটি আবার উপস্থিত হবে। আমি এই সব জ্ঞান করে তোলে আশা করি।
স্লিপ ডি। থম্পসন

235

এগুলির যে কোনও একটি রেসিপিতে (গিট লগ বা গিটকের উপর ভিত্তি করে), আপনি ইতিহাসের উদ্দীপনা --simplify-by-decorationরৈখিক অংশগুলিকে ভেঙে দিতে পারেন । এটি টপোলজি অনেক বেশি একবারে দৃশ্যমান করে তোলে। আমি এখন বড় হিস্টরিগুলি বুঝতে পারি যা এই বিকল্পটি ব্যতীত বোধগম্য হবে!

আমি এটি পোস্ট করার প্রয়োজনীয়তা অনুভব করেছি কারণ এটি যেমনটি হওয়া উচিত তেমন সুপরিচিত বলে মনে হয় না। ইতিহাসের দৃশ্যধারণ সম্পর্কে স্ট্যাক ওভারফ্লো প্রশ্নগুলির বেশিরভাগ ক্ষেত্রে এটি উপস্থিত হয় না এবং এটি খুঁজে পেতে আমাকে বেশ খানিকটা সময় নিয়েছিল - আমি জানার পরেও আমি এটি চেয়েছিলাম! অবশেষে আমি এটি ডেবিয়ান বাগ রিপোর্টে পেয়েছি । স্ট্যাক ওভারফ্লোতে প্রথম উল্লেখটি এন্টোইন পেলিসের এই উত্তর বলে মনে হচ্ছে ।


3
নিখুঁত - ঠিক আমি যা খুঁজছিলাম! এটি আরও upvotes পাওয়া উচিত; gitk / gitg / git লগ - অনুগ্রহ সম্পর্কে প্রায় প্রত্যেকেই ইতিমধ্যে জানে, তবে আপনি যদি শাখা টোপোলজিটি দেখতে চান এবং একক কমিটির বিষয়ে চিন্তা না করেন তবে সেগুলি মোটেই কার্যকর নয়।
imolit

4
আমার ঠিক এটির দরকার ছিল, দুর্দান্ত। সমস্ত উত্তর ছাড়াই এটিই আমাকে সাহায্য করেছিল। --simplify-by-decorationকী চলছে তা তাই পরিষ্কার করে দেয়।
Ela782

9
এটি সত্যই উত্তর হওয়া উচিত। git log --graph --all --simplify-by-decorationপাশাপাশি কাজ করে।
ইরিফ

কেবলমাত্র আমরা --simplify-by-decorationপ্রতিটি প্রতিশ্রুতিবদ্ধ কমিটের আগে / পরে এন কমিট যোগ করার সময় ব্যবহার করতে পারি (যেমন -Bএবং এর -Aজন্য grep)।
জুনভর

76

Gitk আমার পড়ার জন্য মাঝে মাঝে বেদনাদায়ক।

এখানে চিত্র বর্ণনা লিখুন

আমাকে গিট ভার্সনট্রি লিখতে উদ্বুদ্ধ করুন

এখানে চিত্র বর্ণনা লিখুন


3
@ ইজহুমা লেখকের সাথে মনোকে সমর্থন করার জন্য আমার একটি পিআর রয়েছে (মনো-২.১০ এর বিপরীতে উবুন্টু ১৩.১০ তে পরীক্ষা করা হয়েছে)
ম্যাক্স এহরলিচ

1
আমি খুঁজে পেয়েছি যে গিট ভার্সনটি ট্রি সহ একই স্থানে শাখা রাখে, যা জিনিসগুলি কীভাবে পরিবর্তিত হয় তা দেখতে এটি আরও সহজ করে তোলে।
sfranky

48

আমার সময় 99.999% ইতিহাসের এ খুঁজছেন হয় git lgএবং 0.001% হয় git log

আমি কেবলমাত্র দুটি লগ এলিয়াস শেয়ার করতে চাই যা দরকারী হতে পারে (.gitconfig থেকে কনফিগার করা):

[Alias]
     lg = log --graph --pretty=format:'%Cred%h%Creset %ad %s %C(yellow)%d%Creset %C(bold blue)<%an>%Creset' --date=short
     hist = log --graph --full-history --all --pretty=format:'%Cred%h%Creset %ad %s %C(yellow)%d%Creset %C(bold blue)<%an>%Creset' --date=short
  • git lg বর্তমান শাখার ইতিহাস দেখতে পাবেন।
  • git hist পুরো শাখার ইতিহাস দেখতে পাবেন।

44

গিটক্রাকেন দেখুন - একটি ক্রস-প্ল্যাটফর্ম জিইউআই যা টপোলজিকে এক সুদর্শন উপায়ে দেখায়।

টোপোলজি

কিছু উন্নত বৈশিষ্ট্যগুলির জন্য এখানে একটি দ্রুত ভিডিও টিউটোরিয়াল


6
এই থ্রেডটিতে কীভাবে গিটক্রাকেন রয়েছে তবে এটির পুরানো এবং নিখরচায় সোর্সট্রি নেই? (আমি জানি, আমি জানি, আটলাসিয়ান সবসময় সঠিকভাবে পায় না But তবে সোর্সট্রি ভিজ্যুয়ালাইজেশনের জন্য দুর্দান্ত একটি দুর্দান্ত সরঞ্জাম))
এক্সএমএল

43

আমি করতে চাই, সহ git log:

 git log --graph --oneline --branches

(দূরবর্তী শাখাগুলিও দেখার জন্য - সমস্ত সহ)

সাম্প্রতিক গিট প্রকাশের সাথে কাজ করে: ১. 1..৩ থেকে প্রবর্তিত ( থু, May মে ২০০৯ )

  • --pretty=<style>কমান্ডের লগ পরিবারে " " বিকল্পটি এখন " --format=<style>" হিসাবে বানানযোগ্য ।
    উপরন্তু, --format=%formatstringএকটি সংক্ষিপ্ত হাত --pretty=tformat:%formatstring

  • " --oneline" " " এর প্রতিশব্দ --pretty=oneline --abbrev-commit

PS D:\git\tests\finalRepo> git log --graph --oneline --branches --all
* 4919b68 a second bug10 fix
* 3469e13 a first bug10 fix
* dbcc7aa a first legacy evolution
| * 55aac85 another main evol
| | * 47e6ee1 a second bug10 fix
| | * 8183707 a first bug10 fix
| |/
| * e727105 a second evol for 2.0
| * 473d44e a main evol
|/
* b68c1f5 first evol, for making 1.0

আপনি লগ প্রদর্শনের স্প্যানও সীমাবদ্ধ করতে পারেন (কমিটের সংখ্যা):

PS D:\git\tests\finalRepo> git log --graph --oneline --branches --all -5
* 4919b68 a second bug10 fix
* 3469e13 a first bug10 fix
* dbcc7aa a first legacy evolution
| * 55aac85 another main evol
| | * 47e6ee1 a second bug10 fix

(শুধুমাত্র শেষ 5 টি কমিট দেখান)


বর্তমান নির্বাচিত সমাধান সম্পর্কে আমি যা পছন্দ করি না তা হ'ল:

 git log --graph

এটি অনেক বেশি তথ্য প্রদর্শন করেছে (যখন আমি কেবলমাত্র একটি দ্রুত সংক্ষিপ্তসার দেখতে চাই):

PS D:\git\tests\finalRepo> git log --graph
* commit 4919b681db93df82ead7ba6190eca6a49a9d82e7
| Author: VonC <vonc@laposte.net>
| Date:   Sat Nov 14 13:42:20 2009 +0100
|
|     a second bug10 fix
|
* commit 3469e13f8d0fadeac5fcb6f388aca69497fd08a9
| Author: VonC <vonc@laposte.net>
| Date:   Sat Nov 14 13:41:50 2009 +0100
|
|     a first bug10 fix
|

gitk দুর্দান্ত, তবে আমাকে অন্য উইন্ডোতে শেল সেশনটি ছেড়ে দিতে বাধ্য করে, যেখানে শেষ এনটি দ্রুত প্রদর্শন করা প্রায়শই যথেষ্ট।


আমি এই পদ্ধতিটিও বেছে নিয়েছি, তবে আমি একটি উপকরণ তৈরি করেছি যাতে "গিট গ্রাফ" টাইপ করা "গিট লগ - অনুগ্রহ - ডেকোর্ট --অনলাইন" সম্পাদন করার মতোই।
পাইক

@ কননারপাইক ভাল ধারণা। দেখুন: কীভাবে আমি ওরফে 'এলজি' নিজেকে আছে stackoverflow.com/a/3667139/6309
VonC

35

গিটিজ লিনাক্সের জন্য একটি দুর্দান্ত সরঞ্জাম, ওএস এক্সের জন্য গিটক্সের অনুরূপ Just আপনার সংগ্রহস্থলের গাছ কাঠামোর (কোষের সাথে একই) কোথাও কমান্ড লাইনে 'গিটজি' চালান।


3
এত কথায়: গিটগের একটি ড্রপ-ডাউন মেনু রয়েছে যেখানে কোন শাখাটি কল্পনা করতে বেছে নিতে পারে to এই ড্রপ-ডাউনটিতে একটি "সমস্ত" বিকল্পও রয়েছে।
ফ্লুকস

1
বা আপনি এটি দিয়ে শুরু করতে পারেন gitg --all, যদি আপনি ড্রপ ডাউন মেনুতে ঘাটতি এড়াতে চান।
imolit

25

আমি "গিট-বিগ-ছবি" বেশ দরকারী বলে খুঁজে পেয়েছি: https://github.com/esc/git-big-picture

এটি বরং লিনিয়ার পরিবর্তে ডট / গ্রাফভিজ ব্যবহার করে দুর্দান্ত 2 ডি গ্রাফ তৈরি করে, "এক-মাত্রিক" ভিউ গিট এবং বন্ধুরা উত্পাদন করে। -I বিকল্পের সাহায্যে এটি শাখা পয়েন্টগুলি দেখায় এবং মার্জ কমিট করে কিন্তু এর মধ্যে সবকিছু ছেড়ে দেয়।


ব্যবহার করা বেশ সহজ, আপনার যদি খুব কমিট না করে থাকে এবং একটি সহজ সমাধান চান না, তাহলে চেষ্টা করতে পারেন।
উইসভিট

এটি ঠিক জরিমানার সংখ্যার সাথে স্কেল করা উচিত (যদি আপনি -i ব্যবহার করেন), আপনার যদি জটিল শাখা এবং মার্জ হয়ে থাকে তবে এটি অপঠনযোগ্য হয়ে উঠতে পারে (তবে, কোন সরঞ্জামটি নয়)
ফ্র্যাঙ্ক ওস্টারফেল্ড

1
আমাদের মাঝারি স্কেলের প্রকল্পের সাথে এটি টন লাইন সহ একটি বিশাল চিত্র উত্পন্ন করে। আমি যে গভীরতায় চলেছি তা কি সীমাবদ্ধ করতে পারি? অর্থাৎ গত N দিন বা তার পরে থেকে কমিট করে।
ওন্দ্রা Žižka

25

একটি দুর্দান্ত ওয়েব ভিত্তিক সরঞ্জাম হ'ল উঙ্গিত । এটি যে কোনও প্ল্যাটফর্মে চলে যা নোড.জেএস এবং গিট সমর্থন করে। এটি তাদের জন্য কীভাবে কাজ করে তার একটি ভিডিও রয়েছে যেগুলি পড়ার চেয়ে ধরণের জিনিসগুলি সহজ মনে করে ...

এখানে চিত্র বর্ণনা লিখুন


21

কটাক্ষপাত আছে BranchMaster

আমি এগুলি জটিল শাখার কাঠামোটি কল্পনা করার জন্য লিখেছিলাম, তাদের মধ্যে সমস্ত লগ্নিকে একক লাইনে ভেঙে দিয়ে। সংখ্যাগুলি কমিটের সংখ্যা নির্দেশ করে।

এখানে চিত্র বর্ণনা লিখুন


1
এই আমি খুঁজছি। এটি করার জন্য বিকল্প কমান্ড / সরঞ্জাম আছে?
আলেেক্স গবি

3
@ আলেক্সগাবি এটিকে আপনার গিটকনফাইগের মধ্যে রাখুন, এটি একই কাজ করে তবে কমান্ড লাইনে gbranch = লগ - অনুচ্ছেদ - সজ্জা দ্বারা সাজানো - ব্যাখ্যা = ফর্ম্যাট: '% সি (হলুদ)% h% সি (সাদা)% ডি% সি (
গা bold়

আপনি শাখাগুলি কল্পনা করার জন্য কীভাবে ডেটা পাচ্ছেন?
স্নোফিশ

15

কেউ উল্লেখ করেনি tig? এটি "ব্রাঞ্চমাস্টার" এর মতো শাখা ভাঁজ করে না, তবে ...

এটি দ্রুত, টার্মিনালে চালায়।

যেহেতু এটি এত তাড়াতাড়ি (+ কীবোর্ড নিয়ন্ত্রণ) আপনি একটি দুর্দান্ত ইউএক্স পান তাই lsগিটার সংগ্রহস্থল সম্বলিত ডিরেক্টরিগুলির জন্য এটি প্রায় আমার মতো ।

https://jonas.github.io/tig/

এটিতে /অনুসন্ধানের মতো স্বাভাবিক শর্টকাটস রয়েছে etc.

রিভিশন গ্রাফ

(প্রিয়। এটি এই স্ক্রিনশটের পটভূমিতে টার্মিনাল, এটি আজকাল আরও ভাল দেখাচ্ছে তবে আমার কম্পিউটার স্ক্রিনশট নিতে অস্বীকার করেছে, দুঃখিত)

(পিপিএস। আমি গিটক্রেনও ব্যবহার করি এবং সত্যই স্পষ্ট দৃষ্টিভঙ্গিও পাই তবে এটি এর চেয়ে অনেক বেশি ভারী tig)


আমি টার্মিনাল প্রেমী এবং টিগ (গিটের জন্য পাঠ্য-মোড ইন্টারফেস) গিট সংগ্রহস্থলের সাথে ইন্টারঅ্যাক্ট করার জন্য ভাল সরঞ্জাম, এটি গ্রাফ ভিউ এবং গিটের ইতিহাস সহ অত্যন্ত কার্যকর। গিট কমান্ড লাইনের অতিরিক্ত সরঞ্জাম হিসাবে আমি টার্মিনাল প্রেমীদের কাছে এটির পরামর্শ দিচ্ছি।
হার্মিসেল্ম

15

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


1
কি দুর্দান্ত বৈশিষ্ট্য, দীর্ঘ সময়ের জন্য কচ্ছপের গিট ব্যবহার করে তবে এই বৈশিষ্ট্যটি জানেন না।
ক্রিমিক

এটি উপায় সহজ। ধন্যবাদ।
অনুপ

15

জিগল সত্যিই দুর্দান্ত গ্রাফ আঁকে।



এটি চেষ্টা করে দেখেছি প্রতি প্রতিশ্রুতি প্রতি লাইন দেখতে পাচ্ছি, শাখা / ট্যাগ প্রতি লাইন নয়। আপনার যখন কয়েক ডজন শাখা / ট্যাগ থাকে তখন এটি খুব বিস্তারিত।
আলেেক্স গবি

12

আমি নিম্নলিখিত এলিয়াস ব্যবহার করি।

[alias]
    lol = log --graph --decorate --pretty=oneline --abbrev-commit
    lola = log --graph --decorate --pretty=oneline --abbrev-commit --all

এটি উপরে বর্ণনামের চেয়ে রঙিন স্কিমে আরও তথ্য রয়েছে has এটিও বেশ সাধারণ বলে মনে হচ্ছে, সুতরাং আপনার অন্য পরিবেশে এটির উপস্থিতি থাকতে পারে বা এটি ব্যাখ্যা না করে কথোপকথনে এটি উল্লেখ করার সুযোগ থাকতে পারে।

স্ক্রিনশট এবং এখানে একটি সম্পূর্ণ বিবরণ সহ: http://blog.kfish.org/2010/04/git-lola.html


12

ম্যাক ব্যবহারকারীদের জন্য নিখরচায়, মুক্ত উত্স সরঞ্জামটি গিটআপ: চেকআউট করুন (কোনও শঙ্কিত উদ্দেশ্য নয়): http://gitup.co/

আমি গ্রাফগুলি যেভাবে প্রদর্শিত হচ্ছে তা পছন্দ করি, আমি দেখেছি এমন অন্যান্য সরঞ্জামগুলির চেয়ে এটি পরিষ্কার।

প্রকল্পটি এখানে: https://github.com/git-up/GitUp

গিটআপ স্ক্রিনশট


এটিই কেবলমাত্র গ্রাফ যেখানে আপনি এক্স অক্ষের শাখা এবং y অক্ষের সাথে সময় দেখতে পাবেন। এটা খুব স্বজ্ঞাত। গিটআপ একেবারে দুর্দান্ত! ম্যাকোস আর নেই, তাই আমি উইন্ডোতে স্যুইচ করছি এবং খুব খারাপভাবে গিটআপ মিস করব।
w00t

11

গ্রাফের ইতিহাস দেখতে আমার এই git logউপন্যাসটি রয়েছে ~/.gitconfig:

[alias]
l = log --all --graph --pretty=format:'%C(auto)%h%C(auto)%d %s %C(dim white)(%aN, %ar)'

ওরফে জায়গায় রেখে git lদিলে এরকম কিছু দেখাবে:

এখানে চিত্র বর্ণনা লিখুন

গিট 2.12 + তে আপনি এমনকি গ্রাফের লাইন রঙগুলি কাস্টমাইজ করতে পারেনlog.graphColors কনফিগারেশন বিকল্পটি ।

লগগুলির ফর্ম্যাট হিসাবে, এটি লেখকের নাম (সম্মান ) এবং আপেক্ষিক লেখকের তারিখ--oneline সংযোজনের সাথে সমান । নোট করুন যে সিনট্যাক্স, যা গিটকে কমিট হ্যাশ ইত্যাদির জন্য ডিফল্ট রঙগুলি ব্যবহার করতে বলে, তা গিট> = 1.8.3 এ সমর্থিত.mailmap%C(auto)


1
আমি বাস্তবের লেখকের তারিখটি প্রথম দেখি এবং এটি বেশ সুন্দর! ধন্যবাদ, আমি এটি আমার গিটকনফাইগে যুক্ত করব!
সাইমন সি

উইন্ডোজ ব্যবহারকারীদের ডাবল উদ্ধৃতি সহ একক উদ্ধৃতিগুলি প্রতিস্থাপন করা উচিত
পিয়ারডিপি

11

আমি এই ব্লগ পোস্টটি পেয়েছি যা সংক্ষিপ্ত পথ দেখায়:

git log --oneline --abbrev-commit --all --graph --decorate --color

আমি উপরের কমান্ডের জন্য সাধারণত একটি নাম রাখি:

alias gl='git log --oneline --abbrev-commit --all --graph --decorate --color'

এবং সহজ শুধু ব্যবহার gl

আপনি গিট কনফিগারেশনে উপনামটি যুক্ত করতে পারেন। ~/.gitconfigনীচের লাইনটি খুলুন এবং [ওরফে] সাথে যুক্ত করুন

[alias]
        lg = log --oneline --abbrev-commit --all --graph --decorate --color

এবং এটি এর মতো ব্যবহার করুন: git lg


8

.Gitconfig এর মাধ্যমে আমার ব্যক্তিগত প্রিয় উপন্যাসটি হ'ল:

graph = log --graph --color --all --pretty=format:"%C(yellow)%H%C(green)%d%C(reset)%n%x20%cd%n%x20%cn%x20(%ce)%n%x20%s%n"

6
কমান্ডটি দেখতে কেমন হবে তা একটু ব্যাখ্যা করলে দুর্দান্ত হত।
সর্বোচ্চ

8

যারা ভিএসকোড পাঠ্য সম্পাদক ব্যবহার করছেন তাদের জন্য ডি জায়ামনে গিট ইতিহাস সম্প্রসারণ বিবেচনা করুন :

এখানে চিত্র বর্ণনা লিখুন


এই এক্সটেনশনটি আমার মতে ধীরে ধীরে। এটি স্বয়ংক্রিয় আপডেটও করে না এবং অবিরাম দেখায়। তবে এটি প্রতিশ্রুতিবদ্ধ বৃক্ষের কল্পনা করা একটি ভাল কাজ করে ...
aljazerzen

2
ভিজ্যুয়াল স্টুডিও কোডের আর একটি এক্সটেনশন হ'ল মিচচি বাই গিট গ্রাফ । আমি এটি গিটলেন্সের সাথে ব্যবহার করি।
জোসেফ.বি

7

যদি আপনি ওএস এক্সে থেকে থাকেন তবে গিটেক্সও একটি দুর্দান্ত দৃশ্যধারণ সরঞ্জাম is


3
gitk (সবার জন্য) খুব অনুরূপ। হুবহু এক নয়, তবে বেশ একই রকম।
xero

গিটক্সের কয়েকটি কাঁটাচামচ রয়েছে - এইটি (রোউনজান) এই মুহূর্তে সেরা বলে মনে হচ্ছে।
rjmunro

7

আরেকটি গিট লগ কমান্ড। এটি স্থির-প্রস্থের কলাম সহ :

git log --graph --pretty=format:"%x09%h | %<(10,trunc)%cd |%<(25,trunc)%d | %s" --date=short


3

উইন্ডোজে আপনি ব্যবহার করতে পারেন একটি খুব দরকারী সরঞ্জাম আছে: গিট এক্সটেনশন। এটি একটি গুই সরঞ্জাম এবং গিট কার্যক্রম খুব সহজ করে তোলে।

এটি ওপেন সোর্স।

http://gitextensions.github.io


2

আমি চেষ্টা করেছি --simplify-by-decorationকিন্তু আমার সমস্ত মার্জ দেখানো হয়নি। সুতরাং আমি পরিবর্তে কেবল শিরোনামগুলিতে "" "এবং" / "চিহ্নগুলি না রেখে লাইনগুলি ছাঁটাই করি, যখন সর্বদা" ("এর সাথে সাথে শাখাগুলি নির্দেশ করে keeping আমি সেগুলিও সরিয়ে ফেললাম following

gbh () { 
    git log --graph --oneline --decorate "$@" | grep '^[^0-9a-f]*[\\/][^0-9a-f]*\( [0-9a-f]\|$\)\|^[^0-9a-f]*[0-9a-f]*\ (' | sed -e 's/).*/)/'
}

2

আমরা কি আরও জটিল করে তুলতে পারি?

সরল গিট লগ সম্পর্কে কীভাবে - সমস্ত - ডেকোরেট --অনলাইন - অনুগ্রহ (একটি কুকুরের কথা মনে রাখবেন = - সমস্ত - ডেকোর্ট - অ্যানালাইন - গ্রাফ)


1
এটি গৃহীত উত্তর হিসাবে একই। তবে
স্মৃতিচক্রের

1

গিট অফিসিয়াল সাইটটি কয়েকটি তৃতীয় পক্ষের প্ল্যাটফর্ম নির্দিষ্ট জিইউআই সরঞ্জাম তালিকাভুক্ত করেছে। লিনাক্স প্ল্যাটফর্মের জন্য গিট জিইউআই সরঞ্জামগুলি এখানে হিট করুন

আমি gitgএবং GitKrakenলিনাক্স প্ল্যাটফর্মের জন্য ব্যবহার করেছি । দু'জনেই কমিট ট্রিটি বোঝা ভাল understand

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.