Відповіді:
Ви можете створити гілку за допомогою хеша:
git branch branchname <sha1-of-commit>
Або за допомогою символічної довідки:
git branch branchname HEAD~3
Щоб перевірити гілку при її створенні, використовуйте
git checkout -b branchname <sha1-of-commit or HEAD~3>
git push origin BRANCH_NAME
<sha1-of-commit>
запуску, git checkout -b <name-of-branch> <sha1-of-commit>
але якщо гілка вже існуєgit checkout -B <name-of-branch> <sha1-of-commit>
Для цього на github.com:
Магію можна здійснити скиданням git .
Створіть нову гілку та перейдіть до неї (щоб усі ваші останні комісії зберігалися тут)
git checkout -b your_new_branch
Поверніться до попередньої робочої гілки (припустимо, що це головний)
git checkout master
Видаліть найновіші x зобов’язання, підтримуйте чистоту майстра
git reset --hard HEAD~x # in your case, x = 3
З цього моменту всі останні x комітети є лише у новій гілці, а не у попередній робочій гілці (master).
git reset --hard
- це не дуже гарна ідея, якщо ви вже підштовхнули зобов'язання до походження ...
git push --force
якщо ви вже натискали гілку раніше
Якщо ви не впевнені, на яку команду ви хочете зв'язатись заздалегідь, ви можете перевірити комірки та вивчити їх код (див. Джерело, компілювати, перевірити) за допомогою
git checkout <sha1-of-commit>
Після того, як ви знайдете команду, на яку хочете зв'язатись, ви можете зробити це всередині комітету (тобто, не повертаючись спочатку до головного майстра), просто створивши гілку звичайним способом:
git checkout -b <branch_name>
git checkout -b <branch-name> <sha1-of-commit>
git branch branchname <sha1-of-commit>
" (від прийнятої відповіді)?
git checkout -b
для створення нової гілки.
Швидкий спосіб зробити це на репортажі Github:
Просто запустіть:
git checkout -b branch-name <commit>
Наприклад :
git checkout -b import/january-2019 1d0fa4fa9ea961182114b63976482e634a8067b8
checkout
Команда з параметром -b
буде створити нову гілку і вона перемкне вас на нього
git fetch
та git branch
командувати у папці вашого проекту за допомогою терміналу, а потім перевірити, чи існує гілка функції, якщо це так, то так, звичайно, ви не зможете створити гілку з видалених гілок, ви також можете відновити видалення гілки у випадку, якщо гілка пішла
Велике пов'язане питання: Як, чорт, ви це з'ясуєте, використовуючи --help
параметр git? Спробуємо це:
git branch --help
Ми бачимо цей вихід:
NAME
git-branch - List, create, or delete branches
SYNOPSIS
git branch [--color[=<when>] | --no-color] [-r | -a]
[--list] [-v [--abbrev=<length> | --no-abbrev]]
[--column[=<options>] | --no-column]
[(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>]
[--points-at <object>] [<pattern>...]
git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
git branch --unset-upstream [<branchname>]
git branch (-m | -M) [<oldbranch>] <newbranch>
git branch (-d | -D) [-r] <branchname>...
git branch --edit-description [<branchname>]
Гоблебук.
Шукайте в тексті наступного тексту слово "здійснити". Ми знаходимо це:
<start-point>
The new branch head will point to this commit. It may be given as a branch name, a
commit-id, or a tag. If this option is omitted, the current HEAD will be used instead.
Ми кудись потрапляємо!
Тепер зосередимось на цій лінії гоблінгого куточка:
git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
Зверніть це на це:
git branch <branchname> [<start-point>]
І зробили.
Для цього в Eclipse:
Це створить локальну філію для вас. Тоді, коли ви натискаєте свої зміни, ваша філія буде перенесена на віддалений сервер.
Ви можете зробити це в скрині.
Я зміг це зробити так:
git branch new_branch_name `git log -n 1 --skip 3 --format=%H`
Де потрібно ввести значення пропуску. 0 - останнє, 1 - попереднє, 2 - перед цим, тощо.
HEAD~1
(де 1 вказує 1 фіксування назад)?
Це створює гілку за допомогою однієї команди:
git push origin <sha1-of-commit>:refs/heads/<branch-name>
Я вважаю за краще цей спосіб краще, ніж опубліковані вище, тому що він створює гілку негайно (не вимагає додаткової команди push після цього).
Використання Sourcetree | Найпростіший спосіб.
Ось що я зробив:
C:\Users\[path]\build>git checkout -b responsivenavigation 8a75b001096536b3216022484af3026aa9c7bb5b
Switched to a new branch 'responsivenavigation'
C:\Users\jaimemontoya\Dropbox\CuponClub\androidapp\build>git branch
master
* responsivenavigation
У цьому випадку 8a75b001096536b3216022484af3026aa9c7bb5b
була і стара фіксація, що належить до master
галузі.
Перейдіть до певної комісії сховища git
Іноді, працюючи над сховищем git, ви хочете повернутися до певного комітету (редакції), щоб зробити знімок вашого проекту в певний час. Для цього все, що вам потрібно, хеш SHA-1 комітки, який ви можете легко знайти, перевіряючи журнал за допомогою команди:
git log --abbrev-commit --pretty=oneline
що дасть вам компактний перелік усіх комітетів та коротку версію хешу SHA-1.
Тепер, коли ви знаєте хеш комітету, який ви хочете перейти, ви можете скористатися однією з наступних 2 команд:
git checkout HASH
або
git reset --hard HASH
перевіряти
git checkout <commit> <paths>
Показує git замінити поточний стан шляхів своїм станом у заданому коміті. Шляхами можуть бути файли чи каталоги.
Якщо не вказано жодної гілки, git передбачає присвоєння HEAD.
git checkout <path> // restores path from your last commit. It is a 'filesystem-undo'.
Якщо шлях не задано, git переміщується HEAD
до даної фіксації (тим самим змінюючи комітет, за яким сидите і працюєте).
git checkout branch //means switching branches.
скинути
git reset <commit> //re-sets the current pointer to the given commit.
Якщо ви на гілці (зазвичай ви повинні бути), HEAD
і ця гілка переміщується на фіксацію.
Якщо ви перебуваєте у відірваному HEAD
стані, скидання git переміщується лише HEAD
.Щоб скинути гілку, спочатку перевірте її.
Якщо ви хочете дізнатись більше про різницю між скиданням git та git checkout, я б рекомендував прочитати офіційний блог git .
git log --abbrev-commit --pretty=oneline
можна скоротити доgit log --oneline
Для користувачів Git GUI ви можете візуалізувати всю історію (якщо потрібно), а потім клацніть правою кнопкою миші на об'єкт, з якого ви хочете відділитись, та введіть ім'я гілки.
Щоб прийняти відповідь у Visual Studio 2015 та 2017:
Клацніть зміни (червона стрілка вгорі)
Клацніть по «Дії» (червона стрілка вгорі) та натисніть «Переглянути історію» у меню «Випадання»
І відкриється нова Tab:
І вам слід клацнути правою кнопкою миші попереднє зобов’язання, на яке потрібно повернути ваш код:
Виберіть замовлення нового відділення та voilá!
Нижче, хоч і не є частиною питання про ОП, але я дуже багато роблю, і цей крок є прийомом, принаймні, для мене: якщо ви хочете повернутися до попереднього комітету, не оформивши нову гілку, НЕ вибирайте повернення (! ?); вам слід вибрати переосмислений - змішаний або - твердий:
якщо ви використовуєте вихідне дерево, яке досить прямо вперед.
Якщо ви шукаєте рішення на основі командного рядка, ви можете проігнорувати мою відповідь. Я пропоную вам скористатися GitKraken . Це неординарний клієнт із користувальницького інтерфейсу. Він відображає дерево Git на домашній сторінці. Ви можете просто подивитися на них і знати, що відбувається з проектом. Просто виберіть конкретну фіксацію, клацніть її правою кнопкою миші та виберіть опцію "Створити філію тут". Це дасть вам текстове поле для введення назви гілки. Введіть назву відділення, виберіть "ОК", і ви встановлені. Це дійсно дуже просто у використанні.