Dear GIT enthusiasts!

This ends up with a "git checkout" command aborting. A bit frustrating at the early stage of GIT learning curve.

My first goal is to clone repositories locally in order to explore the various linux kernel versions, with the rich GIT metadata.

Thus, I clone:

$ git clone --branch linux-4.16.y https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-stable
$  git -C linux-stable/ branch
* linux-4.16.y

So far so good. Then, I want to extract an earlier kernel version into a tmp dir:

$  mkdir tmp
$  git -C linux-stable/ --work-tree $PWD/tmp/ checkout linux-4.15.y
$  git -C linux-stable/ branch
* linux-4.15.y
  linux-4.16.y

I got my extracted 4.15 version but the source repository (index? ...?) has somehow changed. Let me try something silly:

$  git -C linux-stable/ --work-tree $PWD/tmp/ checkout linux-4.14.y
$  git -C linux-stable/ branch
* linux-4.14.y
  linux-4.15.y
  linux-4.16.y

I indeed switched my extracted version from 4.15 to 4.14, but I am puzzled that the local source repository (linux-stable) is modified. Then I try to bring it back closer to its original state, just to keep things tidy:

$  git -C linux-stable/ checkout linux-4.16.y

And this command aborts, both with Git versions 2.01 and 2.17. Here is the truncated command output:

error: Your local changes to the following files would be overwritten by checkout:
        .gitignore
        .mailmap
        Documentation/00-INDEX
        Documentation/ABI/obsolete/sysfs-gpio
        Documentation/ABI/stable/sysfs-bus-vmbus
        Documentation/ABI/stable/sysfs-devices
        [... ...]
        Documentation/devicetree/bindings/arm/mediatek/mediatek,vencsys.txt
        Documentation/devicetree/bindings/arm/omap/crossbar.txt
        Documentation/devicetree/bindings/arm/omap/ctrl.txt
        Documentation/devicetree/bindings/arm/realtek.txt
        Documentation/devicetree/bindings/arm/rock
error: The following untracked working tree files would be overwritten by checkout:
        Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Diagram.html
        Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.html
        Documentation/RCU/Design/Memory-Ordering/TreeRCU-callback-invocation.svg
        Documentation/RCU/Design/Memory-Ordering/TreeRCU-callback-registry.svg
        Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg
        [... ...]
        arch/riscv/include/asm/smp.h
        arch/riscv/include/asm/spinlock.h
        arch/riscv/include/asm/spinlock_types.h
        arch/riscv/include/asm/string.h
        arch/riscv/include/
Aborting

Questions:
=========

Is there a GIT tutorial that begins with my stated goal of an extract-only usage of cloned GIT repositories? (Maybe the root cause is my reluctance to learn the more involved GIT usages.)

Does the above reproducible abort deserve attention?

Any suggestion for my stated goal?

Thanks in advance,

- Thierry Moreau

Reply via email to