У чому різниця між git clone
і git checkout
?
У чому різниця між git clone
і git checkout
?
Відповіді:
Основна сторінка для оформлення замовлення: http://git-scm.com/docs/git-checkout
Сторінка людини для клонування: http://git-scm.com/docs/git-clone
Підсумовуючи це, клон призначений для отримання сховищ, яких у вас немає, замовлення - для перемикання між гілками у вашому сховищі.
Примітка: для тих, хто має SVN / CVS-фон і не є новим у Git, еквівалент git clone
SVN / CVS є checkout
. Одно і те ж формулювання різних термінів часто заплутане.
checkout
може використовуватися і для інших речей, як-от перезапис вашого файлу у робочій копії з версією цього файлу з іншої редакції.
git clone - це отримати ваші сховища з віддаленого сервера git.
git checkout - це перевірка бажаного стану вашого сховища (наприклад, гілок чи певних файлів).
Наприклад, ви зараз перебуваєте на головній гілці і ви хочете перейти на розробку.
git checkout develop_branch
Наприклад, ви хочете перевірити певний статус певного файлу
git checkout commit_point_A -- <filename>
Ось хороша довідка для вивчення Git, що дозволяє зрозуміти набагато легше.
git clone
також працюватиме з місцевими репостами.
Одне, що слід помітити, - це відсутність будь-якої "Copyout" всередині git. Це тому, що у вас вже є повна копія у вашому місцевому репо-репортажі - місцеве репо є clone
обраним вами репо рейтингом. Таким чином, ви фактично є особистим checkout
у всьому , не ставлячи певний "замок" на ці файли в репортажному репо.
Git надає хеш-значення SHA1 як механізм підтвердження того, що у вас є копія файлу / каталогу дерева / commit / repo точно така сама, як та, яка використовується тим, хто має змогу оголосити речі "Master" в межах ієрархії довіри. Це дозволяє уникнути всіх тих «замків», які призводять до того, що більшість систем SCM задихається (із звичайними проблемами приватних копій, великими злиттями та відсутністю реального контролю або управління вихідним кодом ;-)!
Просто git checkout має 2 використання
git checkout <existing_local_branch_name>
git checkout -b <new_feature_branch_name>
створіть нову гілку із вмістом головного та переключитесь на новостворену гілкуВи можете знайти більше варіантів на офіційному сайті
-b
параметр є дивним, що створює нову локальну гілку і перевіряє її одночасно в одній команді. Дуже сподобалося!
checkout
може бути використаний у багатьох випадках:
1-й випадок : перемикання між відділенням у локальному сховищі Наприклад:
git checkout exists_branch_to_switch
Ви також можете створити нову гілку та вимкнутись за допомогою цього випадку -b
git checkout -b new_branch_to_switch
2-й випадок : відновлення файлу з x rev
git checkout rev file_to_restore
...