-
1. Почеток
- 1.1 За верзиска контрола
- 1.2 Кратка историја на Git
- 1.3 Основи на Гит
- 1.4 Командната линија
- 1.5 Инсталирање на Git
- 1.6 First-Time Git Setup
- 1.7 Getting Help
- 1.8 Заклучок
-
2. Основите на Git
-
3. Гранење во Git
- 3.1 Гранење објаснето
- 3.2 Основно разгранување и спојување
- 3.3 Branch Management
- 3.4 Работни процеси
- 3.5 Далечински гранки
- 3.6 Ребаза
- 3.7 Заклучок
-
4. Git на Сервер
- 4.1 Протоколите
- 4.2 Добивање на Git на сервер
- 4.3 Генерирање на вашиот SSH јавен клуч
- 4.4 Поставување на серверот
- 4.5 Гит демон
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Опции за домаќини на трети лица
- 4.10 Заклучок
-
5. Дистрибуиран Git
- 5.1 Дистрибуирани работни процеси
- 5.2 Придонес кон проект
- 5.3 Приватен мал тим
- 5.4 Одржување на проект
- 5.5 Заклучок
-
6. GitHub
-
7. Git Алатки
- 7.1 Revision Selection
- 7.2 Интерактивно стажирање
- 7.3 Stashing and Cleaning
- 7.4 Signing Your Work
- 7.5 Searching
- 7.6 Rewriting History
- 7.7 Reset Demystified
- 7.8 Напредно спојување
- 7.9 Rerere
- 7.10 Дебагирање со Git
- 7.11 Submodules
- 7.12 Збивање
- 7.13 Заменување
- 7.14 Складирање на ингеренции
- 7.15 Заклучок
-
8. Персонализација на Git
- 8.1 Git Configuration
- 8.2 Git Атрибути
- 8.3 Git Hooks
- 8.4 An Example Git-Enforced Policy
- 8.5 Заклучок
-
9. Git и други системи
- 9.1 Git како Клиент
- 9.2 Мигрирање кон Git
- 9.3 Заклучок
-
10. Внатрешноста на Git
- 10.1 Plumbing and Porcelain
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 The Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Заклучок
-
A1. Appendix A: Git во други околини
- A1.1 Graphical Interfaces
- A1.2 Git in Visual Studio
- A1.3 Git in Eclipse
- A1.4 Git in Bash
- A1.5 Git in Zsh
- A1.6 Git in Powershell
- A1.7 Заклучок
-
A2. Appendix B: Вметнување на Git во вашите апликации
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
-
A3. Appendix C: Git команди
- A3.1 Setup and Config
- A3.2 Getting and Creating Projects
- A3.3 Basic Snapshotting
- A3.4 Branching and Merging
- A3.5 Sharing and Updating Projects
- A3.6 Inspection and Comparison
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Plumbing Commands
7.2 Git Алатки - Интерактивно стажирање
Интерактивно стажирање
Во овој дел, ќе погледнете неколку интерактивни команди за Git кои можат да ви помогнат лесно да ги обучите вашите обврски да вклучуваат само одредени комбинации и делови од датотеки. Овие алатки се корисни ако промените одреден број на датотеки и потоа одлучете дека сакате тие промени да бидат во неколку фокусирани обврски, а не една голема неуредна заложба. На овој начин, можете да бидете сигурни дека вашите обврски се логички одделни промени и лесно можат да бидат разгледани од програмерите кои работат со вас.
Ако го стартувате git add
со опцијата` -i` или --interactive
, Git влегува во интерактивен режим на школка, прикажувајќи нешто слично:
$ git add -i
staged unstaged path
1: unchanged +0/-1 TODO
2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now>
Можете да видите дека оваа команда ви покажува многу поинаков поглед на вашата област на поставување отколку што веројатно сте навикнати - во основа, истите информации што ги добивате со git status
, но малку посочи и информативни.
Ги наведува промените што сте ги направиле на левата и неизменетата промена на десната страна.
По ова доаѓа секцијата ‘` Команди '’, која ви овозможува да направите голем број на нешта како стопирање и дестабилизација на датотеки, поставување делови од датотеки, додавање на необучени датотеки и прикажување на разлики во она што е изведено.
Поставување и уништување на датотеки
Ако го напишете 2
или` u` во прилогот Што сега>
, ќе бидете известени за кои датотеки сакате да ги завршите:
What now> 2
staged unstaged path
1: unchanged +0/-1 TODO
2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
Update>>
За да ги поставите датотеките TODO
и` index.html`, можете да внесете броеви:
Update>> 1,2
staged unstaged path
* 1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
Update>>
The *
next to each file means the file is selected to be staged.
If you press Enter after typing nothing at the Update>>
prompt, Git takes anything selected and stages it for you:
Update>>
updated 2 paths
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 1
staged unstaged path
1: +0/-1 nothing TODO
2: +1/-1 nothing index.html
3: unchanged +5/-1 lib/simplegit.rb
Сега можете да видите дека датотеките TODO
и` index.html` се изведени и датотеката simplegit.rb
сеуште не е инсталирана.
Ако сакате да ја одложите датотеката TODO
во оваа точка, ја користите опцијата` 3` или r
(за враќање):
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 3
staged unstaged path
1: +0/-1 nothing TODO
2: +1/-1 nothing index.html
3: unchanged +5/-1 lib/simplegit.rb
Revert>> 1
staged unstaged path
* 1: +0/-1 nothing TODO
2: +1/-1 nothing index.html
3: unchanged +5/-1 lib/simplegit.rb
Revert>> [enter]
reverted one path
Повторно гледајќи го вашиот Git статус, можете да видите дека сте ја избришале датотеката TODO
:
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 1
staged unstaged path
1: unchanged +0/-1 TODO
2: +1/-1 nothing index.html
3: unchanged +5/-1 lib/simplegit.rb
За да ја видите разликата од она што сте го направиле, можете да ја користите командата 6
или` d` (за diff).
Тоа ви прикажува листа на вашите изведени датотеки, и можете да ги изберете оние за кои би сакале да ја видите изведената разлика.
Ова е слично како да се специфицира git diff -cached
на командната линија:
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 6
staged unstaged path
1: +1/-1 nothing index.html
Review diff>> 1
diff --git a/index.html b/index.html
index 4d07108..4335f49 100644
--- a/index.html
+++ b/index.html
@@ -16,7 +16,7 @@ Date Finder
<p id="out">...</p>
-<div id="footer">contact : support@github.com</div>
+<div id="footer">contact : email.support@github.com</div>
<script type="text/javascript">
Со овие основни команди, можете да го користите интерактивниот режим за додавање, за полесно да се справи со вашата сцена.
Поставени закрпи
Исто така, Git може да фати одредени parts датотеки, а не останатите.
На пример, ако направите две промени во вашата датотека simplegit.rb
и сакате да поставите една од нив, а не другата, тоа е многу лесно во Git.
Од истиот интерактивен повик објаснет во претходниот дел, напишете 5
или` p` (за лепенка).
Git ќе ве праша кои датотеки сакате делумно да се етаблирате; тогаш, за секој дел од избраните датотеки, тој ќе прикаже логови на датотеката diff и ќе праша дали би сакале да ги фаќате, еден по еден:
diff --git a/lib/simplegit.rb b/lib/simplegit.rb
index dd5ecc4..57399e0 100644
--- a/lib/simplegit.rb
+++ b/lib/simplegit.rb
@@ -22,7 +22,7 @@ class SimpleGit
end
def log(treeish = 'master')
- command("git log -n 25 #{treeish}")
+ command("git log -n 30 #{treeish}")
end
def blame(path)
Stage this hunk [y,n,a,d,/,j,J,g,e,?]?
Имате многу опции во овој момент.
Внесувањето ?
Покажува листа на она што можете да направите:
Stage this hunk [y,n,a,d,/,j,J,g,e,?]? ?
y - stage this hunk
n - do not stage this hunk
a - stage this and all the remaining hunks in the file
d - do not stage this hunk nor any of the remaining hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help
Општо земено, ќе напишете y
или` n` ако сакате да го поставите секое парче, но да ги поставите сите нив во одредени датотеки или да прескокнете некоја одлука додека не можете подоцна и подоцна.
Ако фаќате еден дел од датотеката и оставете друг дел да биде неизложен, вашиот излез за статус ќе изгледа вака:
What now> 1
staged unstaged path
1: unchanged +0/-1 TODO
2: +1/-1 nothing index.html
3: +1/-1 +4/-0 lib/simplegit.rb
Интересен е статусот на датотеката simplegit.rb
.
Тоа ви покажува дека неколку линии се изведени и неколку не се поставени.
Делумно сте ја изведеле оваа датотека.
Во овој момент, можете да излезете од скриптата за интерактивно додавање и да стартувате `git commit 'за да извршите делумно изведени датотеки.
Вие исто така не треба да бидете во режим на интерактивен додаток за да го направите делумното поставување на датотеки - можете да го започнете истиот скрипта со користење на git add -p
или` git add -patch` во командната линија.
Понатаму, можете да го користите patch режим за делумно ресетирање на датотеките со командата git reset --patch
, за проверка на делови од датотеки со командата` git checkout --patch` и за складирање на делови од датотеки со ` команда --patch`.
Ние ќе одиме во повеќе детали за секоја од овие како што се до понапредни примени на овие команди.