Подтвердить что ты не робот

Может ли git выполнить разную рабочую копию с приложением

Как я могу разделить текущую рабочую копию с типом?

Мой прецедент: моя рабочая копия уже содержит подмножество изменений в моем [email protected]{0}, но я не хочу применять все изменения в [email protected]{0}. Я хочу сделать diff, чтобы определить, какие желаемые изменения в [email protected]{0} все еще отсутствуют в моей рабочей копии.

4b9b3361

Ответ 1

Если это был ваш последний тайник, git diff [email protected]{0} сделает это. Если нет, вы можете использовать git stash list, чтобы получить индекс, к которому вы хотите сравнить.

Ответ 2

Я думаю, что OP хотел получить ответ, чтобы узнать, в чем разница, в котором хранится файл, кроме файлов, присутствующих в рабочей копии.

Следующая команда показывает, что содержит файл.

git stash show -p [email protected]{0}

Ответ 3

Если ваше рабочее дерево грязно, вы можете сравнить его с кошельком, сначала совершив грязное рабочее дерево, а затем сравните его с приложением. Впоследствии вы можете отменить фиксацию своего рабочего дерева (чтобы ваша история была чистой).

  • Зафиксируйте свое грязное рабочее дерево:

    git add .
    git commit -m "Dirty commit"
    
  • Сбросьте тайник с этим фиксацией:

    git diff [email protected]{0}
    
  • Затем, после этого, вы можете вернуть фиксацию и вернуть ее в рабочий каталог:

    git reset --soft HEAD~1
    git reset .
    

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

Ответ 4

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

git add -A                    # Stage all changes in your working copy.
git stash save --keep-index   # Stash your working copy and leave it intact
git diff [email protected]{0} [email protected]{1}

Чтобы избавиться от кошелька, который вы только что сделали ради разнообразия, используйте git stash pop или git stash drop [email protected]{0}.

Если вы хотите использовать фиксацию вместо этого, см. @Magne answer.

Ответ 5

Вы можете использовать git stash show -l. Он показывает, что вы хотите без дополнительной тайника или коммита.

Ответ 6

Вы можете использовать команду Unix diff в сочетании с двумя командами Git так:

diff <(git diff) <(git stash show -p [email protected]{0})

Конечно, вы можете изменить stash @{0} на любой тайник, который вы хотите. Эта команда фактически сравнивает фактический рабочий каталог (git diff) с одним из ваших штампов.

UPDATE

Вы также можете установить colordiff и увидеть гораздо лучший результат:

Установка:

  • Ubuntu/Debian: sudo apt-get install colordiff
  • OS X: brew установить colordiff

а затем просто измените команду на:

colordiff <(git diff) <(git stash show -p [email protected]{0})

Ответ 7

Чтобы сделать различие файла или папки, присутствующей в рабочем каталоге, с этим в тайнике, вы можете сделать:

git diff [email protected]{0} --/path/to/fileorfolder

Здесь [email protected]{0} просто представляет коммит HASH, поэтому он работает точно так же, как работает git diff. [email protected]{0} просто обработчик.

Ответ 8

Не знаю, что хотел OP, но я использую это, чтобы узнать, что представляет собой фактический набор данных для набора:

git difftool [email protected]{0}^!

или

git diff [email protected]{0}^!

или

git diff [email protected]{0}^! > patchfile

Ответ 9

Да, вы можете использовать git stash show -p, проверьте этот Git diff на кошельке для получения дополнительной информации.