Я клонировал из репозитория GIT (последний). На данный момент последний коммит в репозитории был: a10cb09
Я клонировал с помощью следующей команды (где я установил переменную r
= 1-й переданный параметр (для имени репо, также известного как ansible
) в моем крошечном скрипте-оболочке:
git clone [email protected]:mycompany/${r}.git
и сделал несколько изменений и выполнил следующие простые шаги: (т. е. внесение изменений, добавление файла/папки, фиксация и отправка), и я получил новый хэш фиксации a08c263
(короткий).
[[email protected] ~/aks/always-latest-ws-repogroup/ansible] $ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
roles/mycompany.mycompany-ansible/
mycompany-ansible.yml
nothing added to commit but untracked files present (use "git add" to track)
[[email protected] ~/aks/always-latest-ws-repogroup/ansible] $
[[email protected] ~/aks/always-latest-ws-repogroup/ansible] $ git add mycompany-ansible.yml roles/mycompany.mycompany-ansible
[[email protected] ~/aks/always-latest-ws-repogroup/ansible] $ git commit -m "mycompany.mycompany-ansible playbook and role" mycompany-ansible.yml roles/mycompany.mycompany-ansible
[master a08c263] mycompany.mycompany-ansible playbook and role
14 files changed, 1771 insertions(+)
create mode 100644 roles/mycompany.mycompany-ansible/README.md
create mode 100644 roles/mycompany.mycompany-ansible/defaults/main.yml
create mode 100644 roles/mycompany.mycompany-ansible/handlers/main.yml
create mode 100644 roles/mycompany.mycompany-ansible/meta/.galaxy_install_info
create mode 100644 roles/mycompany.mycompany-ansible/meta/main.yml
create mode 100644 roles/mycompany.mycompany-ansible/tasks/apt_install.yml
create mode 100644 roles/mycompany.mycompany-ansible/tasks/main.yml
create mode 100644 roles/mycompany.mycompany-ansible/tasks/yum_install.yml
create mode 100644 roles/mycompany.mycompany-ansible/templates/10-statsd.conf.j2
create mode 100644 roles/mycompany.mycompany-ansible/templates/10-mycompany.conf.j2
create mode 100644 roles/mycompany.mycompany-ansible/templates/proxy_auth_credentials.set.j2
create mode 100644 roles/mycompany.mycompany-ansible/templates/telegraf.conf.wfcopy.j2
create mode 100644 roles/mycompany.mycompany-ansible/templates/mycompany-proxy.conf.j2
create mode 100644 mycompany-ansible.yml
[[email protected] ~/aks/always-latest-ws-repogroup/ansible] $
[[email protected] ~/aks/always-latest-ws-repogroup/ansible] $ git push
Counting objects: 21, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (19/19), done.
Writing objects: 100% (21/21), 18.65 KiB | 0 bytes/s, done.
Total 21 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To github.com:repogroup/ansible.git
a10cb09..a08c263 master -> master
[[email protected] ~/aks/always-latest-ws-repogroup/ansible] $
[[email protected] ~/aks/always-latest-ws-repogroup/ansible] $ git log -1 --pretty=format:%h
a10cb09
[[email protected] ~/aks/always-latest-ws-repogroup/ansible] $ git rev-parse a08c263
a08c263
fatal: ambiguous argument 'a08c263': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Когда я иду в репозиторий Github, чтобы увидеть свои последние изменения, его там нет. git log
также не показывает мою фиксацию (вместо этого она показывает мне хэш фиксации, который был вверху до моей фиксации). Что я пропустил?
Кажется, я даже не вижу длинного хэша, используя git rev-parse a08c263
(маленький хеш).
$ git remote -v
origin [email protected]:mycompany/ansible.git (fetch)
origin [email protected]:mycompany/ansible.git (push)
а также
$ git reflog
a10cb09 HEAD@{0}: clone: from [email protected]:mycompany/ansible.git
PS: если я выполню те же действия для других репозиториев, находящихся в группе репозиториев mycompany
, и все эти репозитории успешно получат мои изменения фиксации/передачи в github, если я выполню аналогичные действия.
ОБНОВЛЕНИЕ: одна из страниц моего браузера все еще была открыта. После того, как я сделал commit+push, я смог увидеть свое зафиксированное изменение (новый хэш a08c263
как последний коммит на верхнем уровне репо). Когда я щелкнул по нему, он открыл эту прикрепленную страницу браузера, где я могу увидеть ПОЛНЫЙ хэш, а также папку/файлы. Если я захожу по открытому URL-адресу браузера для своего коммита, он все еще там (поэтому Git что-то сохранил), но если щелкнуть назад на корневом уровне репозитория, то есть ansible
, последний коммит — это не мой коммит+пуш (новый хэш), а список a10cb09
как последний (который, согласно снимку, является родительским хешем для моего недавно сгенерированного хэша). Глянь сюда:
Теперь возникают основные вопросы:
Если бы у меня не была открыта эта страница браузера, то как бы я получил длинный хеш и свою папку/файлы (содержимое)?
Если бы я клонировал из github.com/mycompany/ansible (репозиторий), который был ЗЕРКАЛОм репозитория ansible, фактически размещенного в Phabricator (где фактический URL-адрес клона исходного репозитория будет отличаться от того, что я использовал в моем крошечном скрипте выше), тогда какую команду / параметр я должен был использовать, чтобы отправить мое новое изменение в исходный репозиторий Phabricator
ansible
?Если фиксация + отправка были завершены с моей стороны, почему
git log
и другие подобные командыgit
не отображают никакой информации о моем новом хэше?
git remote -v
- person Christia   schedule 22.12.2016git reflog
, пожалуйста - person Christia   schedule 22.12.2016ansible
также является родственным репозиторием для этих других репозиториев, но те же шаги превратились в описанную выше проблему. Для тестирования я попытался повторить еще одно тестовое изменение / добавить / зафиксировать / отправить в 2 репозитория, один получил мое изменение, аansible
снова нет. Если источник был неправильным, то он не должен был показывать мне последний хэш коммита (в выводеgit push
какa10cb09..a08c263
верно)? Также добавлен выводgit reflog
. Я согласен с Тимом Б. - person AKS   schedule 22.12.2016mycompany
на github.com имеет множество репозиториев (одним из них является ansible). Но все эти другие репозитории размещены на самом github.com, но этот репозиторийansible
, который я клонировал, НЕ ХОСТИРУЕТСЯ на github.com. Репозиторийansible
в моем случае размещен в Phabricator и ЗЕРКАЛИРОВАН на Github.com (откуда я клонировал). Теперь, читая дополнительнуюgit
справку, кажется, что если бы я сделалgit push --mirror
, то это сработало бы (??), теперь, как я могу вернуть те же папки/файлы, используя этот хэшa08c263
, и попробоватьgit push --mirror / -all
снова с/ о любые доработки. - person AKS   schedule 22.12.2016a08c263
фиксации обратно в свою рабочую область.git log
илиgit rev-parse
ничего не показывает/выдает ошибку, так как этот хэш не существует согласно Git. Очень возможно, что по какой-то сумасшедшей причине Phabricator стер мою фиксацию, как только она была зафиксирована/нажата), откуда я клонировал (зеркальный URL-адрес github.com дляansible
). - person AKS   schedule 22.12.2016a08c263
, я прав. К счастью, страница, которую я просматривал, щелкнув последнюю фиксацию нового хэша, все еще была открыта в моем браузере, и я рад, что также могу видеть полный хэш + файлы, зафиксированные в фиксации/нажатии. Я загружу изображение в качестве доказательства. Посещение этой ссылки все еще работает, показывает мне файлы/папки, которые я зафиксировал, но если я нажму на корневой репозиторий в Github, он не покажет мою фиксацию как последнюю, даже если снимок показывает родительский хэш и новый хеш. Родительский хэш является последним на уровне репо. - person AKS   schedule 22.12.2016