بوابة للمبتدئين المطلقين

إذا كنت جديدًا في عالم البرمجة ، فيجب أن يكون تعلم Git على رأس قائمة أولوياتك.

Git هي إحدى هذه الأدوات التي ستواجهها يوميًا كجزء من وظيفتك.

ما يمكن أن تتوقعه في هذا المنشور

في هذا المنشور ، سأقدم نظرة عامة على Git وكيفية البدء به.

  • ما هو جيت؟
  • المصطلحات المرتبطة بـ Git
  • التعامل مع Git باستخدام سطر الأوامر

أعدك بشرح الموضوعات بأبسط طريقة ممكنة.

فلنبدأ بفهم ما هو جيت؟

Git هو نظام تحكم في الإصدار.

الآن ، ما هو نظام التحكم في الإصدار (VCS)؟

يقوم برنامج VCS بمراقبة جميع التغييرات التي يتم إجراؤها على الملفات التي تتم مراقبتها وتتبعها.

كما يسمح للعديد من المطورين بالمشاركة والعمل بشكل تعاوني على نفس مجموعة الملفات ، دون التعارض مع عمل بعضهم البعض.

فهو لا يتتبع فقط الملفات التي تم تغييرها ، ولكنه يحتفظ أيضًا بمسارات ملفات

  • ما هي التغييرات التي تم إجراؤها؟
  • من فعل هذه التغييرات؟
  • عندما تم إجراء هذه التغييرات.

لكي تتمكن من المشاركة والعمل بشكل تعاوني مع مطورين آخرين ، فإنك تحتاج إلى الوصول إلى خدمة مستضافة قائمة على Git.

بعض مزودي خدمة Git المستضافين المشهورين هم:

  • جيثب
  • Bitbucket
  • خدمات فريق Microsoft Visual Studio

كل منهم يقدم نوعا مماثلا من الوظائف.

ما هو المستودع في Git؟

A مستودع هو مجلد التي يتم تتبعها من قبل بوابة المحتويات. يُعرف أيضًا باسم الريبو ، بعبارات بسيطة.

قد يحتوي الريبو على عدة ملفات ومجلدات فرعية موجودة داخله. عادةً ما تحتوي الملفات الموجودة داخل المستودع على كود المصدر.

داخل كل ريبو ، يوجد مجلد .git . يحتوي هذا المجلد على جميع الملفات والمجلدات المطلوبة بواسطة Git لتتبع جميع التغييرات التي تم إجراؤها على الملفات داخل هذا الريبو.

إذا حذفنا مجلد .git هذا ، فلن يقوم Git بتعريف هذا المجلد على أنه ريبو ولن يتتبع محتوياته.

يُشار إلى المستودع الموجود على الكمبيوتر المحلي على أنه مستودع محلي ، ويُشار إلى المستودع الموجود على منصة Git المستضافة على أنه مستودع بعيد .

قم بتنزيل وتثبيت Git

يعد تنزيل Git وتثبيته عملية مباشرة إلى حد ما.

يمكنك تنزيل Git من هنا.

بمجرد تنزيل Git ، يمكنك الرجوع إلى هذا الدليل حول كيفية تثبيته.

تهيئة مستودع Git

قبل المضي قدمًا والبدء في تتبع ملفاتنا باستخدام Git ، نحتاج إلى تهيئة Git للمجلد الذي نريد Git مراقبته.

بعبارات بسيطة ، يحول Git مجلدًا إلى مستودع بحيث يمكن تتبع محتوياته بواسطته.

لتهيئة مجلد في مستودع Git:

في نظام قائم على Windows ، نحتاج إلى النقر بزر الماوس الأيمن فوق المجلد (نود أن يتم تعقبنا بواسطة Git) ، ثم النقر فوق "Git Bash Here". يؤدي هذا إلى فتح موجه أوامر مثل النافذة ، مما يسمح لنا بالتفاعل مع Git باستخدام أوامر Git.

ملاحظة: عندما نرغب في التفاعل مع Git ، سنتفاعل باستخدام أوامر Git من خلال نافذة Git Bash هذه. لاحظ أيضًا أن أوامر Git لا تختلف عن أنظمة Windows و Unix.

داخل نافذة Git Bash ، نحتاج إلى كتابة الأمر:

git init

يقوم هذا الأمر بتهيئة المجلد. في الأساس ، يقوم بتحويل هذا المجلد إلى مستودع Git.

كجزء من عملية التهيئة هذه ، يقوم أيضًا بإنشاء مجلد .git (وهو مجلد مخفي) داخل هذا المستودع. يحتوي هذا على جميع الملفات المطلوبة بواسطة Git لتتبع جميع التغييرات التي تم إجراؤها على هذا المستودع.

لكن هذا مجرد مجلد عادي مثل المجلدات الأخرى الموجودة على النظام. في مصطلحات Git ، ما زلنا نشير إلى هذا كمستودع أو مستودع محلي ، لنكون أكثر دقة.

في نظام قائم على نظام Unix ، ننتقل فقط إلى الدليل (الذي ترغب في تتبعه بواسطة Git) ، ونقوم بتشغيل الأمر git init ، هذا كل شيء. هذا يحول هذا الدليل إلى مستودع Git.

حالة المستودع

في أي وقت إذا أردنا معرفة ما يتم تتبعه بواسطة Git داخل مستودع ، يمكننا القيام بذلك عن طريق كتابة الأمر أدناه:

git status

سننظر في هذا الأمر بمزيد من التفصيل في مرحلة ما لاحقًا في المنشور.

تذكر الآن ، إذا أردنا أن نرى ما يتم تتبعه داخل مستودع بواسطة Git ، فيمكننا القيام بذلك باستخدام هذا الأمر.

تتبع المستودع

على الرغم من أننا قمنا بتهيئة المجلد كمستودع Git ، فلن يتم تعقب محتوياته تلقائيًا. نحتاج إلى توجيه Git لمراقبة محتوياته.

للقيام بذلك ، نستخدم الأمر git add . بناء الجملة لهذا الأمر كما هو موضح أدناه:

git add file [file] [file..]
ملاحظة: أي شيء داخل الأقواس المربعة [] اختياري. ينطبق هذا على جميع أوامر Git المدرجة في هذا المنشور.

يمكننا إما تحديد ملف واحد أو ملفات متعددة ليتم تتبعها بواسطة Git.

إذا أردنا أن يراقب Git ملفات معينة موجودة في المستودع ، فيمكننا القيام بذلك عن طريق تحديد اسم الملف الفردي لكل ملف نرغب في تتبعه.

في حال أردنا تتبع الملفات التي تنتمي إلى نوع معين من الملفات ، يمكننا القيام بذلك عن طريق تحديد امتداد الملف الخاص بها ، كما هو موضح أدناه. هذا يتتبع جميع الملفات التي تنتهي بامتداد .txt.

$ git add *.txt

إذا أردنا أن يتتبع Git جميع الملفات الموجودة في المستودع ، فسيكون بناء الجملة كما هو موضح أدناه.

$ git add .

Let’s say we have the following files present within our repository:

As you can see even the .git folder has been created as part of the initialization process. Originally this folder was hidden — I had to change the folder properties to make it visible (just to show it to you all).

This is how a .git folder looks, immediately after the git init command is executed.

This is how the contents of the .git folder look after a few transactions have been done to the repository.

To check what all files are currently being tracked by Git, we can make use of the git status command:

$ git status On branch master No commits yet Untracked files: (use “git add …” to include in what will be committed) HelloWorld.html Notes.txt README.md nothing added to commit but untracked files present (use “git add” to track)

Looking at the output of the git status command, it indicates that none of the files are currently being tracked by Git.

Let’s go ahead and add these files so that they get tracked by Git.

The command for adding these files is as shown below:

$ git add HelloWorld.html Notes.txt

Now, let’s execute the git status command and check its output.

$ git status On branch master No commits yet Changes to be committed: (use “git rm — cached …” to unstage) new file: HelloWorld.html new file: Notes.txt Untracked files: (use “git add …” to include in what will be committed) README.md

As we can see, we have the HelloWorld.txt and the Notes.txt files present within the staging area that are waiting to be committed.

The README.md file isn’t being tracked at all, as we didn’t include this file within the git add command which we executed earlier.

When we executed the git add command, Git staged all the files which were specified as part of the input to this command.

Until we commit these files, Git won’t start tracking these files.

Committing Staged Files

Let’s commit these staged files by typing the command shown below.

$ git commit -m ‘Initial Commit’

git commit is the command which is used to commit any staged files, -m is used to specify the comments for this commit operation.

If we would like to view all the commit operations that have been performed, we can do it by typing the git log command, as shown below.

$ git log commit 8525b32ffcb92c731f5d04de7fe285a2d0ebe901 (HEAD -> master) Author: shahzan  Date: Sun Apr 28 01:12:20 2019 +0100 Initial Commit

Whenever any change is done to a file which is being tracked by Git, we need to re-stage those files and re-commit them again. Until those files are not re-staged and re-committed, they will be tracked by Git.

I have done some minor changes to the Notes.txt file, let’s see what Git has got to say about these changes by executing the git status command.

$ git status On branch master Changes not staged for commit: (use “git add …” to update what will be committed) (use “git checkout — …” to discard changes in working directory) modified: Notes.txt Untracked files: (use “git add …” to include in what will be committed) README.md no changes added to commit (use “git add” and/or “git commit -a”)

Looking at the above output block, it is clear that the file Notes.txt has been modified and the changes are not staged for commit.

We make use of the same git add command to re-stage the file.

$ git add Notes.txt [email protected] MINGW64 /d/Medium Post Pics/Git/Source Code (master) $ git status On branch master Changes to be committed: (use “git reset HEAD …” to unstage) modified: Notes.txt Untracked files: (use “git add …” to include in what will be committed) README.md

As you can notice from the above output block, the file has been staged and is waiting to be committed.

Again, we make use of the same git commit command to re-commit the staged file.

$ git commit -m ‘Notes.txt file updated’ [master 184fcad] Notes.txt file updated 1 file changed, 3 insertions(+), 1 deletion(-)

Let’s execute the git log command and see if the commit has been successful.

$ git log commit 184fcad4185296103cd9dba0da83520399a11383 (HEAD -> master) Author: shahzans  Date: Sun Apr 28 01:15:38 2019 +0100 Notes.txt file updated commit 8525b32ffcb92c731f5d04de7fe285a2d0ebe901 Author: shahzans  Date: Sun Apr 28 01:12:20 2019 +0100 Initial Commit

As you may notice in the above output block, both the commit operations are being displayed.

Ignoring Files

Within the repository, there may be files that hold sensitive data or log data, which we don’t want to be tracked by Git under any circumstances.

.gitignore is the file within which we can specify all the files we don’t want Git to keep track of.

$ touch .gitignore

The syntax to create this file is as shown above.

Let’s say that I do not want Git to track any file ending with the .md extension.

Before adding *.md to the .gitignore file, have a look at the output of the git status command as shown in the output block below.

$ git status On branch master Untracked files: (use “git add …” to include in what will be committed) .gitignore README.md nothing added to commit but untracked files present (use “git add” to track)

As you may notice, we have .gitignore and README.md being shown as untracked files.

After adding *.md to the .gitignore file, the git status is as shown in the output block below.

As you may notice, we now just have .gitignore being shown as an untracked file.

$ git status On branch master Untracked files: (use “git add …” to include in what will be committed) .gitignore nothing added to commit but untracked files present (use “git add” to track)

You can either specify an individual filename or a wildcard entry within the .gitignore file.

The Wrap-Up

Git is a very powerful tool and there is a lot more you could do with it, such as branching, merging, pull and push request and much more.

Just in case you’re interested in learning more about Git, here is a course that I would recommend you to enroll (affiliate link).

Before you say goodbye…

Let’s keep in touch, click here to enter your email address (Use this link if the above widget doesn’t show up on your screen).

Thank you so much for taking your precious time to read this post.