চলতি নিয়ম
~বেশিরভাগ সময় ব্যবহার করুন - বেশিরভাগ প্রজন্মকে ফিরে যেতে, সাধারণত যা আপনি চান
^মার্জ কমিটে ব্যবহার করুন - কারণ তাদের দুই বা ততোধিক (তাত্ক্ষণিক) জনক রয়েছে have
স্মৃতিবর্ধনবিদ্যা:
- টিলডে
~চেহারা প্রায় লিনিয়ার এবং একটি সরল রেখায় পিছনে যেতে চায়
- ক্যারেট
^রাস্তার একটি গাছ বা কাঁটাচামচ একটি আকর্ষণীয় বিভাগের পরামর্শ দেয়
টিল্ড
"নির্দিষ্ট করা পুনর্বিবেচনা" বিভাগে git rev-parseডকুমেন্টেশন সংজ্ঞায়িত ~হিসাবে
<rev>~<n>উদাহরণস্বরূপ,master~3 একটি পুনর্বিবেচনার প্যারামিটারের
প্রত্যয়টির ~<n>অর্থ কমিট অবজেক্ট যা কেবলমাত্র প্রথম পিতামাতাকে অনুসরণ করে নামকরণ করা কমিট অবজেক্টের n তম প্রজন্মের পূর্বপুরুষ। উদাহরণস্বরূপ, <rev>~3সমতূল্য <rev>^^^যা সমতূল্য <rev>^1^1^1...
আপনি যে কোনও প্রতিশ্রুতিবদ্ধতার পিতামাতার কাছে পেতে পারেন, কেবল তা নয় HEAD। আপনি প্রজন্মের মধ্যেও ফিরে যেতে পারেন: উদাহরণস্বরূপ, master~2মাস্টার শাখার ডগায় দাদা-পিতা, মার্জ কমিটে প্রথম পিতামাতার পক্ষে দেওয়া।
কাকপদ
গিটের ইতিহাস ননলাইন: একটি নির্দেশিত অ্যাসাইক্লিক গ্রাফ (ডিএজি) বা গাছ। শুধুমাত্র একটি পিতা বা মাতার সাথে প্রতিশ্রুতিবদ্ধ rev~এবং rev^একই জিনিস বোঝাতে। ক্যারেট সিলেক্টর মার্জ কমিটের সাথে দরকারী হয়ে যায় কারণ প্রত্যেকেই দুটি বা ততোধিক পিতামাতার সন্তান - এবং জীববিজ্ঞান থেকে ধারিত স্ট্রেন ভাষা।
HEAD^মানে বর্তমান শাখার অগ্রভাগের প্রথম তাত্ক্ষণিক অভিভাবক। HEAD^এর জন্য সংক্ষিপ্ত HEAD^1, এবং আপনি ঠিকানার মতো HEAD^2এবং ঠিকানার মতোও করতে পারেন । একই অধ্যায় git rev-parseডকুমেন্টেশন যেমন সংজ্ঞায়িত
<rev>^, যেমন HEAD^ ,v1.5.1^0
একটি প্রত্যয়ের ^পুর্নবিবেচনার প্যারামিটার প্রথম পিতা বা মাতা যে বস্তুর কমিট মানে। ^<n>এর অর্থ n ম পিতা বা মাতা ([ উদাঃ ] <rev>^এর সমতুল্য <rev>^1)। একটি বিশেষ নিয়ম হিসাবে, <rev>^0মানে প্রতিশ্রুতিবদ্ধ হওয়া এবং যখন ব্যবহৃত <rev>হয় কোনও ট্যাগ অবজেক্টের নাম যখন কোনও কমিট অবজেক্টকে বোঝায়।
উদাহরণ
এই স্পেসিফায়ার বা নির্বাচকগুলি নির্বিচারে শৃঙ্খলাবদ্ধ হতে পারে, উদাহরণস্বরূপ , topic~3^2ইংরেজিতে এই সংযুক্তির দ্বিতীয় পিতামাতা হ'ল শাখার বর্তমান নূরের বড়-পিতামহ (তিন প্রজন্মের পিছনে) topic।
এর উপরোক্ত অধ্যায় git rev-parseডকুমেন্টেশন একটি ধারণাগত Git ইতিহাস মাধ্যমে অনেক পাথ ট্রেস। সময়টি সাধারণত নিচের দিকে প্রবাহিত হয়। কমিট ডি, এফ, বি এবং এ মার্জ কমিট হয়।
এখানে জন লোয়েলগার একটি চিত্র তুলে ধরেছেন। কমিট নোড বি এবং সি উভয়ই কমিট নোডের পিতা-মাতা P পিতামাতার কমিট বাম থেকে ডানে অর্ডার করা হয় are
G H I J
\ / \ /
D E F
\ | / \
\ | / |
\|/ |
B C
\ /
\ /
A
A = = A^0
B = A^ = A^1 = A~1
C = A^2
D = A^^ = A^1^1 = A~2
E = B^2 = A^^2
F = B^3 = A^^3
G = A^^^ = A^1^1^1 = A~3
H = D^2 = B^^2 = A^^^2 = A~2^2
I = F^ = B^3^ = A^^3^
J = F^2 = B^3^2 = A^^3^2
গিট সংগ্রহস্থল তৈরি করতে নীচের কোডটি চালান যার ইতিহাস উদ্ধৃত চিত্রের সাথে মেলে।
#! /usr/bin/env perl
use strict;
use warnings;
use subs qw/ postorder /;
use File::Temp qw/ mkdtemp /;
my %sha1;
my %parents = (
A => [ qw/ B C / ],
B => [ qw/ D E F / ],
C => [ qw/ F / ],
D => [ qw/ G H / ],
F => [ qw/ I J / ],
);
sub postorder {
my($root,$hash) = @_;
my @parents = @{ $parents{$root} || [] };
postorder($_, $hash) for @parents;
return if $sha1{$root};
@parents = map "-p $sha1{$_}", @parents;
chomp($sha1{$root} = `git commit-tree @parents -m "$root" $hash`);
die "$0: git commit-tree failed" if $?;
system("git tag -a -m '$sha1{$root}' '$root' '$sha1{$root}'") == 0 or die "$0: git tag failed";
}
$0 =~ s!^.*/!!; # / fix Stack Overflow highlighting
my $repo = mkdtemp "repoXXXXXXXX";
chdir $repo or die "$0: chdir: $!";
system("git init") == 0 or die "$0: git init failed";
chomp(my $tree = `git write-tree`); die "$0: git write-tree failed" if $?;
postorder 'A', $tree;
system "git update-ref HEAD $sha1{A}"; die "$0: git update-ref failed" if $?;
system "git update-ref master $sha1{A}"; die "$0: git update-ref failed" if $?;
# for browsing history - http://blog.kfish.org/2010/04/git-lola.html
system "git config alias.lol 'log --graph --decorate --pretty=oneline --abbrev-commit'";
system "git config alias.lola 'log --graph --decorate --pretty=oneline --abbrev-commit --all'";
এটি কেবল নতুন থ্রোওয়ে রেপোতে এলিয়াস যুক্ত করেছে git lolএবংgit lola তাই আপনি ইতিহাসটি দেখতে পাচ্ছেন
$ git lol
* 29392c8 (HEAD -> master, tag: A) A
|\
| * a1ef6fd (tag: C) C
| |
| \
*-. \ 8ae20e9 (tag: B) B
|\ \ \
| | |/
| | * 03160db (tag: F) F
| | |\
| | | * 9df28cb (tag: J) J
| | * 2afd329 (tag: I) I
| * a77cb1f (tag: E) E
* cd75703 (tag: D) D
|\
| * 3043d25 (tag: H) H
* 4ab0473 (tag: G) G
নোট করুন যে আপনার মেশিনে SHA-1 অবজেক্টের নাম উপরের চিত্রগুলির চেয়ে পৃথক হবে, তবে ট্যাগগুলি আপনাকে নাম অনুসারে কমিটগুলি সম্বোধন করতে এবং আপনার বোঝার জন্য পরীক্ষা করতে দেয়।
$ git log -1 --format=%f $(git rev-parse A^)
B
$ git log -1 --format=%f $(git rev-parse A~^3~)
I
$ git log -1 --format=%f $(git rev-parse A^2~)
F
"নির্দিষ্ট করা পুনর্বিবেচনা" এ git rev-parseডকুমেন্টেশন মহান তথ্য পূর্ণ এবং মূল্য একটি মধ্যে গভীরতা পঠিত। গিট সরঞ্জামগুলি - প্রো গিট বইটি থেকে সংশোধন নির্বাচন দেখুন ।
অর্ডার অফ প্যারেন্ট কমিটস
গিটের নিজস্ব ইতিহাস থেকে 89e4fcb0dd কমিট করা একত্রিত হওয়া কমিট, যেমন git show 89e4fcb0ddমার্জ শিরোনাম লাইনটি সাথে সাথে ইঙ্গিত দেয় যা পূর্ববর্তী পূর্বপুরুষদের অবজেক্টের নাম প্রদর্শন করে।
commit 89e4fcb0dd01b42e82b8f27f9a575111a26844df
Merge: c670b1f876 649bf3a42f b67d40adbb
Author: Junio C Hamano <gitster@pobox.com>
Date: Mon Oct 29 10:15:31 2018 +0900
Merge branches 'bp/reset-quiet' and 'js/mingw-http-ssl' into nd/config-split […]
আমরা git rev-parseক্রমান্বয়ে 89e4fcb0dd এর তাত্ক্ষণিক পিতামাতাকে দেখাতে বলার মাধ্যমে অর্ডারটি নিশ্চিত করতে পারি ।
$ git rev-parse 89e4fcb0dd^1 89e4fcb0dd^2 89e4fcb0dd^3
c670b1f876521c9f7cd40184bf7ed05aad843433
649bf3a42f344e71b1b5a7f562576f911a1f7423
b67d40adbbaf4f5c4898001bf062a9fd67e43368
অস্তিত্বহীন চতুর্থ পিতামাতাকে জিজ্ঞাসা করা একটি ত্রুটির ফলস্বরূপ।
$ git rev-parse 89e4fcb0dd^4
89e4fcb0dd^4
fatal: ambiguous argument '89e4fcb0dd^4': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
যদি আপনি কেবল পিতামাতাকে নিষ্কাশন করতে চান তবে সম্পূর্ণ হ্যাশগুলির জন্য সুন্দর বিন্যাসটি %P ব্যবহার করুন
$ git log -1 --pretty=%P 89e4fcb0dd
c670b1f876521c9f7cd40184bf7ed05aad843433 649bf3a42f344e71b1b5a7f562576f911a1f7423 b67d40adbbaf4f5c4898001bf062a9fd67e43368
বা %pসংক্ষিপ্ত পিতামাতার জন্য।
$ git log -1 --pretty=%p 89e4fcb0dd
c670b1f876 649bf3a42f b67d40adbb