SlideShare a Scribd company logo
(‫)تکمیلی‬ ‫گیت‬ ‫ورژن‬ ‫کنترل‬ ‫سامانه‬
‫شریف‬ ‫صنعتی‬ ‫دانشگاه‬ – ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
– ‫صدرنژاد‬ ‫سیدمحمدمسعود‬۳۱‫اردیبهشت‬۱۳۹۶
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
2
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫کنترل‬‫سامانه‬ ‫کارگاه‬۲(
‫مطالب‬ ‫فهرست‬
۱‫گرافیکی‬‫های‬‫محیط‬ ‫در‬ ‫گیت‬ ‫از‬ ‫استفاده‬ ‫و‬ ‫نصب‬ .
۲.‫پیشنهاد‬git-flow‫ها‬‫برنچ‬ ‫مدیریت‬ ‫برای‬
۳‫روش‬ .semantic versioning‫و‬tag‫گذاری‬
۴‫یک‬ ‫های‬‫ویژگی‬ .commit message‫خوب‬
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
3
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫کنترل‬‫سامانه‬ ‫کارگاه‬۲(
) ‫گرافیکی‬ ‫های‬‫محیط‬ ‫در‬ ‫گیت‬۱(
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
4
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫کنترل‬‫سامانه‬ ‫کارگاه‬۲(
) ‫گرافیکی‬ ‫های‬‫محیط‬ ‫در‬ ‫گیت‬۲(
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
5
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫کنترل‬‫سامانه‬ ‫کارگاه‬۲(
) ‫گرافیکی‬ ‫های‬‫محیط‬ ‫در‬ ‫گیت‬۳(
6
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Workshop
Let's See in Action
Open Your Terminal
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
7
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫کنترل‬‫سامانه‬ ‫کارگاه‬۲(
‫پیشنهاد‬git-flow‫ها‬‫برنچ‬ ‫مدیریت‬ ‫برای‬
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
8
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫کنترل‬‫سامانه‬ ‫کارگاه‬۲(
‫با‬ ‫کار‬remote
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
9
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫کنترل‬‫سامانه‬ ‫کارگاه‬۲(
Deploy On Push
10
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Semantic Versioning (1)
 Problem
 In the world of software management there exists a
dread place called “dependency hell.”
 Many dependencies
 Version lock
• The inability to upgrade a package without having to
release new versions of every dependent package
 Prevent you
• from easily and safely moving your project forward
11
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Semantic Versioning (2)
 Solution
 Common practices
• in use in both closed and open-source software
 Consider a version format of X.Y.Z
(Major.Minor.Patch)
 Version numbers and the way they change
• convey meaning about the underlying code and what
has been modified from one version to the next
12
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Semantic Versioning (3)
 Semantic Versioning 2.0.0
 http://semver.org
 Given MAJOR.MINOR.PATCH increment
 MAJOR version
• when you make incompatible API changes,
 MINOR version
• when you add functionality in a backwards-compatible
manner, and
 PATCH version
• when you make backwards-compatible bug fixes.
 pre-release and build metadata
13
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Semantic Versioning (4)
 Semantic Versioning Specification (SemVer)
 Declare a public API.
• This API could be declared in the code itself or exist
strictly in documentation.
 A normal version number MUST take the form X.Y.Z
• Where X, Y, and Z are non-negative integers, and MUST
NOT contain leading zeroes.
• X is the major version, Y is the minor version, and Z is the
patch version.
• Each element MUST increase numerically. For instance:
1.9.0 -> 1.10.0 -> 1.11.0.
 Once a versioned package has been released,
• The contents of that version MUST NOT be modified.
• Any modifications MUST be released as a new version.
14
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Semantic Versioning (5)
 Semantic Versioning Specification (SemVer)
 Major version zero (0.y.z) is for initial development.
• The simplest thing to do is start your initial development
release at 0.1.0 and then incment the minor version for
each subsequent release.
 Version 1.0.0 defines the public API.
• The way in which the version number is incremented after
this release is dependent on this public API and how it
changes.
• If your software is being used in production, it should
probably already be 1.0.0.
• If you have a stable API on which users have come to
depend, you should be 1.0.0.
• If you’re worrying a lot about backwards compatibility,
you should probably already be 1.0.0.
15
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Semantic Versioning (6)
 Semantic Versioning Specification (SemVer)
 Patch version Z (x.y.Z | x > 0) MUST be incremented
if only backwards compatible bug fixes are introduced.
• A bug fix is defined as an internal change that fixes
incorrect behavior.
 Minor version Y (x.Y.z | x > 0) MUST be incremented
if new, backwards compatible functionality is
introduced to the public API.
• Patch version MUST be reset to 0 when minor version is
incremented.
 Major version X (X.y.z | X > 0) MUST be incremented
if any backwards incompatible changes are introduced to
the public API.
• It MAY include minor and patch level changes.
• Patch and minor version MUST be reset to 0 when major
version is incremented.
16
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Good Commit Message (1)
17
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Good Commit Message (2)
 Why good commit messages matter?
 Seven rules
 Separate subject from body with a blank line
 Limit the subject line to 50 characters
 Capitalize the subject line
 Do not end the subject line with a period
 Use the imperative mood in the subject line
 Wrap the body at 72 characters
 Use the body to explain what and why vs. how
18
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Good Commit Message (3)
 Separate subject from body with a blank line
 Begin the commit message with a single short (less
than 50 character) line summarizing the change,
 Followed by a blank line
 And then a more thorough description.
 The text up to the first blank line in a commit
message is treated as the commit title, and that
title is used throughout Git.
 For example, Git-format-patch(1) turns a commit
into email, and it uses the title on the Subject line and
the rest of the commit in the body.
19
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Good Commit Message (4)
 Limit the subject line to 50 characters
 Strive for atomic commits
 72 is the hard limit
20
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Good Commit Message (5)
 Capitalize the subject line
 For example:
• Accelerate to 88 miles per hour
 Instead of:
• accelerate to 88 miles per hour
21
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Good Commit Message (6)
 Do not end the subject line with a period
 Trailing punctuation is unnecessary in subject lines.
 Example:
• Open the pod bay doors
 Instead of:
• Open the pod bay doors.
22
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Good Commit Message (7)
 Spoken or written as if giving a command or
instruction
 Git itself uses the imperative whenever it creates a
commit on your behalf.
 For example:
• Refactor subsystem X for readability
• Update getting started documentation
• Remove deprecated methods
• Release version 1.0.0
 Instead of:
• Fixed bug with Y
• Changing behavior of X
23
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Good Commit Message (8)
 Spoken or written as if giving a command or
instruction
 A properly formed Git commit subject line should
always be able to complete the following sentence:
• If applied, this commit will your subject line here
 For example:
• If applied, this commit will refactor subsystem X for
readability
•If applied, this commit will update getting started
documentation
•If applied, this commit will remove deprecated methods
•If applied, this commit will release version 1.0.0
•If applied, this commit will merge pull request #123 from
user/branch
24
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Good Commit Message (9)
 Wrap the body at 72 characters
25
‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬
۱۳۹۶/۲/۳۱
‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲(
Good Commit Message (10)
 Use the body to explain what and why vs. how
 Code is generally self-explanatory in this regard.
 Take a look at the full diff and just think how much
time the author is saving fellow and future committers by
taking the time to provide this context here and now.
 Just focus on making clear the reasons why you made
the change in the first place—the way things worked
before the change (and what was wrong with that), the
way they work now, and why you decided to solve it the
way you did.
 For example:
https://github.com/bitcoin/bitcoin/commit/eb0b56b190
17ab5c16c745e6da39c53126924ed6
‫پاسخ‬ ‫و‬ ‫پرسش‬‫پاسخ‬ ‫و‬ ‫پرسش‬
‫وسیله‬ ‫به‬ ‫شده‬ ‫طراحی‬
twitter.com/smmsadrnezhtwitter.com/smmsadrnezh
‫صدرنژاد‬ ‫سیدمحمدمسعود‬

More Related Content

PPTX
Managing software product versioning with Gitflow, VSTS and Atlassian SourceTree
PDF
LAS16-TR03: Upstreaming 201
PPTX
IBM Rational Rhapsody 8.3.1 install guide with Cygwin for Executable MBSE
PDF
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
PPTX
Git Basics
PPTX
Installing Installing IBM Rational Rhapsody Designer and Architect for MBSE
PPTX
Installing Rhapsody 8.2.x Designer/Architect with Cygwin gcc compiler
PDF
The journey to GitOps
Managing software product versioning with Gitflow, VSTS and Atlassian SourceTree
LAS16-TR03: Upstreaming 201
IBM Rational Rhapsody 8.3.1 install guide with Cygwin for Executable MBSE
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
Git Basics
Installing Installing IBM Rational Rhapsody Designer and Architect for MBSE
Installing Rhapsody 8.2.x Designer/Architect with Cygwin gcc compiler
The journey to GitOps

Similar to Git Version Control System Part 2 (20)

PDF
IBM Middleware Upgrade webinar by CROZ June 2020
PDF
2008-12-2 System z Partners Field Call
DOC
Tcp performance Final Report
PPTX
Lesson 0.5 Introduction to Git (1).pptx
PDF
Gonzo - Increasing Agility by Understanding Risk
PDF
Puppet Camp London April 2014: Increasing Agility by Understanding Risk
PPTX
Db2 analytics accelerator on ibm integrated analytics system technical over...
PDF
Gerrit linuxtag2011
PDF
Mesa and Its Debugging, Вадим Шовкопляс
PPT
Deploying Windows 7 With Configuration Manager 2007 R2
PPTX
Update from android kk to android l
PDF
Go 1.8 Release Party
PPTX
Installing Rational Rhapsody Designer 8.2 or 8.2.1 for Executable MBSE
PPTX
Essential Tools for Modern PHP
PPTX
Lesson 0.5 Introduction to Git.pptx
PPTX
git github PPT_GDSCIIITK.pptx
PDF
asmjit - Complete x86 x64 JIT Assembler for C++.pdf
PDF
A tale of bug prediction in software development
PPTX
[TestWarez 2017] Behavior Driven Development in a complex environment - Consu...
PPTX
Rational Rhapsody 8.3 with Cygwin and iFixes (www.executablembse.com)
IBM Middleware Upgrade webinar by CROZ June 2020
2008-12-2 System z Partners Field Call
Tcp performance Final Report
Lesson 0.5 Introduction to Git (1).pptx
Gonzo - Increasing Agility by Understanding Risk
Puppet Camp London April 2014: Increasing Agility by Understanding Risk
Db2 analytics accelerator on ibm integrated analytics system technical over...
Gerrit linuxtag2011
Mesa and Its Debugging, Вадим Шовкопляс
Deploying Windows 7 With Configuration Manager 2007 R2
Update from android kk to android l
Go 1.8 Release Party
Installing Rational Rhapsody Designer 8.2 or 8.2.1 for Executable MBSE
Essential Tools for Modern PHP
Lesson 0.5 Introduction to Git.pptx
git github PPT_GDSCIIITK.pptx
asmjit - Complete x86 x64 JIT Assembler for C++.pdf
A tale of bug prediction in software development
[TestWarez 2017] Behavior Driven Development in a complex environment - Consu...
Rational Rhapsody 8.3 with Cygwin and iFixes (www.executablembse.com)
Ad

More from Masoud Sadrnezhaad (20)

PDF
Facade Design Pattern
PDF
Epistemic Justification
PDF
استفاده از داده‌های تجربی برای پشتیبانی از انتخاب فناوری در تصمیم‌گیری معماری...
PDF
تاریخچه و پیشینهٔ نظری اندازه‌گیری عملکرد و معرفی اجمالی برخی مدل‌های بلوغ و ...
PDF
تحلیل بده‌بستان‌ها میان ویژگی‌های کیفی برای پشتیبانی از تصمیم‌های معماری نرم‌...
PDF
سامانهٔ پشتیبان تصمیم برای شناسایی معماری‌های نامزد و اتخاذ تصمیم‌های معماری ...
PDF
آماده‌سازی ذهن برای خلاقیت و ابزار داستان‌سرایی
PDF
نمایش اجرای فرایندهای حرفه به کمک ابزارهای پویانمایی و شبیه‌سازی زمان و هزینه...
PDF
چارچوب توصیف منبع برای ذخیره و بازیابی معنا
PDF
حوزه‌های پژوهش در زمینهٔ مهندسی نرم‌افزار سامانه‌های خودتطبیق و خودسازمانده
PDF
معرفی و اجرای سناریوی SWIM در چارچوب Rainbow برای شبیه‌سازی معماری نرم‌افزار ...
PDF
معرفی و آموزش نحوهٔ استفاده از نرم‌افزار ERPNext برای برنامه‌ریزی منابع سازمانی
PDF
بی‌طرفی شبکه و ریشه‌های آن
PDF
Classroom Object Oriented Language (COOL)
PDF
از فرهنگ اجازه تا فرهنگ آزاد یا چگونه رسانه‌ها از تکنولوژی و قانون برای محدود...
PDF
طراحی و معماری خدمات ابری زیرساخت آمازون (AWS)
PDF
معرفی و آموزش سامانهٔ مدیریت محتوا مزانین
PDF
Git Version Control System
PDF
نقش جامعه و دولت در حمایت از نرم‌افزار آزاد
PDF
بزرگ‌داده؛ مقیاسی از دنیای واقعی
Facade Design Pattern
Epistemic Justification
استفاده از داده‌های تجربی برای پشتیبانی از انتخاب فناوری در تصمیم‌گیری معماری...
تاریخچه و پیشینهٔ نظری اندازه‌گیری عملکرد و معرفی اجمالی برخی مدل‌های بلوغ و ...
تحلیل بده‌بستان‌ها میان ویژگی‌های کیفی برای پشتیبانی از تصمیم‌های معماری نرم‌...
سامانهٔ پشتیبان تصمیم برای شناسایی معماری‌های نامزد و اتخاذ تصمیم‌های معماری ...
آماده‌سازی ذهن برای خلاقیت و ابزار داستان‌سرایی
نمایش اجرای فرایندهای حرفه به کمک ابزارهای پویانمایی و شبیه‌سازی زمان و هزینه...
چارچوب توصیف منبع برای ذخیره و بازیابی معنا
حوزه‌های پژوهش در زمینهٔ مهندسی نرم‌افزار سامانه‌های خودتطبیق و خودسازمانده
معرفی و اجرای سناریوی SWIM در چارچوب Rainbow برای شبیه‌سازی معماری نرم‌افزار ...
معرفی و آموزش نحوهٔ استفاده از نرم‌افزار ERPNext برای برنامه‌ریزی منابع سازمانی
بی‌طرفی شبکه و ریشه‌های آن
Classroom Object Oriented Language (COOL)
از فرهنگ اجازه تا فرهنگ آزاد یا چگونه رسانه‌ها از تکنولوژی و قانون برای محدود...
طراحی و معماری خدمات ابری زیرساخت آمازون (AWS)
معرفی و آموزش سامانهٔ مدیریت محتوا مزانین
Git Version Control System
نقش جامعه و دولت در حمایت از نرم‌افزار آزاد
بزرگ‌داده؛ مقیاسی از دنیای واقعی
Ad

Recently uploaded (20)

PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
assetexplorer- product-overview - presentation
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Digital Strategies for Manufacturing Companies
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
System and Network Administration Chapter 2
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
ai tools demonstartion for schools and inter college
PPTX
Introduction to Artificial Intelligence
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
top salesforce developer skills in 2025.pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
assetexplorer- product-overview - presentation
PTS Company Brochure 2025 (1).pdf.......
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Design an Analysis of Algorithms I-SECS-1021-03
Digital Strategies for Manufacturing Companies
Softaken Excel to vCard Converter Software.pdf
Digital Systems & Binary Numbers (comprehensive )
wealthsignaloriginal-com-DS-text-... (1).pdf
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
System and Network Administration Chapter 2
2025 Textile ERP Trends: SAP, Odoo & Oracle
ai tools demonstartion for schools and inter college
Introduction to Artificial Intelligence
Upgrade and Innovation Strategies for SAP ERP Customers
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Designing Intelligence for the Shop Floor.pdf
How to Choose the Right IT Partner for Your Business in Malaysia
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
top salesforce developer skills in 2025.pdf

Git Version Control System Part 2

  • 1. (‫)تکمیلی‬ ‫گیت‬ ‫ورژن‬ ‫کنترل‬ ‫سامانه‬ ‫شریف‬ ‫صنعتی‬ ‫دانشگاه‬ – ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ – ‫صدرنژاد‬ ‫سیدمحمدمسعود‬۳۱‫اردیبهشت‬۱۳۹۶
  • 2. ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ 2 ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫کنترل‬‫سامانه‬ ‫کارگاه‬۲( ‫مطالب‬ ‫فهرست‬ ۱‫گرافیکی‬‫های‬‫محیط‬ ‫در‬ ‫گیت‬ ‫از‬ ‫استفاده‬ ‫و‬ ‫نصب‬ . ۲.‫پیشنهاد‬git-flow‫ها‬‫برنچ‬ ‫مدیریت‬ ‫برای‬ ۳‫روش‬ .semantic versioning‫و‬tag‫گذاری‬ ۴‫یک‬ ‫های‬‫ویژگی‬ .commit message‫خوب‬
  • 3. ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ 3 ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫کنترل‬‫سامانه‬ ‫کارگاه‬۲( ) ‫گرافیکی‬ ‫های‬‫محیط‬ ‫در‬ ‫گیت‬۱(
  • 4. ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ 4 ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫کنترل‬‫سامانه‬ ‫کارگاه‬۲( ) ‫گرافیکی‬ ‫های‬‫محیط‬ ‫در‬ ‫گیت‬۲(
  • 5. ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ 5 ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫کنترل‬‫سامانه‬ ‫کارگاه‬۲( ) ‫گرافیکی‬ ‫های‬‫محیط‬ ‫در‬ ‫گیت‬۳(
  • 6. 6 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Workshop Let's See in Action Open Your Terminal
  • 7. ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ 7 ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫کنترل‬‫سامانه‬ ‫کارگاه‬۲( ‫پیشنهاد‬git-flow‫ها‬‫برنچ‬ ‫مدیریت‬ ‫برای‬
  • 8. ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ 8 ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫کنترل‬‫سامانه‬ ‫کارگاه‬۲( ‫با‬ ‫کار‬remote
  • 9. ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ 9 ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫کنترل‬‫سامانه‬ ‫کارگاه‬۲( Deploy On Push
  • 10. 10 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Semantic Versioning (1)  Problem  In the world of software management there exists a dread place called “dependency hell.”  Many dependencies  Version lock • The inability to upgrade a package without having to release new versions of every dependent package  Prevent you • from easily and safely moving your project forward
  • 11. 11 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Semantic Versioning (2)  Solution  Common practices • in use in both closed and open-source software  Consider a version format of X.Y.Z (Major.Minor.Patch)  Version numbers and the way they change • convey meaning about the underlying code and what has been modified from one version to the next
  • 12. 12 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Semantic Versioning (3)  Semantic Versioning 2.0.0  http://semver.org  Given MAJOR.MINOR.PATCH increment  MAJOR version • when you make incompatible API changes,  MINOR version • when you add functionality in a backwards-compatible manner, and  PATCH version • when you make backwards-compatible bug fixes.  pre-release and build metadata
  • 13. 13 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Semantic Versioning (4)  Semantic Versioning Specification (SemVer)  Declare a public API. • This API could be declared in the code itself or exist strictly in documentation.  A normal version number MUST take the form X.Y.Z • Where X, Y, and Z are non-negative integers, and MUST NOT contain leading zeroes. • X is the major version, Y is the minor version, and Z is the patch version. • Each element MUST increase numerically. For instance: 1.9.0 -> 1.10.0 -> 1.11.0.  Once a versioned package has been released, • The contents of that version MUST NOT be modified. • Any modifications MUST be released as a new version.
  • 14. 14 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Semantic Versioning (5)  Semantic Versioning Specification (SemVer)  Major version zero (0.y.z) is for initial development. • The simplest thing to do is start your initial development release at 0.1.0 and then incment the minor version for each subsequent release.  Version 1.0.0 defines the public API. • The way in which the version number is incremented after this release is dependent on this public API and how it changes. • If your software is being used in production, it should probably already be 1.0.0. • If you have a stable API on which users have come to depend, you should be 1.0.0. • If you’re worrying a lot about backwards compatibility, you should probably already be 1.0.0.
  • 15. 15 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Semantic Versioning (6)  Semantic Versioning Specification (SemVer)  Patch version Z (x.y.Z | x > 0) MUST be incremented if only backwards compatible bug fixes are introduced. • A bug fix is defined as an internal change that fixes incorrect behavior.  Minor version Y (x.Y.z | x > 0) MUST be incremented if new, backwards compatible functionality is introduced to the public API. • Patch version MUST be reset to 0 when minor version is incremented.  Major version X (X.y.z | X > 0) MUST be incremented if any backwards incompatible changes are introduced to the public API. • It MAY include minor and patch level changes. • Patch and minor version MUST be reset to 0 when major version is incremented.
  • 16. 16 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Good Commit Message (1)
  • 17. 17 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Good Commit Message (2)  Why good commit messages matter?  Seven rules  Separate subject from body with a blank line  Limit the subject line to 50 characters  Capitalize the subject line  Do not end the subject line with a period  Use the imperative mood in the subject line  Wrap the body at 72 characters  Use the body to explain what and why vs. how
  • 18. 18 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Good Commit Message (3)  Separate subject from body with a blank line  Begin the commit message with a single short (less than 50 character) line summarizing the change,  Followed by a blank line  And then a more thorough description.  The text up to the first blank line in a commit message is treated as the commit title, and that title is used throughout Git.  For example, Git-format-patch(1) turns a commit into email, and it uses the title on the Subject line and the rest of the commit in the body.
  • 19. 19 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Good Commit Message (4)  Limit the subject line to 50 characters  Strive for atomic commits  72 is the hard limit
  • 20. 20 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Good Commit Message (5)  Capitalize the subject line  For example: • Accelerate to 88 miles per hour  Instead of: • accelerate to 88 miles per hour
  • 21. 21 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Good Commit Message (6)  Do not end the subject line with a period  Trailing punctuation is unnecessary in subject lines.  Example: • Open the pod bay doors  Instead of: • Open the pod bay doors.
  • 22. 22 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Good Commit Message (7)  Spoken or written as if giving a command or instruction  Git itself uses the imperative whenever it creates a commit on your behalf.  For example: • Refactor subsystem X for readability • Update getting started documentation • Remove deprecated methods • Release version 1.0.0  Instead of: • Fixed bug with Y • Changing behavior of X
  • 23. 23 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Good Commit Message (8)  Spoken or written as if giving a command or instruction  A properly formed Git commit subject line should always be able to complete the following sentence: • If applied, this commit will your subject line here  For example: • If applied, this commit will refactor subsystem X for readability •If applied, this commit will update getting started documentation •If applied, this commit will remove deprecated methods •If applied, this commit will release version 1.0.0 •If applied, this commit will merge pull request #123 from user/branch
  • 24. 24 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Good Commit Message (9)  Wrap the body at 72 characters
  • 25. 25 ‫ها‬‫سیستم‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ۱۳۹۶/۲/۳۱ ‫صدرنژاد‬ ‫سیدمحمدمسعود‬) ‫گیت‬‫ورژن‬ ‫ل‬‫ل‬‫کنتر‬‫سامانه‬ ‫کارگاه‬۲( Good Commit Message (10)  Use the body to explain what and why vs. how  Code is generally self-explanatory in this regard.  Take a look at the full diff and just think how much time the author is saving fellow and future committers by taking the time to provide this context here and now.  Just focus on making clear the reasons why you made the change in the first place—the way things worked before the change (and what was wrong with that), the way they work now, and why you decided to solve it the way you did.  For example: https://github.com/bitcoin/bitcoin/commit/eb0b56b190 17ab5c16c745e6da39c53126924ed6
  • 26. ‫پاسخ‬ ‫و‬ ‫پرسش‬‫پاسخ‬ ‫و‬ ‫پرسش‬ ‫وسیله‬ ‫به‬ ‫شده‬ ‫طراحی‬ twitter.com/smmsadrnezhtwitter.com/smmsadrnezh ‫صدرنژاد‬ ‫سیدمحمدمسعود‬