With the following steps content from one file ends up in another file
by using 'git rebase' (and clobbers the original content).
It is rather straight forward and I discovered this behaviour when
trying to replay http://gitforteams.com/resources/rebasing.html .
The special thing is, that both files have the same content at start.
$ mkdir rebase
$ cd rebase
git --version
git version 2.9.0
$ git init
Initialized empty Git repository in /home/graf/projects/git/rebase/.git/
$ echo stub >file1
$ echo stub >file2
$ git add .
$ git commit -m 'add stub'
[master (root-commit) 0cb53e9] Add stubs
2 files changed, 2 insertions(+)
create mode 100644 file1
create mode 100644 file2
$ git checkout -b feature/1
Switched to a new branch 'feature/1'
$ echo line1 >file1
$ git commit -am 'Add content'
[feature/1 2f3dcc7] Add content
1 file changed, 1 insertion(+), 1 deletion(-)
$ git checkout master
Switched to branch 'master'
$ git rm file1
rm 'file1'
$ git commit -m 'Delete file1'
[master 1b18590] Delete file1
1 file changed, 1 deletion(-)
delete mode 100644 file1
$ git checkout feature/1
Switched to branch 'feature/1'
$ echo line2 >>file1
$ git commit -am 'Add more content'
[feature/1 36be376] Add more content
1 file changed, 1 insertion(+)
$ cat file1
line1
line2
$ cat file2
stub
$ git rebase master
First, rewinding head to replay your work on top of it...
Applying Add content
Using index info to reconstruct a base tree...
A file1
Falling back to patching base and 3-way merge...
Auto-merging file2
Applying Add more content
Using index info to reconstruct a base tree...
A file1
Falling back to patching base and 3-way merge...
Auto-merging file2
$ ls -l
total 8
-rw-r--r-- 1 graf users 12 14 Jul 13:16 file2
$ cat file2
line1
line2
If instead file1 and file2 initially had different contents, 'git
rebase' runs into a merge conflict, so the user can fix it appropriatly.
I suppose this is related to the fact that Git manages the repo by file
contents only. Still this is nothing what I would expect (and neither
accept).
--
Bernhard Graf
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html