Git - انجام تغییرات


Advertisements

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
Advertisements