Вступление
Это не Java, но несколько новичков-разработчиков задают один и тот же вопрос, как использовать GIT и как GIT работает, так что вот так …
Вы когда-нибудь работали в SVN? Ну забудь все что знаешь и давай начнем сначала
Что такое GIT-репо?
В общем, есть два зеркальных репо. Ваш локальный репо и удаленный репо. Да, два РЕПО. У каждого в команде есть действительная копия всего репо, поэтому даже если ваш удаленный сервер умрет, вы можете настроить его снова и просто перенести (спойлер) ваше репо на сервер репозитариев.
Ваш локальный репозиторий состоит из трех «деревьев», поддерживаемых git:
- Рабочий каталог, который содержит актуальные файлы.
- Индекс, который действует как постановка
- ГОЛОВКА, которая указывает на последний сделанный вами коммит.
Итак, давайте начнем ускоренный курс …
Создать новый репозиторий git.
1
2
|
#Start a git repository in the particular path git init |
оформить репозиторий
1
2
3
4
5
|
#Create a working copy of a local repository by running the command git clone /path/to/repository #When using a remote server, your command will be git clone [email protected ]:/path/to/repository |
Добавить и зафиксировать
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#Shows current branch status and lists files that have changes. #First it lists files in the Stage (to be committed) #And below go the files that are not staged. git status #You can propose changes (add it to the Index) using git add #Or if you want to add everything git add . #Or even git add --all #To actually commit these changes use git commit -m "An awesome commit message :p" #If a file was added to the stage by mistake undo a stage git reset particularFile.extension #Reseting code by deleting all changes. HEAD is the latest local commit git reset --hard HEAD #Same as above but N commits back. git reset --hard HEAD~N #Reset code but keep changes locally. (usefull for uncommiting a not pushed mistake) #Use HEAD~ 2 if a merge occured. git reset --soft HEAD~ 1 #Save local uncommitted changes temporarily git stash #Bring saved changes back git stash apply |
Проверьте, что случилось, пока вас не было …
1
2
3
4
5
|
#Use to see changes committed. Commit it can be found by git log git show --pretty= "" --name-only [commitID] Pushing changes #Your changes are now in the HEAD of your local working copy. To send those changes to your remote repository in your desired branch, execute git push origin Branching |
Обновление и слияние
1
2
|
#You can study repository history using and get commit id if needed git log |
Как обнаружить ошибку с помощью git bisect
Эта вещь сломана! Это сработало на прошлой неделе! Что произошло? Можем ли мы точно указать код, который его сломал!
Да, у всех нас был этот разговор в прошлом … Предполагая, что у нас есть сообщения Good Commit (это еще одна тема сообщения, но давайте продолжим), мы будем использовать git bisect.
Вы предоставляете git bisect две точки, ХОРОШИЙ момент времени и ПЛОХОЙ момент времени. Предположим, что это коммиты HEAD и 134245634bkl2730bc5der. Это делит время на части и дает вам коммит между ними. Если код в порядке, вы помечаете его как ХОРОШО, иначе вы помечаете его как ПЛОХОЙ. После нескольких итераций вы попадаете на коммит, который вызвал проблему. Проверьте пример ниже
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
git bisect start HEAD 134245634bkl2730bc5der Bisecting: 4 revisions left to test after this (roughly 2 steps) [3453lj45b3ljhrgo2ug42bbh98112] Revert "Refactored hello() method to pass sonar" #test your code here git bisect bad #or use a script that exits 1 Bisecting: 2 revisions left to test after this (roughly 1 step) [x7y435h34r87yhndfdsf0dsfw3452] Added some nice staff I found on the web git bisect good #or use a script that exits 0 Bisecting: 0 revisions left to test after this (roughly 0 steps) [234fy435h45b09jdfdsf0dsfw3452] Added ability to fly like superman git bisect bad 234fy435h45b09jdfdsf0dsfw3452is the first bad commit commit 234fy435h45b09jdfdsf0dsfw3452 Author: Alexius [email protected ] Date: Sat Oct 12 15 : 40 : 46 2019 Added ability to fly like superman bisect run success |
Это вся необходимая информация о GIT!
Наслаждайтесь!
Смотрите оригинальную статью здесь: Ускоренный курс Git Essentials Мнения, высказанные участниками Java Code Geeks, являются их собственными. |