Re: for newbs = little exercise / tutorial / warmup for windows and other non-sophisticated new Git users :-)
- From
Boyd Stephen Smith Jr. <bss@iguanasuicide.net>
- Date
- Dec 30, 2008, 22:17 UTC
- Message-ID
- <200812301617.15496.bss@iguanasuicide.net>
- In-Reply-To
- <200812301549.26538.bss@iguanasuicide.net>
On Tuesday 2008 December 30 15:49:22 Boyd Stephen Smith Jr. wrote:
Show 27 quoted lines
> On Tuesday 2008 December 30 15:27:33 you wrote: > > conorr@KINKLADZE /w/GITPLATFORM/swproj > > $ git status > > # On branch master > > nothing to commit (working directory clean) > > > > conorr@KINKLADZE /w/GITPLATFORM/swproj > > $ git checkout versionA . > > > > conorr@KINKLADZE /w/GITPLATFORM/swproj > > $ ls > > ABC.txt AC.txt > > > > conorr@KINKLADZE /w/GITPLATFORM/swproj > > $ rm *.* > > > > conorr@KINKLADZE /w/GITPLATFORM/swproj > > $ git checkout versionB . > > > > conorr@KINKLADZE /w/GITPLATFORM/swproj > > $ ls > > ABC.txt AC.txt BC.txt > > Not a bug. git checkout <commit> <paths> does not delete files by design. > Try using "git checkout versionB" instead (no paths specified), and it will > properly remove AC.txt from your working tree as well as warning you > that "You're Doing It Wrong" (tm).
This may be what you want: (commands) mkdir test && cd test && git init &&
echo 'ABC' > ABC.txt && echo 'AC' > AC.txt && echo 'BC' > BC.txt && echo 'C' > C.txt &&
find -name '*C*' -print0 | xargs -r0 -- git add -- && git commit -m '"C" files.' && git branch versionC master &&
git checkout -b versionA master && find -type f -not -wholename '*.git*' -not -name '*A*' -print0 | \ xargs -r0 -- git rm -- && git commit -m 'Removed non-"A" files.' &&
git checkout -b versionB && find -type f -not -wholename '*.git*' -not -name '*B*' -print0 | \ xargs -r0 -- git rm -- && git commit -m 'Removed non-"B" files.' &&
git checkout -b versionD master && find -type f -not -wholename '*.git*' -not -name '*D*' -print0 | \ xargs -r0 -- git rm -- && git commit -m 'Removed non-"D" files.' &&
git checkout master && git branch -v --abbrev=4 && ls -l && git checkout versionA && ls -l && git checkout versionB && ls -l && git checkout versionC && ls -l && git checkout versionD && ls -l
(output) /home/bss/test Initialized empty Git repository in /home/bss/test/.git/ Created initial commit 8dbf3a1: All files. 4 files changed, 4 insertions(+), 0 deletions(-) create mode 100644 ABC.txt create mode 100644 AC.txt create mode 100644 BC.txt create mode 100644 C.txt Switched to a new branch "versionA" rm 'BC.txt' rm 'C.txt' Created commit a06e10c: Removed non-"A" files. 2 files changed, 0 insertions(+), 2 deletions(-) delete mode 100644 BC.txt delete mode 100644 C.txt Switched to a new branch "versionB" rm 'AC.txt' Created commit 2029ca2: Removed non-"B" files. 1 files changed, 0 insertions(+), 1 deletions(-) delete mode 100644 AC.txt Switched to a new branch "versionD" rm 'ABC.txt' rm 'AC.txt' rm 'BC.txt' rm 'C.txt' Created commit 1793ba0: Removed non-"D" files. 4 files changed, 0 insertions(+), 4 deletions(-) delete mode 100644 ABC.txt delete mode 100644 AC.txt delete mode 100644 BC.txt delete mode 100644 C.txt Switched to branch "master" * master 8dbf "C" files. versionA a06e Removed non-"A" files. versionB 2029 Removed non-"B" files. versionC 8dbf "C" files. versionD 1793 Removed non-"D" files. total 16 -rw-r--r-- 1 bss users 4 2008-12-30 16:10 ABC.txt -rw-r--r-- 1 bss users 3 2008-12-30 16:10 AC.txt -rw-r--r-- 1 bss users 3 2008-12-30 16:10 BC.txt -rw-r--r-- 1 bss users 2 2008-12-30 16:10 C.txt Switched to branch "versionA" total 8 -rw-r--r-- 1 bss users 4 2008-12-30 16:10 ABC.txt -rw-r--r-- 1 bss users 3 2008-12-30 16:10 AC.txt Switched to branch "versionB" total 4 -rw-r--r-- 1 bss users 4 2008-12-30 16:10 ABC.txt Switched to branch "versionC" total 16 -rw-r--r-- 1 bss users 4 2008-12-30 16:10 ABC.txt -rw-r--r-- 1 bss users 3 2008-12-30 16:10 AC.txt -rw-r--r-- 1 bss users 3 2008-12-30 16:10 BC.txt -rw-r--r-- 1 bss users 2 2008-12-30 16:10 C.txt Switched to branch "versionD" total 0
-- Boyd Stephen Smith Jr. ,= ,-_-. =. bss@iguanasuicide.net ((_/)o o(\_)) ICQ: 514984 YM/AIM: DaTwinkDaddy `-'(. .)`-' http://iguanasuicide.net/ \_/