Поскольку Ваш фиксация не находится ни на каком ответвлении , Вы не видите его в рабочем каталоге если Вы контроль что определенная фиксация, с помощью ее SHA1. Можно найти фиксацию путем рассмотрения reflog
, который отслеживает изменения в том, что Вы проверили из repo. Если Ваш тег был XXX
, Вы будете видеть что-то как:
$ git reflog
7a30fd7... HEAD@{0}: checkout: moving from master to XXX
ddf751d... HEAD@{1}: checkout: moving from 96c3b0300ccf16b64efc260c21c85ba9030f2e3a to master
96c3b03... HEAD@{2}: commit: example commit on tag XXX, not on any branch
7a30fd7... HEAD@{3}: checkout: moving from master to XXX
, Который говорит Вам SHA1, что Вы имели бы к checkout
для наблюдения фиксации в рабочем каталоге.
$ git checkout 96c3b03
Note: moving to "96c3b03" which isn't a local branch
If you want to create a new branch from this checkout, you may do so
(now or later) by using -b with the checkout command again. Example:
git checkout -b <new_branch_name>
HEAD is now at 96c3b03... example commit on tag XXX, not on any branch
$ git checkout -b newbranch
$ git branch #lists all branches
feature1
master
* newbranch
это все казалось немного странным мне сначала, пока я не понял что мерзавец checkout
места все файлы проекта с конкретной фиксации в мою файловую систему (рабочий каталог). В действительности рабочий каталог действует как браузер на локальном репозитории Мерзавца. Таким образом, Ваши изменения не были перезаписаны в репозитории , их просто не показывают в Вашем рабочем каталоге, когда Вы проверили ведущее устройство.
Первое , что я делаю при создании новой базы данных, - это создаю и заполняю некоторые базовые таблицы.
Один из них - список всех целых чисел между -N и N, другой - это список дат от 5 лет назад до 10 лет в будущем (запланированное задание может продолжать создавать их по мере необходимости в будущем), а последнее - это список всех часов в течение дня. Например, inetgers:
create table numbers (n integer primary key);
insert into numbers values (0);
insert into numbers select n+1 from numbers; commit;
insert into numbers select n+2 from numbers; commit;
insert into numbers select n+4 from numbers; commit;
insert into numbers select n+8 from numbers; commit;
insert into numbers select n+16 from numbers; commit;
insert into numbers select n+32 from numbers; commit;
insert into numbers select n+64 from numbers; commit;
insert into numbers select n+128 from numbers; commit;
insert into numbers select n+256 from numbers; commit;
insert into numbers select n+512 from numbers; commit;
insert into numbers select n+1024 from numbers; commit;
insert into numbers select n+2048 from numbers; commit;
insert into numbers select n+4096 from numbers; commit;
insert into numbers select n+8192 from numbers; commit;
insert into numbers select -n from numbers where n > 0; commit;
Это для DB2 / z, у которого есть автоматический запуск транзакции, поэтому кажется, что у него есть голые коммиты.
Да, он занимает (минимальное) место, но выполняет запросы намного проще написать, просто выбрав значения из этих таблиц. Кроме того, он очень портативен для почти любых СУБД на основе SQL.
Ваш конкретный запрос будет таким простым:
select n from numbers where n >=3 and n <= 10;
Цифры в часах и диапазонах дат весьма полезны для приложений отчетности, над которыми мы работаем. Это позволяет нам создавать нулевые записи для тех часов дня (или дат), которые не имеют никаких реальных данных, так что вместо (где нет данных о секундах месяца):
Date | Quantity
-----------+---------
2009-01-01 | 7
2009-01-03 | 27
2009-01-04 | 6
мы можем вместо этого получить :
Date | Quantity
-----------+---------
2009-01-01 | 7
2009-01-02 | 0
2009-01-03 | 27
2009-01-04 | 6
Этот трюк с таблицей Oracle DUAL также работает:
SQL> select n from
2 ( select rownum n from dual connect by level <= 10)
3 where n >= 3;
N
----------
3
4
5
6
7
8
9
10
SQL> var N_BEGIN number
SQL> var N_END number
SQL> exec :N_BEGIN := 3; :N_END := 10
PL/SQL procedure successfully completed.
SQL> select :N_BEGIN + level - 1 n
2 from dual
3 connect by level <= :N_END - :N_BEGIN + 1
4 /
N
----------
3
4
5
6
7
8
9
10
8 rows selected.
Здесь используется тот же трюк, что и у Тони. Обратите внимание, что когда вы используете SQL * Plus 9, вы должны сделать этот запрос встроенным представлением, как показал вам Тони. В SQL * Plus 10 или выше вышеуказанного достаточно.
С уважением, Роб.
Или вы можете использовать Between
Select Column1 from dummy_table where Column2 Between 3 and 10
Для этого вы можете использовать предложение MODEL.
SELECT c1 from dual
MODEL DIMENSION BY (1 as rn) MEASURES (1 as c1)
RULES ITERATE (7)
(c1[ITERATION_NUMBER]=ITERATION_NUMBER+7)