Скрывает ли панель в gitkraken только для локальных задержек? [Дубликат]

На момент написания статьи большинство браузеров возвращали свойства в том же порядке, в каком они были вставлены, но это явно не гарантированное поведение, поэтому на него не следовало полагаться.

Спецификация ECMAScript говорила:

Механика и порядок перечисления свойств ... не указаны.

Однако в ES2015 и позже нецелые ключи будут возвращены в порядке размещения.

150
задан Andrew Grimm 11 October 2009 в 11:36
поделиться

9 ответов

Невозможно получить его с помощью fetch или так, зеркальный refspec - fetch = +refs/*:refs/*, и хотя stash is refs/stash, он не отправляется. Явный refs/stash:refs/stash не имеет никакого эффекта!

Это все равно будет сбивать с толку, так как это не принесло бы всех задержек, только последний; список закладок - это reflog ref refs/stashes.

50
ответ дан u0b34a0f6ae 17 August 2018 в 09:06
поделиться
  • 1
    Вы можете получить последний тайник с пульта git, но не в свой кошелек, только в другой номер. Что-то вроде git fetch some-remote +refs/stash:refs/remotes/some-remote/stash git stash apply some-remote/stash. Но вы не можете получить старшие заготовки, потому что они хранятся в reflog, который не является чудом. См. stackoverflow.com/questions/2248680/… – sj26 5 February 2016 в 04:56

AFAIK вся идея прикрытия состоит в том, чтобы скрыть что-то не столь важное при коверке local . Никто не должен знать о вашем любимом дерьме ;-) Единственное «но»: Но если я буду развиваться на нескольких рабочих станциях? Тогда scp лучше.

3
ответ дан argent_smith 17 August 2018 в 09:06
поделиться
  • 1
    Что-то такое смешное должно быть комментарием. ;-) – Andrew Grimm 22 September 2011 в 09:10
  • 2
    Всего git-ssh-новичок здесь, но можете ли вы использовать scp с github? – Koen 16 March 2012 в 12:23
  • 3
    Нет, интерфейс git-ssh github запрограммирован таким образом, чтобы у вас никогда не было оболочки / консоли ssh. Он может запускать только git-процесс на стороне сервера. – argent_smith 16 March 2012 в 15:50
  • 4
    Так что scp на самом деле не вариант для этого сценария, если ваша главная ветка находится на github? Какие-либо другие предложения по передаче кошелька в этом случае? – Koen 16 March 2012 в 15:53
  • 5
    Я попытался подчеркнуть, что передача штемпелей вообще невозможна, AFAIK. – argent_smith 17 March 2012 в 21:55

Кажется, что это очень аккуратный трюк. вы можете использовать git diff > file.diff (и зафиксировать файл), а затем восстановить изменения с помощью git apply file.diff (из любого места) для достижения того же результата.

Это объяснялось здесь здесь как хорошо.

5
ответ дан Community 17 August 2018 в 09:06
поделиться
  • 1
    если у вас есть необработанные файлы: 1. git add. 2. git diff HEAD & gt; file.diff – trickpatty 13 September 2017 в 22:08

Следующее не работает со шкафом, но с незафиксированными изменениями в рабочем каталоге. Он создает ветвь, автоматически вводит все текущие изменения и нажимает на пульт:

commit_and_push_ ( ) {
    # This will:
    #  1. checkout a new branch stash-XXX
    #  2. commit the current changes in that branch
    #  3. push the branch to the remote
    local locbr=${1:-autostash-XXX}
    git checkout -b $locbr
    git add .
    git commit -a -m "Automatically created commit"
    git push origin $locbr
    echo "Autocommitted changes in branch $locbr ..."
}

Используйте как:

commit_and_push_ my-temp-branch
commit_and_push_
0
ответ дан dangonfast 17 August 2018 в 09:06
поделиться

Я бы пошел со вторым подходом, хотя не знаю, почему вы не можете передать его в master / featured branch. Можно также сделать вишневый сбор.

7
ответ дан Eimantas 17 August 2018 в 09:06
поделиться
  • 1
    Нет никакой технической причины не совершать мастерство / отличное, просто я хочу сказать «Это не настоящая фиксация, это просто сохранение моей работы, поэтому я могу получить ее на другой машине». – Andrew Grimm 12 October 2009 в 00:01

Просто используйте Dropbox, как этот парень. Таким образом, вам не нужно беспокоиться о том, чтобы нажимать заставки, поскольку весь ваш код будет скопирован.

http://blog.sapegin.me/all/github-vs-dropbox

-1
ответ дан NYC Tech Engineer 17 August 2018 в 09:06
поделиться
  • 1
    Прежде, чем кто-либо столкнется с коленной реакцией, я не говорю о том, чтобы использовать Dropbox вместо Github, но для хранения кода, который не готов к фиксации в Dropbox, который будет по-прежнему находиться под контролем версий локально. – NYC Tech Engineer 24 April 2017 в 08:20
  • 2
    его потребуется слишком много времени, чтобы скопировать весь проект в удаленное облако. – Stav Alfi 19 November 2017 в 21:40

Примечание. Я только что переписал этот ответ с 24-часовым появлением git-fu под моим поясом :) В моей истории оболочки весь shebang теперь три однострочных. Тем не менее, я не сдержал их для вашего удобства.

Таким образом, я надеюсь, вы сможете увидеть, как я это сделал, вместо того, чтобы просто слепо копировать / вставлять файлы.


Вот шаг за шагом.

Предположим, что источник находится в ~ / OLDREPO, содержащем stashes. Создайте клон TEST, который не содержит штампов:

cd ~/OLDREPO
git clone . /tmp/TEST

Нажмите все блокировки в виде ветвей temp:

git send-pack /tmp/TEST $(for sha in $(git rev-list -g stash); \
    do echo $sha:refs/heads/stash_$sha; done)

Петля на принимающей стороне, чтобы преобразовать обратно в штампы:

cd /tmp/TEST/
for a in $(git rev-list --no-walk --glob='refs/heads/stash_*'); 
do 
    git checkout $a && 
    git reset HEAD^ && 
    git stash save "$(git log --format='%s' -1 HEAD@{1})"
done

Очистите свои временные ветви, если вы

git branch -D $(git branch|cut -c3-|grep ^stash_)

Сделайте список записок git, и вы будете что-то вроде этого:

stash@{0}: On (no branch): On testing: openmp import
stash@{1}: On (no branch): On testing: zfsrc
stash@{2}: On (no branch): WIP on sehe: 7006283 fixed wrong path to binary in debianized init script (reported as part of issue
stash@{3}: On (no branch): WIP on debian-collab: c5c8037 zfs_pool_alert should be installed by default
stash@{4}: On (no branch): WIP on xattrs: 3972694 removed braindead leftover -O0 flag
stash@{5}: On (no branch): WIP on testing: 3972694 removed braindead leftover -O0 flag
stash@{6}: On (no branch): WIP on testing: db9f77e fuse_unmount_all could be starved for the mtx lock
stash@{7}: On (no branch): WIP on xattrs: db9f77e fuse_unmount_all could be starved for the mtx lock
stash@{8}: On (no branch): WIP on testing: 28716d4 fixed implicit declaration of stat64
stash@{9}: On (no branch): WIP on emmanuel: bee6660 avoid unrelated changes

В исходном репозитории , то же, что и

stash@{0}: WIP on emmanuel: bee6660 avoid unrelated changes
stash@{1}: WIP on testing: 28716d4 fixed implicit declaration of stat64
stash@{2}: WIP on xattrs: db9f77e fuse_unmount_all could be starved for the mtx lock
stash@{3}: WIP on testing: db9f77e fuse_unmount_all could be starved for the mtx lock
stash@{4}: WIP on testing: 3972694 removed braindead leftover -O0 flag
stash@{5}: WIP on xattrs: 3972694 removed braindead leftover -O0 flag
stash@{6}: WIP on debian-collab: c5c8037 zfs_pool_alert should be installed by default
stash@{7}: WIP on sehe: 7006283 fixed wrong path to binary in debianized init script (reported as part of issue #57)
stash@{8}: On testing: zfsrc
stash@{9}: On testing: openmp import
57
ответ дан sehe 17 August 2018 в 09:06
поделиться
  • 1
    Я многому учусь за малое время, и я чувствую, что должен, вероятно, просто использовать многие команды в моем раннем подходе, что я постараюсь сделать позже. – sehe 13 March 2011 в 03:00
  • 2
    Это хорошо сработало для меня, за исключением того, что мне нужно было git add . перед шагом git stash save ..., поскольку git stash отказывается записывать новые файлы, если они не были поставлены. Кроме того, пробивка результатов git rev-list ... через tac отменяет порядок задержек, чтобы они выходили в том же порядке. – Alan Krueger 5 December 2012 в 00:35
  • 3
    @AlanKrueger. Я не пробовал этот ответ, но git stash save -u может помочь. – hiroshi 28 May 2014 в 06:58
  • 4
    @PietroSaccardi Алан упомянул об этом несколько лет назад :) – sehe 2 March 2016 в 11:30
  • 5
    Большое вам спасибо за то, что нашли время, чтобы объяснить, что вы сделали, а не просто «публиковать решение». – Marjan Venema 14 July 2016 в 11:02

Немного поздно, но этот ответ может кому-то помочь. Я хотел бы знать это, потому что я хотел иметь возможность продвигать функцию / ошибку / независимо от работы и работать с той же точки на другом компьютере.

Что работает для меня - это совершить мой прогресс код (в ветке, в которой я работаю один). Когда я доберусь до другого компьютера, сделайте притяжение, затем отмените фиксацию с помощью:

git reset --soft HEAD^

Продолжайте работать так же, как и вы, со всеми вашими изменениями в работе, незафиксированными и неустановленными.

Надеюсь, что это поможет.

15
ответ дан Sir Robert 17 August 2018 в 09:06
поделиться
  • 1
    Когда я пытаюсь это сделать, Origin по-прежнему поддерживает Commit, который не был принят. Закройте, но не сигары для меня. – rezwits 16 July 2016 в 18:48
  • 2
    @rezwits Да, пульт хранит его, но достаточно просто удалить временную ветку из источника. – Sir Robert 1 September 2017 в 04:39
  • 3
    на самом деле это то, что я делаю! – rezwits 2 September 2017 в 06:55

Я немного опаздываю на вечеринку, но я считаю, что нашел что-то, что работает для меня в этом отношении, и это может быть для вас тоже, если ваши обстоятельства одинаковы или похожи.

Я работая над функцией в своей собственной ветке. Филиал не сливается с хозяином и не подталкивает его до тех пор, пока не закончится, или я не совершил коммиты, которые мне кажутся удобными для публики. Итак, что я делаю, когда хочу перенести неустановленные изменения на другой компьютер:

  • Сделайте фиксацию с сообщением фиксации типа «[non-commit] FOR TRANSFER ONLY», в котором отображается содержимое, которое вы хотите передать.
  • Войдите в другой компьютер.
  • Затем выполните: git pull ssh+git://<username>@<domain>/path/to/project/ rb:lb URL-адрес может отличаться для вас, если вы обращаетесь к своему репозиторию по-другому. Это выведет изменения с этого URL-адреса из удаленной ветви «rb» в локальную ветвь «lb». Обратите внимание, что у меня есть ssh-сервер, работающий на моем собственном компьютере, и я могу получить доступ к репозиторию таким образом.
  • git reset HEAD^ (подразумевает --mixed). Сбрасывает HEAD, чтобы указать состояние до «[не-commit]» commit.

Из git-reset (1): «--mixed: Сбрасывает индекс, но не рабочее дерево (т. е. измененные файлы сохраняются, но не помечены для фиксации) [...] "

Таким образом, вы будете иметь свои изменения в файлах в конце, но никакие коммиты не сделаны для освоения и не нуждаются в тире.

Тем не менее это потребует от вас git reset --hard HEAD^ в репозитории, в котором вы сделали «[non-commit]», так как это commit - мусор.

28
ответ дан Victor Zamanian 17 August 2018 в 09:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: