Jerry انبار محلی خود را با استفاده از clone ایجاد کرد، حالا او میخواهد تغییراتی اعمال کند، تغییرات شامل افزودن یک فایل string.cبه انبار محلی بوده و محتویات این فایل به شکل زیر است:
#include <stdio.h> int my_strlen(char *s) { char *p = s; while (*p) ++p; return (p - s); } int main(void) { int i; char *s[] = { "Git tutorials", "Howcodex" }; for (i = 0; i < 2; ++i) printf("string lenght of %s = %d\n", s[i], my_strlen(s[i])); return 0; }
او کدش را compile و اجرا و تست کرده است، حالا او میخواهد تغییراتش را به انبار محلی اضافه کند.
عملیات git add فایل را به staging area اضافه میکند:
[jerry@CentOS project]$ git status -s ?? string ?? string.c [jerry@CentOS project]$ git add string.c
Git علامت ?? را قبل از تمام فایلهایی که هنوز بخشی از Git نشدهاند نشان میدهد، این به همان دلیل است که Git هنوز نمیداند با این فایلها چه کار کند
Jerry فایل string.c را به stash area افزود، اکنون git status -s میتواند فایل را در staging area نمایش دهد:
[jerry@CentOS project]$ git status -s A string.c ?? string
برای انجام تغییرات commit او از دستور commit که با -m دنبال میشود استفاده میکند. اگر ما -m را از قلم بیاندازیم git ویرایشگر را باز میکند و ما میتوانیم چندین خط توضیح برای فایل و عملیات commit مان بنویسیم:
[jerry@CentOS project]$ git commit -m 'Implemented my_strlen function'
دستورات بالا نتایج زیر را در برخواهند داشت
[master cbe1249] Implemented my_strlen function 1 files changed, 24 insertions(+), 0 deletions(-) create mode 100644 string.c
بعد از commit کردن، با دستور git log میتوان جزئیات commit اجرا شده، را مشاهده کرد commit ID نام نویسنده، زمان و commit hash ID یا SHA-1 hash برای commit:
[jerry@CentOS project]$ git log
دستورات بالا نتایج زیر را در برخواهند داشت:
commit cbe1249b140dad24b2c35b15cc7e26a6f02d2277 Author: Jerry Mouse <jerry@howcodex.com> Date: Wed Sep 11 08:05:26 2013 +0530 Implemented my_strlen function commit 19ae20683fc460db7d127cf201a1429523b0e319 Author: Tom Cat <tom@howcodex.com> Date: Wed Sep 11 07:32:56 2013 +0530 Initial commit