جستجو در تالارهای گفتگو
در حال نمایش نتایج برای برچسب های 'git'.
3 نتیجه پیدا شد
-
آشنایی با سرویس میزبانی صفحات گیت هاب (Github Pages)
Max Base نوشته وبلاگ را ارسال کرد در برنامه نویسی
سلام وقت بخیر, گیت هاب پیج گیتهاب پیج یک سرویس میزبانی وب است که توسط Github اراعه شده است که با استفاده از آن می توانید حتی صفحاتی Static را در پلتفرم وب میزبانی کنید و حتی ابزار هایی مانند Jekyll را می توانید روی این بستر (Github Pages) پیاده و اجرا کنید که در قسمت های آینده در مورد آن توضیح خواهم داد. میزبانی وب سایت هایی که بر پایه Github Pages هستند بصورت رایگان هست و دیگر نیازی به دامین, هاست و سرور وجود ندارد. حساب های گیت هاب تمام حساب هایی که در سایت گیت هاب وجود دارند دو نوع هستند. حساب کاربری و شخصی حساب سازمانی (تیم) بطور مثال : حساب هایی مانند: Kambiz-Asadzadeh (Kambiz Asadzadeh), BaseMax (Max Base), ccoreghaesm (Ghasem Ramezani), HamedMasafi (Hamed Masafi) همگی حساب های فرد و شخصی هستند. و حساب هایی مانند : Microsoft · GitHub, Google · GitHub, TeamSnap · GitHub, iOSTREAM · GitHub .حساب هایی سازمانی (تیم) هستند هر حساب کاربری و شخصی این قابلیت را دارد تا بتواند یک حساب سازمانی ایجاد کند. ایجاد حساب سازمانی (تیم) برای ایجاد کردن یک حساب سازمانی, بعد از عضویت و ایجاد یک حساب کاربری در Github و وارد شدن به حساب کاربریتان, به اینجا مراجعه کنید تا یک سازمان جدیدی ایجاد کنید. گیت هاب پیج به موضوع اصلی برمیگردیم. تا کنون در مورد انواع حساب ها توضیح داده ایم. حال در نظر داشته باشید که هر حساب کاربری (عادی یا سازمانی) این قابلیت را دارد تا بتواند یک میزبانی برای خودش رزرو کند. در حالت پیشفرض میزبانی ها بصورت رایگان بر روی دامین GitHub Pages قرار دارند، با اینحال بطور مثال اگر شما یک حساب (شخصی یا سازمانی) بنام test456 دارید میتوانید میزبانی خود را بر روی دامین http://test456.github.io فعال کنید. آزمایشگاه و انجام بصورت عملی در حال حاظر من خودم یک سازمان (تیم) بنام MaxFork با آدرس Max Fork · GitHub در اختیار دارم. می خواهم یک میزبانی وب جدید روی این حساب ایجاد کنم. گزینه New را لمس کنید و یک مخزن جدید (پروژه) ایجاد کنید. دقت کنید که نام پروژه اهمیت دارد را آدرس میزبانی که مد نظرمان هست وارد می کنیم. بطور مثال : MaxFork.Github.io محتوای Description اختیاری است و می توانید هر چه میخواهید وارد کنید. چون بعدا هم امکان ویرایش کردن آن برایتان وجود ندارد. نوع پروژه را می توانید Public یا Private تنظیم کنید. با توجه به اینکه حساب های اکثر افراد معمولی هست گمان میکنم امکان تنظیم کردن از نوع Private برای آنها همراه با میزبانی وب وجود نداشته باشد. بنابراین Public را انتخاب کنید. پیاده کردن یک فایل README برای مخزن اختیاری است و می توانید آنرا ایجاد کنید. همچنین تصمیم شما در مورد انتخاب لایسنس نیز آزادانه است و می توانید خودتان شخصا در مورد آن فکر و تصمیم بگیرید. برای امتحان می توانید فایلی بنام index.html را با یک محتوای آزمایشی ایجاد کنید. در حال حاظر وب سایتی با آدرس https://maxfork.github.io در دسترس وجود دارد و محتوایی را که در فایل نوشته ایم را نشان می دهد. در انتهای بخش Settings در قسمت GitHub Pages می توانید وضعیت میزبانی را بررسی کنید. در قسمت ذکر شده می توانید قالب های از قبل تعریف شده را مشاهده و انتخاب کنید. همچنین امکان تنظیم Custom domain برای میزبانی را هم دارید. همچنین می توانید فایل های دیگری نیز مانند test.html همراه با پوشه و مسیردهی ایجاد کنید. بطور مثال اکنون ما فایل new.html را در شاخه اصلی مخزن ایجاد کردیم که در آدرس زیر قابل دسترس است: https://maxfork.github.io/new.html فایلی بنام _config.yml از قبل تعریف شده است که می توانید بصورت دستی هم ایجاد کنید که در آن نام قالب / تنظیمات / پلاگین و ماژول هایی را که نیاز دارید می توانید تعریف کنید. در قسمت های بعدی در مورد Static بیشتر توضیح خواهم داد، پیشنهاد میکنم در مورد Textile و Markdown هم مطالعه کنید. سپاس Max Base / مکس بیس -
چگونه روند پیشرفت پروژه را کنترل کنیم ؟ کنترلورژن یا Git چیست ؟
قاسم رمضانی منش نوشته وبلاگ را ارسال کرد در برنامه نویسی
فایلها/تغییرات پروژه را چطوری کنترل کنیم ؟ در وهلهٔ اوّل شاید بگید چه نیازیه ؟ خب برنامه رو مینویسیم و میریم دیگه !. درسته برنامهاتون را مینویسید و میروید؛ امّا به کجا چنین شتابان ؟ آیا همیشه برنامهٔ شما کوچکخواهد بود ؟ آیا قراره برنامهٔ شما در صد خط تمام بشه ؟ یا اینکه کلاً قصد توسعهاش رو دیگه ندارید ؟ خب شاید یکی دیگه داشت :). فرض کنید برنامهٔتان را نوشتید : void parsing(int argc, char **argv){ top = 0; for (unsigned i=1; i < (unsigned)argc; i+=2){ listArgs[top].name = argv[i]; listArgs[top].value = argv[i+1]; top++; } } خب، برنامهکار میکنه و میرید و یک هفتهٔ دیگه میاید و مثلاً خط : top = 0; را حذف میکنید. و برنامه در اجرای اوّل درست کار میکنه؛ پیشخودتون میگید خب چه نیازی بود، الکی ماهم کد نوشتیم :). امّا بعداً در اجراهای متوالی برنامه شروع میکنه به دادن خروجیهای نامتعارف. اینجاس که باید ساعتها وقت بزارید و بگردید ببینید آخرینبار چه چیزی رو تغییر دادید و کدوم فایل را ویرایش کردید. کار مسخره و اعصابخورد کنی میشه، درسته ؟. امّا برای مدیریت این دَنگٌوفَنگها میتونید از سیستمهایمدیریتپروژه استفاده بکنید. مثل Git حالا اینکه چرا گیت ؟ به خاطر اینکه راحتترینه و بهترینه. چرا ؟ چون امتحانش را پس داده، پروژهٔ بزرگ "کرنللینوکس" را داره مدیریت میکنه. حالا بیاید ببینیم اگه ما ازت گیت (git) استفاده میکردیم، چطوری میتوانستیم بفهمیم که چه بلایی سر کد آمده : ۱- اوّل گزارشات را چک میکنم، تا ببینم آخرین گزارشی که از تغییرات ذخیره کردم چه بوده ؟: $> git log commit bb513a5f9ec429222de03afa690e7fa5d2fbdf6e (HEAD -> master) Author: Ghasem Ramezani <g1999ramezani@gmail.com> Date: Sun May 5 00:05:22 2019 +0430 create a bug commit ab176fa8a282a74e6badfc285c0986bc66ee6b7d (origin/master, origin/HEAD) Author: Ghasem Ramezani <g1999ramezani@gmail.com> Date: Sat May 4 10:40:32 2019 +0430 make `top` to be 0 at first of parsing() function and make class storage of listArgs to be `extern` and getOption() function return "NULL" on Failure. خب فهمیدم که آخرین تغییرم با عنوان create a bug ثبت شده، حالا باید از شناسهاش استفاده کنم. ۲- تغییراتی که در آن گزارش ثبت شده است را مشاهده میکنم. : $> git show bb513a5f9ec429222de03afa690e7fa5d2fbdf6e commit bb513a5f9ec429222de03afa690e7fa5d2fbdf6e (HEAD -> master) Author: Ghasem Ramezani <g1999ramezani@gmail.com> Date: Sun May 5 00:05:22 2019 +0430 create a bug diff --git a/source/arg.c b/source/arg.c index c776ff2..a75c91d 100644 --- a/source/arg.c +++ b/source/arg.c @@ -7,7 +7,6 @@ unsigned top=0; struct ARGS listArgs[MAX_ARG]; void parsing(int argc, char **argv){ - top = 0; for (unsigned i=1; i < (unsigned)argc; i+=2){ listArgs[top].name = argv[i]; listArgs[top].value = argv[i+1]; دیدی به چه سادگی توانستیم تغییری که دادیم را پیدا کنیم ؟ البته این انتهای ماجرا نیست ! الآن که متوجه شدیم در کدام گزارشما خرابکاری کردیم؛ کافیه که تغییرات را به گزارش قبل از خرابکاری برگردانیم : $> git reset --hard ab176fa8a282a74e6badfc285c0986bc66ee6b7d البته قابل ذکره که ما اینجا تنها داخل این گزارش فقط یک تغییر داشتیم، مسلماً کار میتونه کمی پیچیدهتر بشه اگه تغییرات زیاد باشن، که همیشه هستن ?. چگونه با گیت (git) کار کنیم ؟ بسیار ساده، مسلماً اوّل نیاز دارید که این برنامه را نصب کنید. این برنامه به طور پیشفرض در سیستمعاملتون نصب نیست. کافیه که از مدیربستهٔ سیستمعاملتون کمک بگیرید، مثلاً برای Debian - Ubuntu - Ubuntu Mint به اینصورت کار تمام میشود : $ apt install git حالا بعد از نصب، نیاز دارید که مشخصاتتان را ثبت کنید، دقت کنید که تمام توضیحاتی که بنده میدهم را میتوانید بهصورت کاملتر از سایت گیت (git) دنبال کنید. $> git config --global user.name "Ghasem Ramezani" $> git config --global user.email "g1999ramezani@gmail.com" $> git config --global core.editor emacs دو مورد اوّل که واضح هستن، امّا مورد آخر دلبخواه خودتان هست، زمانیکه نیاز باشه گیت (git) ویرایشگرمتنی را جهت ویرایشباز بکند باید بداند که کدام ویرایشگر مورد علاقهٔ شماست. میتوانید هر برنامهای را قرار بدهید. امّا دقت کنید که بهترین ویرایشگرها میتوانند Vim, Emacs, Notepad++ باشند؛ فایل این تنظیمات را میتوانید از این مسیرها دنبال کنید : User Space : ~/.gitconfig System Wide: /etc/gitconfig ساخت مخازن (repository) خب حالا که نصب/پیکربندی انجام شد، کافیه که مخزن (repository) خودمان را راهاندازی کنیم. یک پروژهٔ جدید درست کنید و گیت (git) را مقداردهی (Initialize) کنید : $> mkdir project ; cd project $> git init ما یک دایرکتوری به اسم project درست کردیم، و مخزن (repository) خودمان را با دستور git init راهاندازی کردیم، یک سری فایلهایی گیت (git) برای ما داخل آن دایرکتوری با اسم .git درست کرده. تغییراتیکه نیاز رو انجام میدیم، مثلاً در وهلهٔ اوّل دایرکتوریها و فایلهای پروژه را راهاندازی میکنیم : $> mkdir header source build object $> touch header/arg.h source/arg.c Makefile $> tree . ├── build ├── Makefile ├── header │ └── arg.c ├── object └── source └── arg.h 4 directories, 3 files $> اگه درمورد Makefile نمیدانید، میتوانید از اینجا با GNU Make و Makefile آشنا بشید. الآن بد نیست که خروجی دستور git status را ببینیم تا توضیحاتی در اینباره بدیم (این دستور، وضعیتجاری مخزنمان را نشان میدهد) : $> git status On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) Makefile header/ source/ nothing added to commit but untracked files present (use "git add" to track) عکس زیر را مشاهدهکنید تا توضیحبهتری بدم : فایلهای شما داخل گیت (git) دارای حالاتهای مختلفیهستن، به طورکلّی یا شناختهشدناند (tracked) یا ناشناختهاند (untracked)؛ فایلها/دایرکتوریهایی که ما بعد از مقداردهی مخزنمان ساختیم، در حالت ناشناخته (untracked) هستند. که خود گیت (git) هم همینرا به ما گفتهاست : Untracked files: (use "git add <file>..." to include in what will be committed) برای اینکه شناختهشده (tracked) بشند، باید آنها را به صحنه (stage) ببریم. برای اینکار خود گیت گفتهاست که باید چه کرد که میتوانیم به دوصورت انجام دهیم : $> git add Makefile source header $> git add -A خب حالا دوباره خروجی git status را نگاه میکنیم : $> git status On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: Makefile new file: header/arg.c new file: source/arg.h الآن فایلهای ما به stage رفتند، و آمادهٔ اینهستند که گزارش (commit) بشوند. دقت کنید که Git از خِیر دایرکتوریهای خالی میگذرد. حالا کافیهکه ما تغییراتی که دادیم را گزارش کنیم، که با دستور git commit به دوصورت انجام میشود : $> git commit $> git commit -m "My Message" در حالتاوّل، گیت ادیتور پیشفرضتان را باز میکند و از شما میخواهد که یک توضیحکوتاه درمورد تغییراتیکه دادهاید بنویسید، در حالتدوّم، شما مستقیم توضیحکوتاه خود را وارد میکنید. حال دوباره برگردیم و خروجی دستور git status را ببینیم : $> git status On branch master nothing to commit, working tree clean خیلیهم عالی، این نشان دهندهٔ ایناست که ماهیچ فایل ناشناخته (َUntracked) یا دستکاریشده (Modified) یا درصحنه (Stage) نداریم. هنگامیکه تغییراتی را در فایلهای شناختهشده (Tracked) بدید، آن فایل از حالت دستکارینشده (Unmodified) به حالت دستکاریشده (Modified) درمیاید، که نیاز است شما تغییرات را درصورتنیاز وارد صحنه (Stage) کنید و بعد گزارشکنید (Commit). حال تغییراتیاعمال میکنیم، و مراحلمورد نیاز تا درصحنه (Stage) بردنفایلها انجام میدهیم : $> git add -A $> git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: Makefile modified: header/arg.h modified: source/arg.c امّا شاید شما نخواید که مثلاً Makefile گزارشش با مابقیه فایلها یکی باشه، و نیاز دارید که از Stage بیرون بیاریدش؛ دقّت کنید خود Git هم راهنمایی کرده که باید چهکار کرد : $> git reset HEAD Makefile $> git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: header/arg.h modified: source/arg.c Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: Makefile و حالا میتوانید به راحتی گزارش فایلهای خودتان را برای header/arg.h و source/arg.c بنویسید : $> git commit -m "Done With Print() Function" فایل .gitignore بیاید تا make را اجرا کنیم (درصورتیکه با GNU Make آشنا نیستید، برای آشنایی اینقسمت را مطالعه کنید) : $> git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: Makefile Untracked files: (use "git add <file>..." to include in what will be committed) build/ object/ no changes added to commit (use "git add" and/or "git commit -a") اینجا دایرکتوریهای build و object هم اضافه شدند،امّا ما نیازی نداریم که Git این دایرکتوریها را مدیریت کند، پس کافیه که یک فایل به اسم .gitignore درست کنیم. و فایلها و دایرکتوریهایی که نمیخواهیم Git آنها را دنبال کند را در آن ذکر کنیم : $> echo -e "/build/*\n/object/*" > .gitignore $> cat .gitignore /build/* /object/ $> git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: Makefile Untracked files: (use "git add <file>..." to include in what will be committed) .gitignore no changes added to commit (use "git add" and/or "git commit -a") و مشاهده میکنید که دیگر Git اخطاری برای دایرکتوریهای build و object نداد. خب دوستان،امیدوارم دلیل اهمیّت Git و کلاً برنامههای کنترلورژن را درککرده باشید؛ امّا شرمنده، دنیای Git بزرگتر از آنچه هست که من بخوام خلاصهای از هر قسمت را در یک پست بازگو کنم؛ شدیداً پیشنهاد میکنم که اینکتاب را برای فراگیری هرچه بهتر Git بخوانید. - موفق و پیروز باشید. ?- 2 دیدگاه
-
- cvs
- کنترلورژن
-
(و 1 مورد دیگر)
برچسب زده شده با :
-
در این پُست من به شما خواهم گفت که چگونه میتوانید نسخهی بهروز Git را بر روی ابنتو ۱۸.۰۴ از روی سورس آن نصب کنید. قبل از اینکه آغاز کنیم، ما باید مطمئن باشیم که سیستم شما به طور کامل بهروز میباشد. apt update && apt upgrade -y سیستم را راهاندازی مجدد و بسته های پیش نیاز را نصب کنید. apt install build-essential dh-autoreconf libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev سروس (منبع) Tarball را دانلود کنید. اول به این مخزن بروید بررسی کنید که آخرین نسخهی آن کدام است. در این پست آخرین نسخه 2.17.1 است. از طریق دستور زیر نسخهی مورد نظر را دانلود کنید: wget https://github.com/git/git/archive/v2.17.1.tar.gz پکیج Tarball را استخراج کنید: tar -xzvf v2.17.1.tar.gz دستور فوق دایرکتوری (مسیر) git-2.17.1/ را ایجاد خواهد کرد، برای تغییر مسیر به آن دستور زیر را اعمال کنید. cd git-2.17.1/ فایل پیکربندی را بسازید: make configure پیکربندی را اعمال و اجرا کنید: ./configure --prefix=/usr کد منبع را بیلد (بسازید): make all اگر شما میخواهید هر چیزی که در کد منبع وجود دارد را بسازید دستور زیر را اجرا کنید: make all doc info بعد از اتمام میتوانید فایلهای باینری را نصب کنید: make install اگر هم میخواهید هر چیزی را که بیلد شده است نصب کنید دستور زیر را اجرا کنید: make install install-doc install-html install-info بررسی کنید تا مطمئن شوید درست کار میکند: git --version git version 2.17.1 تبریک میگوییم، شما هم اکنون آخرین و بهترین نسخهی Git را بر روی سیستم خود دارید! میتوانید مسیر و فایلهای نصبی را پاک کنید. حالا که آخرین نسخهی گیت را بر روی سیستم خود دارید، از این پس برای بهروزرسانی آن کافی است کد زیر را اجرا کنید: git clone git://git.kernel.org/pub/scm/git/git.git بررسی کنید که کدام نسخهی منتشر شده را میخواهید داشته باشید: git checkout v1.whatever دوباره فرایند ساخت را تکرار کنید.