diff --git a/Index 1.html b/Index 1.html new file mode 100644 index 0000000..0b1cbf0 --- /dev/null +++ b/Index 1.html @@ -0,0 +1,558 @@ + + + + +Explain Git with D3 + + + + + + + + Fork me on GitHub + +
+
+
+

Visualizing Git Concepts with D3

+

+ +.Ç?ä æÈ ÓÇ?Ê ÈÑÇ? ˜ã˜ Èå ÔãÇ æ Ïј ÈÑÎ? ÇÒ ãÝÇå?ã ÇÓÇÓ? ?Ê ÈÕæÑÊ ÈÕÑ? ØÑÇÍ? ÔÏå ÇÓÊ +.Ç?ä Çæá?ä ÊáÇÔ ãä ÈÑÇ? ÇÓÊÝÇÏå ÇÒ åÑÏæ ãæÑÏ ÇÓ æ? Ì? æ Ï? ËÑ? ÇÓÊ + +

+

ÇÖÇÝå ˜ÑÏä /Ó˜æÐÇÑ? ÝÇ?áåÇ? ÔãÇ ÈÑÇ? ˜ã?Ê ˜ÑÏä ÊæÓØ Ç?ä ÓÇ?Ê æÔÔ ÏÇÏå äÎæÇåÏ ÔÏ.ÈÑæ? Ç?ä ÓÇ?Ê ÊãÇã +ÏÑÊãÇã ãÍ?Ø ãÌÇÒ? æ ÇäáÇ?ä ˜Ï äæ?Ó? ÈÑæ? Ç?ä ÓÇ?Ê +.ÝÞØ æÇäãæÏ ã? ˜äÏ ˜å ÔãÇ åã?Ôå ÝÇ?áåÇ?? Ó˜æÐÇÑ? ÔÏå æ ÇãÇÏå ˜ã?Ê ˜ÑÏä ÏÑ åãå ÒãÇäåÇ ÏÇÑ?Ï + ÇÑ ÔãÇ ÏÑ ãæÑÏ æäå ÇÖÇÝå ?Ç Ó˜æ˜ÑÏä ÝÇ?áåÇ ÈÑÇ? ˜ã?Ê ˜ÑÏä ä?ÇÒ Èå ?˜ ?ÇÏÇæÑ? ÏÇÑ?Ï áØÝä ÈÎæÇä?Ï + ?Ê È?Ó?˜. +

+

+ .ãÍ?Ø åÇ? ãÌÇÒ? Èå ÏÓÊæÑÇÊ ãÔÎÕ? ÊÞÓ?ã ÔÏå ÇäÏ ˜å ÏÑÒ?Ñ á?ÓÊ ÔÏå ÇäÏ +

+
+
+
+
+

Basic Commands

+ git commit + git branch +
+ +
+

Undo Commits

+ git reset + git revert +
+
+

Combine Branches

+ git merge + git rebase +
+
+

Remote Server

+ git fetch + git pull +
+
+

 

+ git push + git tag +
+
+
+
+

+ در این آموزش.از آموختن چگونه اضافه کردن فایل برای commit کردن صرفه نظر می کنیم اجازه دهید وانمود کنیم این کار را شما از قبل میدانید اگر نمیدانید سراغ آموزشگاه دیگر رفته و آن را مطالعه فرمایید. +

+

+ وانمود کنید که شما از قبل فایلهای را برای اسکان دادن بروی commitآماده کرده اید در جعبه ترمینال به تعداد و دفعات دوست دارید فایلها را وارد کنید. +

+
+
+
+

+ git tag name will create a new tag named "name". + Creating tags just creates a new tag pointing to the currently checked out commit. +

+

+ Tags can be deleted using the command git tag -d name (coming soon). +

+

+ Type git commit and git tag commands + to your hearts desire until you understand this concept. +

+
+
+
+

+ git branch name will create a new branch named "name". + Creating branches just creates a new tag pointing to the currently checked out commit. +

+

+ Branches can be deleted using the command git branch -d name. +

+

+ Type git commit and git branch commands + to your hearts desire until you understand this concept. +

+
+
+
+

+ git checkout has many uses, + but the main one is to switch between branches.
+ For example, to switch from master branch to dev branch, + I would type git checkout dev. + After that, if I do a git commit, notice where it goes. Try it. +

+

+ In addition to checking out branches, you can also checkout individual commits. Try it.
+ Make a new commit and then type git checkout bb92e0e + and see what happens. +

+

+ Type git commit, git branch, + and git checkout commands to your hearts desire + until you understand this concept. +

+
+
+
+

+ You can combine git branch and git checkout + into a single command by typing git checkout -b branchname. + This will create the branch if it does not already exist and immediately check it out. +

+
+
+
+

+ git reset will move HEAD and the current branch back to wherever + you specify, abandoning any commits that may be left behind. This is useful to undo a commit + that you no longer need. +

+

+ This command is normally used with one of three flags: "--soft", "--mixed", and "--hard". + The soft and mixed flags deal with what to do with the work that was inside the commit after + you reset, and you can read about it here. + Since this visualization cannot graphically display that work, only the "--hard" flag will work + on this site. +

+

+ The ref "HEAD^" is usually used together with this command. "HEAD^" means "the commit right + before HEAD. "HEAD^^" means "two commits before HEAD", and so on. +

+

+ Note that you must never use git reset to abandon commits + that have already been pushed and merged into the origin. This can cause your local repository + to become out of sync with the origin. Don't do it unless you really know what you're doing. +

+
+
+
+

+ ÈÑÇ? ÎäË? ˜ÑÏä ˜Çã?Ê ˜å ÏÑ ÍÇá ÍÇÖÑ ãæÑÏ æÔ ˜ÑÏä ÞÑÇÑ ÑÝÊå æãÔÊј ÇäÏ ÈÇ Ê?ã, ãÇäã?ÊæÇä?ã ÇÓÊÝÇÏå ˜ä?ã + git reset ÝÑãÇä Èå ÌÇ?, ãÇ ÈÚÏÔ ã?ÊæÇä?ã ÇÓÊÝÇÏå ˜ä?ã git revert. +

+

+ git revert Ç?ÌÇÏ ?˜ ˜Çã?Ê ÌÏ?Ï ˜å åãå ˜ÇÑå ÇÓÊ ã?ÊæÇäÏ ÏÑ ÎäË? ˜ÑÏã ˜Çã?Ê ÔãÇ ˜å ã?ÎæÇå?Ï ÈѐÑÏÇä?Ï ÈÇÔÏ. +

+
+
+
+

+ git merge will create a new commit with two parents. The resulting + commit snapshot will have the all of the work that has been done in both branches. +

+

+ If there was no divergence between the two commits, git will do a "fast-forward" method merge.
+ To see this happen, checkout the 'ff' branch and then type git merge dev. +

+
+
+
+

+ git rebase will take the commits on this branch and "move" them so that their + new "base" is at the point you specify. +

+

+ You should pay close attention to the commit IDs of the circles as they move when you do this exercise. +

+

+ The reason I put "move" in quotations because this process actually generates brand new commits with + completely different IDs than the old commits, and leaves the old commits where they were. For this reason, + you never want to rebase commits that have already been shared with the team you are working with. +

+
+
+
+

+ git fetch ".ÊãÇã ÇäÔÚÇÈÇÊ ãÓ?Ñ ?ÇÈ? ÑÇ ÏÑ ãÎÒä ãÍá? ÎæÏ ÈÑæÒ ÑÓÇä? ÎæÇåÏ ˜ÑÏ.˜å Âä ÇäÔÚÇÈÇÊ ÑÇ ÈÇ ÈэÓÈ? ÎǘÓÊÑ? Ñä ãÔÎÕ ã? äãÇ?Ï." +

+
+
+
+

+ ?˜git pull ?˜ ÝÑÇ?äÏ Ïæ ãÑÍáå Ç? ÇÓÊ ˜å ÈÑÇ? Çæá?ä ÈÇÑ ã? ˜äÏ ÇÓÊ git fetch, + æ Ó ÇÒ Âä ã? ˜äÏ git merge ÇÒ ÔÇÎå ÑÏ?ÇÈ? ÇÒ ÑÇå 쾄 ÏÑ ÇÑÊÈÇØ ÈÇ ÔÇÎå ÝÚá? ÎæÏ ÑÇ. + ÇÑ ÔãÇ å? ÔÇÎå ÝÚá?¡ Ç?ä ÑæäÏ Ó ÇÒ ÌÐÈ ãÊæÞÝ ÎæÇåÏ ÔÏ. +

+

+ ÇÑ ÂѐæãÇä "--rebase" ÈÇ ÊÇ? ˜ÑÏä ÏÇÏå ÔÏ git pull --rebase, Çã Ïæã + ÝÑÂ?äÏ ˜ÔÔ ?˜ REBASE ÌÇ? ÈÇÔÏ ÇÒ ?˜ ÇÏÛÇã. 69/5000 +Ç?ä ÑÇ ã? ÊæÇä Èå Úãá˜ÑÏ ?ÔÝÑÖ ?˜ÑÈäÏ? ÈÇ ÊÇ? ˜ÑÏä ãÌãæÚå: branch.BRANCHNAME.rebase ?˜ÑÈäÏ? ÏÓʐÇå ?Ê true. +

+
+
+
+

+ A git push will find the commits you have on your local branch that the corresponding branch + on the origin server does not have, and send them to the remote repository. +

+

+ By default, all pushes must cause a fast-forward merge on the remote repository. If there is any divergence between + your local branch and the remote branch, your push will be rejected. In this scenario, you need to pull first and then + you will be able to push again. +

+
+
+
+

+ One simple example of the use of git reset is to completely restore your local repository + state to that of the origin.
+ You can do so by typing git reset origin/master. +

+

+ Note that this won't delete untracked files, you will have to delete those separately with + the command git clean -df. +

+
+
+
+

+ Below is a situation in which you are working in a local branch that is all your own. You want to receive the latest code + from the origin server's master branch. To update your local branch, you can do it without having to switch branches! +

+

+ First do a git fetch, then type git rebase origin/master! +

+
+
+
+

+ git branch -d is used to delete branches. + I have pre-created a bunch of branches for you to delete in the playground below. + Have at it. +

+
+
+
+

+ Do whatever you want in this free playground. +

+
+
+
+
+
+

Specific Examples

+

Below I have created some specific real-world scenarios that I feel are quite common and useful.

+
+
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + diff --git a/Index.txt b/Index.txt new file mode 100644 index 0000000..59c5439 --- /dev/null +++ b/Index.txt @@ -0,0 +1,560 @@ + + + + +Explain Git with D3 + + + + + + + + Fork me on GitHub + +
+
+
+

Visualizing Git Concepts with D3

+

+ +.این وب سایت برای کمک به شما و درک برخی از مفاهیم اساسی گیت بصورت بصری طراحی شده است +.این اولین تلاش من برای استفاده از هردو مورد اس وی جی و دی ثری است + +

+

اضافه کردن /سکوگذاری فایلهای شما برای کمیت کردن توسط این سایت پوشش داده نخواهد شد.بروی این سایت تمام +درتمام محیط مجازی و انلاین کد نویسی بروی این سایت +.فقط وانمود می کند که شما همیشه فایلهایی سکوگذاری شده و اماده کمیت کردن در همه زمانها دارید + اگر شما در مورد چگونه اضافه یا سکوکردن فایلها برای کمیت کردن نیاز به یک یاداوری دارید لطفن بخوانید + گیت بیسیک. +

+

+ .محیط های مجازی به دستورات مشخصی تقسیم شده اند که درزیر لیست شده اند +

+
+
+
+
+

Basic Commands

+ git commit + git branch +
+ +
+

Undo Commits

+ git reset + git revert +
+
+

Combine Branches

+ git merge + git rebase +
+
+

Remote Server

+ git fetch + git pull +
+
+

 

+ git push + git tag +
+
+
+
+

+ We are going to skip instructing you on how to add your files for commit in this explanation. + Let's assume you already know how to do that. If you don't, go read some other tutorials. +

+

+ Pretend that you already have your files staged for commit and enter git commit + as many times as you like in the terminal box. +

+
+
+
+

+ git tag name will create a new tag named "name". + Creating tags just creates a new tag pointing to the currently checked out commit. +

+

+ Tags can be deleted using the command git tag -d name (coming soon). +

+

+ Type git commit and git tag commands + to your hearts desire until you understand this concept. +

+
+
+
+

+ git branch name will create a new branch named "name". + Creating branches just creates a new tag pointing to the currently checked out commit. +

+

+ Branches can be deleted using the command git branch -d name. +

+

+ Type git commit and git branch commands + to your hearts desire until you understand this concept. +

+
+
+
+

+ git checkout has many uses, + but the main one is to switch between branches.
+ For example, to switch from master branch to dev branch, + I would type git checkout dev. + After that, if I do a git commit, notice where it goes. Try it. +

+

+ In addition to checking out branches, you can also checkout individual commits. Try it.
+ Make a new commit and then type git checkout bb92e0e + and see what happens. +

+

+ Type git commit, git branch, + and git checkout commands to your hearts desire + until you understand this concept. +

+
+
+
+

+ You can combine git branch and git checkout + into a single command by typing git checkout -b branchname. + This will create the branch if it does not already exist and immediately check it out. +

+
+
+
+

+ git reset will move HEAD and the current branch back to wherever + you specify, abandoning any commits that may be left behind. This is useful to undo a commit + that you no longer need. +

+

+ This command is normally used with one of three flags: "--soft", "--mixed", and "--hard". + The soft and mixed flags deal with what to do with the work that was inside the commit after + you reset, and you can read about it here. + Since this visualization cannot graphically display that work, only the "--hard" flag will work + on this site. +

+

+ The ref "HEAD^" is usually used together with this command. "HEAD^" means "the commit right + before HEAD. "HEAD^^" means "two commits before HEAD", and so on. +

+

+ Note that you must never use git reset to abandon commits + that have already been pushed and merged into the origin. This can cause your local repository + to become out of sync with the origin. Don't do it unless you really know what you're doing. +

+
+
+
+

+ To undo commits that have already been pushed and shared with the team, we cannot use the + git reset command. Instead, we have to use git revert. +

+

+ git revert will create a new commit that will undo all of the work that + was done in the commit you want to revert. +

+
+
+
+

+ git merge ایجاد خواهد شد یک کامیت جدید با دو هم خانواده(پدر ومادر). . + ناشی مرتکب خواهد همه از کار است که در هر دو شاخه انجام شده است

+

+ اگر هیچ اختلاف بین دو کامیت وجود دارد, .

گیت "به سرعت به جلو" روش ادغام را انجام دهد
+ برای دیدن این اتفاق انجام خواهد شد,

وارسی میکند برنج را سرشاخه اف اف و سپس تایپ میکند

git merge dev. +

+
+
+
+

+ git rebase will take the commits on this branch and "move" them so that their + new "base" is at the point you specify. +

+

+ You should pay close attention to the commit IDs of the circles as they move when you do this exercise. +

+

+ The reason I put "move" in quotations because this process actually generates brand new commits with + completely different IDs than the old commits, and leaves the old commits where they were. For this reason, + you never want to rebase commits that have already been shared with the team you are working with. +

+
+
+
+

+ git fetch ".تمام انشعابات مسیر یابی را در مخزن محلی خود بروز رسانی خواهد کرد.که آن انشعابات را با برچسبی خاکستری رنگ مشخص می نماید." +

+
+
+
+

+ یکgit pull یک فرایند دو مرحله ای است که برای اولین بار می کند است git fetch, + و پس از آن می کند git merge از شاخه ردیابی از راه دور در ارتباط با شاخه فعلی خود را. + اگر شما هیچ شاخه فعلی، این روند پس از جذب متوقف خواهد شد. +

+

+ اگر آرگومان "--rebase" با تایپ کردن داده شد git pull --rebase, گام دوم + فرآیند کشش یک REBASE جای باشد از یک ادغام. 69/5000 +این را می توان به عملکرد پیشفرض پیکربندی با تایپ کردن مجموعه: branch.BRANCHNAME.rebase پیکربندی دستگاه گیت true. +

+
+
+
+

+ A git push will find the commits you have on your local branch that the corresponding branch + on the origin server does not have, and send them to the remote repository. +

+

+ By default, all pushes must cause a fast-forward merge on the remote repository. If there is any divergence between + your local branch and the remote branch, your push will be rejected. In this scenario, you need to pull first and then + you will be able to push again. +

+
+
+
+

+ One simple example of the use of git reset is to completely restore your local repository + state to that of the origin.
+ You can do so by typing git reset origin/master. +

+

+ Note that this won't delete untracked files, you will have to delete those separately with + the command git clean -df. +

+
+
+
+

+ Below is a situation in which you are working in a local branch that is all your own. You want to receive the latest code + from the origin server's master branch. To update your local branch, you can do it without having to switch branches! +

+

+ First do a git fetch, then type git rebase origin/master! +

+
+
+
+

+ git branch -d is used to delete branches. + I have pre-created a bunch of branches for you to delete in the playground below. + Have at it. +

+
+
+
+

+ Do whatever you want in this free playground. +

+
+
+
+
+
+

Specific Examples

+

Below I have created some specific real-world scenarios that I feel are quite common and useful.

+
+
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + diff --git a/README.md b/README.md index 18564f4..1cdeb40 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ explain-git-with-d3 =================== - +mis solimani Use D3 to visualize simple git branching operations. This simple project is designed to help people understand some basic git concepts visually. @@ -10,4 +10,4 @@ This is my first attempt at using both SVG and D3. I hope it is helpful to you. I upload the contents of this repository via FTP every once in a while to: http://www.wei-wang.com/ExplainGitWithD3/ so you can just visit that site to use an (almost) up to date version. -UPDATE: the page can now also be accessed via: http://onlywei.github.io/explain-git-with-d3/ +UPDATE: the page can now also be accessed via: https://rayantools.github.io/explain-git-with-d3/ diff --git a/amin vaezi b/amin vaezi new file mode 100644 index 0000000..a24b4bb --- /dev/null +++ b/amin vaezi @@ -0,0 +1,4 @@ +git init +git add 1.docx +git commit -m "1" +git status diff --git a/css/explaingit.css b/css/explaingit.css index cbae11b..ba1f546 100644 --- a/css/explaingit.css +++ b/css/explaingit.css @@ -161,8 +161,8 @@ span.cmd { } circle.commit { - fill: #EEEEEE; - stroke: #888888; + fill: #FFB; + stroke: #C90; stroke-width: 3; } diff --git a/index.html b/index.html index f9741ea..e101be7 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,4 @@ - - + Explain Git with D3 @@ -16,20 +15,22 @@
-
+

Visualizing Git Concepts with D3

- This website is designed to help you understand some basic git concepts visually. - This is my first attempt at using both SVG and D3. I hope it is helpful to you. + +.این وب سایت برای کمک به شما و درک برخی از مفاهیم اساسی گیت بصورت بصری طراحی شده ناست +.این اولین تلاش من برای استفاده از هردو مورد اس وی جی و دی ثری است +

-

- Adding/staging your files for commit will not be covered by this site. In all sandbox playgrounds - on this site, just pretend that you always have files staged and ready to commit at all times. - If you need a refresher on how to add or stage files for commit, please read - Git Basics. +

اضافه کردن /سکوگذاری فایلهای شما برای کمیت کردن توسط این سایت پوشش داده نخواهد شد.بروی این سایت تمام +درتمام محیط مجازی و انلاین کد نویسی بروی این سایت +.فقط وانمود می کند که شما همیشه فایلهایی سکوگذاری شده و اماده کمیت کردن در همه زمانها دارید + اگر شما در مورد چگونه اضافه یا سکوکردن فایلها برای کمیت کردن نیاز به یک یاداوری دارید لطفن بخوانید + گیت بیسیک.

- Sandboxes are split by specific git commands, listed below. + .محیط های مجازی به دستورات مشخصی تقسیم شده اند که درزیر لیست شده اند

@@ -68,8 +69,10 @@

 

- We are going to skip instructing you on how to add your files for commit in this explanation. - Let's assume you already know how to do that. If you don't, go read some other tutorials. + ما نمیخواه یم به شما یاد بدهیم که چطوری فایل اضافه کنید ما فرض را بر این میگیریم که شما بلدین اگر بلد نیستید بروید سراغ آموزشگاه دیگر و فایل را مطالعه فرمایید در + د جعب لل ه ترمینال به تعداد دفعاتی که دوست دارین + .commit اضافه کنید +

Pretend that you already have your files staged for commit and enter git commit @@ -133,28 +136,18 @@

 

-
+

- git reset will move HEAD and the current branch back to wherever - you specify, abandoning any commits that may be left behind. This is useful to undo a commit - that you no longer need. -

+ git resetهد حرکت خواهد کرد و شاخه رو برمیگرداند به جایی که شما مشخص کردید، جدا از هر commit که ممکن است پشت سر بگذارید. این کار زمانی سودمند است که شما بخواهید commitرا که دیگر نیازی ندارید به حالت قبلی بازگردانید.

- This command is normally used with one of three flags: "--soft", "--mixed", and "--hard". - The soft and mixed flags deal with what to do with the work that was inside the commit after - you reset, and you can read about it here. - Since this visualization cannot graphically display that work, only the "--hard" flag will work - on this site. + این دستور معمولا با یکی از سه فلگ Soft-Mixed,Hard استفاده می شود.فلگ هایSoft,Mixed با آنچه که درون commit بعد از ریست کردن بود سروکار دارد و شما میتونید درباره اون اینجا بخونید.. کلیک کنید. + از آنجایی که این تصویر نمیتونه به صورت گرافیکی آن کار را نمایش دهد، فقط Flag هارد روی این سایت کار خواهد کرد.

- The ref "HEAD^" is usually used together with this command. "HEAD^" means "the commit right - before HEAD. "HEAD^^" means "two commits before HEAD", and so on. + کد "HEAD^" معمولا با این دستور با همدیگر کار می کنند. "HEAD^" به این معنی است: یک commit دقیقا قبل از هد. "HEAD^^" یعنی دو تغییر بعد از هد و به همین صورت.

- Note that you must never use git reset to abandon commits - that have already been pushed and merged into the origin. This can cause your local repository - to become out of sync with the origin. Don't do it unless you really know what you're doing. -

+ دقت کنید که هرگز نباید دستور git reset را برای لغو تغییراتی که ثبت و یکپارچه با داده های اصلی شده اند استفاده کنید.این می تواند منجر به این شود که مخزن محلی شما با داده های اصلی ناهماهنگ شود.این کار را انجام ندهید مگر اینگه بدانید واقعا چه کاری می خواهید انجام دهید

@@ -170,8 +163,11 @@

 

- git merge will create a new commit with two parents. The resulting - commit snapshot will have the all of the work that has been done in both branches. + git merge دستورگیت مرج ایجاد میکند یک کامیت به همراه دومرجع . +نتایج کامیت ذخیره خواهد شد به صورت یک عکس که شامل تمام کارهایی است که بروی هر بخش انجام شده است + + +اگرهیچ اختلافی بین دوکامیت وجود نداشته باشد گیت انجام خواهددادیک متد بازگشت سریع از حالت مرجع برای اینکه اتفاق افتادن این حالت را ببینیم برنچ راچک کرده و دستورگیت مرج دیو را اجرا میکنیم

If there was no divergence between the two commits, git will do a "fast-forward" method merge.
@@ -180,24 +176,18 @@

 

-

- git rebase will take the commits on this branch and "move" them so that their - new "base" is at the point you specify. -

-

- You should pay close attention to the commit IDs of the circles as they move when you do this exercise. -

-

- The reason I put "move" in quotations because this process actually generates brand new commits with - completely different IDs than the old commits, and leaves the old commits where they were. For this reason, - you never want to rebase commits that have already been shared with the team you are working with. +

+ git rebase + + کامیت ها را در این انشعاب قرار میدهد آن ها را حرکت (جا به جا می کند) می دهد به طوری که پایگاه جدید آنها امکانیست که شما مشخص میکنید. شما باید به نحوه حرکت دایره ها . هنگامی که این تمرین را انجام میدهید توجه بسیار زیادی را به شناسه ها کامیت دایره ها بکنید . +دلیل این که "حرکت یا جابه جایی" را درون کتیشن گذاشته ایم این است که این فرایند در واقع کامیت های کابل متفاوت با کامیت های جدید انشعاب تولید میکند به همین دلیل شما نمیخواهید که کامیت ها را با تیمی که با ان ها کار میکنید و تقسیم شده ریبیس کنید. +

- git fetch will update all of the "remote tracking branches" in your local repository. - Remote tracking branches are tagged in grey. + git fetch ".تمام انشعابات مسیر یابی را در مخزن محلی خود بروز رسانی خواهد کرد.که آن انشعابات را با برچسبی خاکستری رنگ مشخص می نماید."

diff --git a/mosafer b/mosafer new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/mosafer @@ -0,0 +1 @@ +