Created
May 6, 2011 08:25
-
-
Save namutaka/958609 to your computer and use it in GitHub Desktop.
Exam Git merge work.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[~/dev/test/gittest]% export SP=file://${HOME}/dev/test/gittest/GitTest.git | |
[~/dev/test/gittest]% git init --bare GitTest.git | |
Initialized empty Git repository in /Users/namu/dev/test/gittest/GitTest.git/ | |
[~/dev/test/gittest]% mkdir master alice bob | |
[~/dev/test/gittest]% cd master | |
[..test/gittest/master]% git clone $SP . | |
Cloning into .... | |
warning: You appear to have cloned an empty repository. | |
[..test/gittest/master]% mkdir common_folder alice_folder bob_folder | |
[..test/gittest/master]% echo "init rev.3" > common_folder/file1.txt | |
[..test/gittest/master]% echo "init rev.3" > common_folder/file2.txt | |
[..test/gittest/master]% echo "init rev.3" > common_folder/file3.txt | |
[..test/gittest/master]% echo "init rev.3" > alice_folder/file.txt | |
[..test/gittest/master]% echo "init rev.3" > bob_folder/file.txt | |
[..test/gittest/master]% git add -A | |
[..test/gittest/master]% git status | |
# On branch master | |
# | |
# Initial commit | |
# | |
# Changes to be committed: | |
# (use "git rm --cached <file>..." to unstage) | |
# | |
# new file: alice_folder/file.txt | |
# new file: bob_folder/file.txt | |
# new file: common_folder/file1.txt | |
# new file: common_folder/file2.txt | |
# new file: common_folder/file3.txt | |
# | |
[..test/gittest/master]% git commit -m "Initial" | |
[master (root-commit) 0f49fb3] Initial | |
5 files changed, 5 insertions(+), 0 deletions(-) | |
create mode 100644 alice_folder/file.txt | |
create mode 100644 bob_folder/file.txt | |
create mode 100644 common_folder/file1.txt | |
create mode 100644 common_folder/file2.txt | |
create mode 100644 common_folder/file3.txt | |
[..test/gittest/master]% git push origin master | |
Counting objects: 5, done. | |
Delta compression using up to 2 threads. | |
Compressing objects: 100% (3/3), done. | |
Writing objects: 100% (5/5), 360 bytes, done. | |
Total 5 (delta 0), reused 0 (delta 0) | |
Unpacking objects: 100% (5/5), done. | |
To file:///Users/namu/dev/test/gittest/GitTest.git | |
* [new branch] master -> master | |
[..test/gittest/master]% cd .. | |
[~/dev/test/gittest]% cd alice | |
[../test/gittest/alice]% git clone $SP . | |
Cloning into .... | |
remote: Counting objects: 5, done. | |
remote: Compressing objects: 100% (3/3), done. | |
remote: Total 5 (delta 0), reused 0 (delta 0) | |
Receiving objects: 100% (5/5), done. | |
[../test/gittest/alice]% find . | grep -v ".git" | |
. | |
./alice_folder | |
./alice_folder/file.txt | |
./bob_folder | |
./bob_folder/file.txt | |
./common_folder | |
./common_folder/file1.txt | |
./common_folder/file2.txt | |
./common_folder/file3.txt | |
[../test/gittest/alice]% echo "modified in A.6" >> alice_folder/file.txt | |
[../test/gittest/alice]% echo "create in A.6" >> alice_folder/file2.txt | |
[../test/gittest/alice]% git status | |
# On branch master | |
# Changed but not updated: | |
# (use "git add <file>..." to update what will be committed) | |
# (use "git checkout -- <file>..." to discard changes in working directory) | |
# | |
# modified: alice_folder/file.txt | |
# | |
# Untracked files: | |
# (use "git add <file>..." to include in what will be committed) | |
# | |
# alice_folder/file2.txt | |
no changes added to commit (use "git add" and/or "git commit -a") | |
[../test/gittest/alice]% git commit -a -m "mod in alice" | |
[master f901bca] mod in alice | |
1 files changed, 1 insertions(+), 0 deletions(-) | |
[../test/gittest/alice]% mkdir alice_folder/folder; echo "create folder in A.7" >> alice_folder/folder/file3.txt | |
[../test/gittest/alice]% git status | |
# On branch master | |
# Your branch is ahead of 'origin/master' by 1 commit. | |
# | |
# Untracked files: | |
# (use "git add <file>..." to include in what will be committed) | |
# | |
# alice_folder/file2.txt | |
# alice_folder/folder/ | |
nothing added to commit but untracked files present (use "git add" to track) | |
[../test/gittest/alice]% git add -A | |
[../test/gittest/alice]% git commit -a -m "mod in alice" | |
[master b7f7437] mod in alice | |
2 files changed, 2 insertions(+), 0 deletions(-) | |
create mode 100644 alice_folder/file2.txt | |
create mode 100644 alice_folder/folder/file3.txt | |
[../test/gittest/alice]% find . | grep -v ".git" | |
. | |
./alice_folder | |
./alice_folder/file.txt | |
./alice_folder/file2.txt | |
./alice_folder/folder | |
./alice_folder/folder/file3.txt | |
./bob_folder | |
./bob_folder/file.txt | |
./common_folder | |
./common_folder/file1.txt | |
./common_folder/file2.txt | |
./common_folder/file3.txt | |
[../test/gittest/alice]% cd .. | |
[~/dev/test/gittest]% cd bob | |
[..ev/test/gittest/bob]% git clone $SP . | |
Cloning into .... | |
remote: Counting objects: 5, done. | |
remote: Compressing objects: 100% (3/3), done. | |
remote: Total 5 (delta 0), reused 0 (delta 0) | |
Receiving objects: 100% (5/5), done. | |
[..ev/test/gittest/bob]% find . | grep -v ".git" | |
. | |
./alice_folder | |
./alice_folder/file.txt | |
./bob_folder | |
./bob_folder/file.txt | |
./common_folder | |
./common_folder/file1.txt | |
./common_folder/file2.txt | |
./common_folder/file3.txt | |
[..ev/test/gittest/bob]% echo "fugafuga B.8" >> bob_folder/file.txt | |
[..ev/test/gittest/bob]% echo "create in B.8" >> bob_folder/file2.txt | |
[..ev/test/gittest/bob]% mkdir bob_folder/folder; echo "create folder in B.8" >> bob_folder/folder/file3.txt | |
[..ev/test/gittest/bob]% git add -A | |
[..ev/test/gittest/bob]% git status | |
# On branch master | |
# Changes to be committed: | |
# (use "git reset HEAD <file>..." to unstage) | |
# | |
# modified: bob_folder/file.txt | |
# new file: bob_folder/file2.txt | |
# new file: bob_folder/folder/file3.txt | |
# | |
[..ev/test/gittest/bob]% git commit -a -m "mod in bob" | |
[master 741396a] mod in bob | |
3 files changed, 3 insertions(+), 0 deletions(-) | |
create mode 100644 bob_folder/file2.txt | |
create mode 100644 bob_folder/folder/file3.txt | |
[..ev/test/gittest/bob]% find . | grep -v ".git" | |
. | |
./alice_folder | |
./alice_folder/file.txt | |
./bob_folder | |
./bob_folder/file.txt | |
./bob_folder/file2.txt | |
./bob_folder/folder | |
./bob_folder/folder/file3.txt | |
./common_folder | |
./common_folder/file1.txt | |
./common_folder/file2.txt | |
./common_folder/file3.txt | |
[..ev/test/gittest/bob]% cd .. | |
[~/dev/test/gittest]% cd alice | |
[../test/gittest/alice]% git status | |
# On branch master | |
# Your branch is ahead of 'origin/master' by 2 commits. | |
# | |
nothing to commit (working directory clean) | |
[../test/gittest/alice]% git push | |
Counting objects: 13, done. | |
Delta compression using up to 2 threads. | |
Compressing objects: 100% (5/5), done. | |
Writing objects: 100% (10/10), 836 bytes, done. | |
Total 10 (delta 0), reused 0 (delta 0) | |
Unpacking objects: 100% (10/10), done. | |
To file:///Users/namu/dev/test/gittest/GitTest.git | |
0f49fb3..b7f7437 master -> master | |
[../test/gittest/alice]% cd .. | |
[~/dev/test/gittest]% cd bob | |
[..ev/test/gittest/bob]% git pull | |
remote: Counting objects: 13, done. | |
remote: Compressing objects: 100% (5/5), done. | |
remote: Total 10 (delta 0), reused 0 (delta 0) | |
Unpacking objects: 100% (10/10), done. | |
From file:///Users/namu/dev/test/gittest/GitTest | |
0f49fb3..b7f7437 master -> origin/master | |
Merge made by recursive. | |
alice_folder/file.txt | 1 + | |
alice_folder/file2.txt | 1 + | |
alice_folder/folder/file3.txt | 1 + | |
3 files changed, 3 insertions(+), 0 deletions(-) | |
create mode 100644 alice_folder/file2.txt | |
create mode 100644 alice_folder/folder/file3.txt | |
[..ev/test/gittest/bob]% | |
[..ev/test/gittest/bob]% git st | |
# On branch master | |
# Your branch is ahead of 'origin/master' by 2 commits. | |
# | |
nothing to commit (working directory clean) | |
[..ev/test/gittest/bob]% find . | grep -v ".git" | |
. | |
./alice_folder | |
./alice_folder/file.txt | |
./alice_folder/file2.txt | |
./alice_folder/folder | |
./alice_folder/folder/file3.txt | |
./bob_folder | |
./bob_folder/file.txt | |
./bob_folder/file2.txt | |
./bob_folder/folder | |
./bob_folder/folder/file3.txt | |
./common_folder | |
./common_folder/file1.txt | |
./common_folder/file2.txt | |
./common_folder/file3.txt | |
[..ev/test/gittest/bob]% git push | |
Counting objects: 13, done. | |
Delta compression using up to 2 threads. | |
Compressing objects: 100% (5/5), done. | |
Writing objects: 100% (9/9), 854 bytes, done. | |
Total 9 (delta 0), reused 0 (delta 0) | |
Unpacking objects: 100% (9/9), done. | |
To file:///Users/namu/dev/test/gittest/GitTest.git | |
b7f7437..3f4e003 master -> master | |
[..ev/test/gittest/bob]% cd .. | |
[~/dev/test/gittest]% cd alice | |
[../test/gittest/alice]% git pull | |
remote: Counting objects: 13, done. | |
remote: Compressing objects: 100% (5/5), done. | |
remote: Total 9 (delta 0), reused 0 (delta 0) | |
Unpacking objects: 100% (9/9), done. | |
From file:///Users/namu/dev/test/gittest/GitTest | |
b7f7437..3f4e003 master -> origin/master | |
Updating b7f7437..3f4e003 | |
Fast-forward | |
bob_folder/file.txt | 1 + | |
bob_folder/file2.txt | 1 + | |
bob_folder/folder/file3.txt | 1 + | |
3 files changed, 3 insertions(+), 0 deletions(-) | |
create mode 100644 bob_folder/file2.txt | |
create mode 100644 bob_folder/folder/file3.txt | |
[../test/gittest/alice]% | |
[../test/gittest/alice]% find . | grep -v ".git" | |
. | |
./alice_folder | |
./alice_folder/file.txt | |
./alice_folder/file2.txt | |
./alice_folder/folder | |
./alice_folder/folder/file3.txt | |
./bob_folder | |
./bob_folder/file.txt | |
./bob_folder/file2.txt | |
./bob_folder/folder | |
./bob_folder/folder/file3.txt | |
./common_folder | |
./common_folder/file1.txt | |
./common_folder/file2.txt | |
./common_folder/file3.txt | |
[../test/gittest/alice]% git push | |
Everything up-to-date | |
[../test/gittest/alice]% cd .. | |
[~/dev/test/gittest]% cd alice | |
[../test/gittest/alice]% git status | |
# On branch master | |
nothing to commit (working directory clean) | |
[../test/gittest/alice]% STR=`echo "insert in A.16"; cat common_folder/file1.txt`; echo "$STR" > common_folder/file1.txt | |
[../test/gittest/alice]% echo "modified in A & B" >> common_folder/file2.txt | |
[../test/gittest/alice]% echo "insert in A.16" >> common_folder/file3.txt | |
[../test/gittest/alice]% echo "create in A & B" >> common_folder/new_file1.txt | |
[../test/gittest/alice]% echo "create in A.16" >> common_folder/new_file2.txt | |
[../test/gittest/alice]% mkdir common; echo "create folder in A.16" > common/file1.txt | |
[../test/gittest/alice]% echo "create folder in A & B" > common/file2.txt | |
[../test/gittest/alice]% mkdir other; echo "create folder in A.16" > other/file1.txt | |
[../test/gittest/alice]% find . | grep -v ".git" | |
. | |
./alice_folder | |
./alice_folder/file.txt | |
./alice_folder/file2.txt | |
./alice_folder/folder | |
./alice_folder/folder/file3.txt | |
./bob_folder | |
./bob_folder/file.txt | |
./bob_folder/file2.txt | |
./bob_folder/folder | |
./bob_folder/folder/file3.txt | |
./common | |
./common/file1.txt | |
./common/file2.txt | |
./common_folder | |
./common_folder/file1.txt | |
./common_folder/file2.txt | |
./common_folder/file3.txt | |
./common_folder/new_file1.txt | |
./common_folder/new_file2.txt | |
./other | |
./other/file1.txt | |
[../test/gittest/alice]% git status | |
# On branch master | |
# Changed but not updated: | |
# (use "git add <file>..." to update what will be committed) | |
# (use "git checkout -- <file>..." to discard changes in working directory) | |
# | |
# modified: common_folder/file1.txt | |
# modified: common_folder/file2.txt | |
# modified: common_folder/file3.txt | |
# | |
# Untracked files: | |
# (use "git add <file>..." to include in what will be committed) | |
# | |
# common/ | |
# common_folder/new_file1.txt | |
# common_folder/new_file2.txt | |
# other/ | |
no changes added to commit (use "git add" and/or "git commit -a") | |
[../test/gittest/alice]% git add -A | |
[../test/gittest/alice]% git commit -m "mod in alice" | |
[master 02ff8ad] mod in alice | |
8 files changed, 8 insertions(+), 0 deletions(-) | |
create mode 100644 common/file1.txt | |
create mode 100644 common/file2.txt | |
create mode 100644 common_folder/new_file1.txt | |
create mode 100644 common_folder/new_file2.txt | |
create mode 100644 other/file1.txt | |
[../test/gittest/alice]% cd .. | |
[~/dev/test/gittest]% cd bob | |
[..ev/test/gittest/bob]% echo "insert in B.17" >> common_folder/file1.txt | |
[..ev/test/gittest/bob]% echo "modified in A & B" >> common_folder/file2.txt | |
[..ev/test/gittest/bob]% echo "insert in B.17" >> common_folder/file3.txt | |
[..ev/test/gittest/bob]% echo "create in A & B" >> common_folder/new_file1.txt | |
[..ev/test/gittest/bob]% echo "create in B.17" >> common_folder/new_file2.txt | |
[..ev/test/gittest/bob]% mkdir common; echo "create folder in B.17" > common/file1.txt | |
[..ev/test/gittest/bob]% echo "create folder in A & B" > common/file2.txt | |
[..ev/test/gittest/bob]% mkdir other; echo "create folder in B.17" > other/file2.txt | |
[..ev/test/gittest/bob]% git add -A | |
[..ev/test/gittest/bob]% git status | |
# On branch master | |
# Changes to be committed: | |
# (use "git reset HEAD <file>..." to unstage) | |
# | |
# new file: common/file1.txt | |
# new file: common/file2.txt | |
# modified: common_folder/file1.txt | |
# modified: common_folder/file2.txt | |
# modified: common_folder/file3.txt | |
# new file: common_folder/new_file1.txt | |
# new file: common_folder/new_file2.txt | |
# new file: other/file2.txt | |
# | |
[..ev/test/gittest/bob]% git commit -m "mod in bob" | |
[master a8cab5a] mod in bob | |
8 files changed, 8 insertions(+), 0 deletions(-) | |
create mode 100644 common/file1.txt | |
create mode 100644 common/file2.txt | |
create mode 100644 common_folder/new_file1.txt | |
create mode 100644 common_folder/new_file2.txt | |
create mode 100644 other/file2.txt | |
[..ev/test/gittest/bob]% find . | grep -v ".git" | |
. | |
./alice_folder | |
./alice_folder/file.txt | |
./alice_folder/file2.txt | |
./alice_folder/folder | |
./alice_folder/folder/file3.txt | |
./bob_folder | |
./bob_folder/file.txt | |
./bob_folder/file2.txt | |
./bob_folder/folder | |
./bob_folder/folder/file3.txt | |
./common | |
./common/file1.txt | |
./common/file2.txt | |
./common_folder | |
./common_folder/file1.txt | |
./common_folder/file2.txt | |
./common_folder/file3.txt | |
./common_folder/new_file1.txt | |
./common_folder/new_file2.txt | |
./other | |
./other/file2.txt | |
[..ev/test/gittest/bob]% cd .. | |
[~/dev/test/gittest]% cd alice | |
[../test/gittest/alice]% git push | |
Counting objects: 15, done. | |
Delta compression using up to 2 threads. | |
Compressing objects: 100% (4/4), done. | |
Writing objects: 100% (12/12), 844 bytes, done. | |
Total 12 (delta 0), reused 0 (delta 0) | |
Unpacking objects: 100% (12/12), done. | |
To file:///Users/namu/dev/test/gittest/GitTest.git | |
3f4e003..02ff8ad master -> master | |
[../test/gittest/alice]% cd .. | |
[~/dev/test/gittest]% cd bob | |
[..ev/test/gittest/bob]% git pull | |
remote: Counting objects: 15, done. | |
remote: Compressing objects: 100% (4/4), done. | |
remote: Total 12 (delta 0), reused 0 (delta 0) | |
Unpacking objects: 100% (12/12), done. | |
From file:///Users/namu/dev/test/gittest/GitTest | |
3f4e003..02ff8ad master -> origin/master | |
Auto-merging common/file1.txt | |
CONFLICT (add/add): Merge conflict in common/file1.txt | |
Auto-merging common_folder/file1.txt | |
Auto-merging common_folder/file3.txt | |
CONFLICT (content): Merge conflict in common_folder/file3.txt | |
Auto-merging common_folder/new_file2.txt | |
CONFLICT (add/add): Merge conflict in common_folder/new_file2.txt | |
Automatic merge failed; fix conflicts and then commit the result. | |
[..ev/test/gittest/bob]% | |
[..ev/test/gittest/bob]% git status | |
# On branch master | |
# Your branch and 'origin/master' have diverged, | |
# and have 1 and 1 different commit(s) each, respectively. | |
# | |
# Changes to be committed: | |
# | |
# modified: common_folder/file1.txt | |
# new file: other/file1.txt | |
# | |
# Unmerged paths: | |
# (use "git add/rm <file>..." as appropriate to mark resolution) | |
# | |
# both added: common/file1.txt | |
# both modified: common_folder/file3.txt | |
# both added: common_folder/new_file2.txt | |
# | |
[..ev/test/gittest/bob]% cat common/file1.txt | |
<<<<<<< HEAD | |
create folder in B.17 | |
======= | |
create folder in A.16 | |
>>>>>>> 02ff8ada57b3586a4ad21977950806dc4680205b | |
[..ev/test/gittest/bob]% STR=`grep -v "^[<=>]" common/file1.txt`; echo "$STR" > common/file1.txt | |
[..ev/test/gittest/bob]% git add common/file1.txt | |
[..ev/test/gittest/bob]% cat common_folder/file3.txt | |
init rev.3 | |
<<<<<<< HEAD | |
insert in B.17 | |
======= | |
insert in A.16 | |
>>>>>>> 02ff8ada57b3586a4ad21977950806dc4680205b | |
[..ev/test/gittest/bob]% STR=`grep -v "^[<=>]" common_folder/file3.txt`; echo "$STR" > common_folder/file3.txt | |
[..ev/test/gittest/bob]% cat common_folder/file3.txt | |
init rev.3 | |
insert in B.17 | |
insert in A.16 | |
[..ev/test/gittest/bob]% git add common_folder/file3.txt | |
[..ev/test/gittest/bob]% cat common_folder/new_file2.txt | |
<<<<<<< HEAD | |
create in B.17 | |
======= | |
create in A.16 | |
>>>>>>> 02ff8ada57b3586a4ad21977950806dc4680205b | |
[..ev/test/gittest/bob]% STR=`grep -v "^[<=>]" common_folder/new_file2.txt`; echo "$STR" > common_folder/new_file2.txt | |
[..ev/test/gittest/bob]% git add common_folder/new_file2.txt | |
[..ev/test/gittest/bob]% git status | |
# On branch master | |
# Your branch and 'origin/master' have diverged, | |
# and have 1 and 1 different commit(s) each, respectively. | |
# | |
# Changes to be committed: | |
# | |
# modified: common/file1.txt | |
# modified: common_folder/file1.txt | |
# modified: common_folder/file3.txt | |
# modified: common_folder/new_file2.txt | |
# new file: other/file1.txt | |
# | |
[..ev/test/gittest/bob]% git diff | |
[..ev/test/gittest/bob]% git diff --cached | |
diff --git a/common/file1.txt b/common/file1.txt | |
index 881496d..7dd8744 100644 | |
--- a/common/file1.txt | |
+++ b/common/file1.txt | |
@@ -1 +1,2 @@ | |
create folder in B.17 | |
+create folder in A.16 | |
diff --git a/common_folder/file1.txt b/common_folder/file1.txt | |
index cea0153..3fd3421 100644 | |
--- a/common_folder/file1.txt | |
+++ b/common_folder/file1.txt | |
@@ -1,2 +1,3 @@ | |
+insert in A.16 | |
init rev.3 | |
insert in B.17 | |
diff --git a/common_folder/file3.txt b/common_folder/file3.txt | |
index cea0153..65b308e 100644 | |
--- a/common_folder/file3.txt | |
+++ b/common_folder/file3.txt | |
@@ -1,2 +1,3 @@ | |
init rev.3 | |
insert in B.17 | |
+insert in A.16 | |
diff --git a/common_folder/new_file2.txt b/common_folder/new_file2.txt | |
index 6c2d20e..f6ab848 100644 | |
--- a/common_folder/new_file2.txt | |
+++ b/common_folder/new_file2.txt | |
@@ -1 +1,2 @@ | |
create in B.17 | |
+create in A.16 | |
diff --git a/other/file1.txt b/other/file1.txt | |
new file mode 100644 | |
index 0000000..183817f | |
--- /dev/null | |
+++ b/other/file1.txt | |
@@ -0,0 +1 @@ | |
+create folder in A.16 | |
[..ev/test/gittest/bob]% git commit -m "merge" | |
[master 766ba00] merge | |
[..ev/test/gittest/bob]% git push | |
Counting objects: 28, done. | |
Delta compression using up to 2 threads. | |
Compressing objects: 100% (9/9), done. | |
Writing objects: 100% (17/17), 1.45 KiB, done. | |
Total 17 (delta 0), reused 0 (delta 0) | |
Unpacking objects: 100% (17/17), done. | |
To file:///Users/namu/dev/test/gittest/GitTest.git | |
02ff8ad..766ba00 master -> master | |
[..ev/test/gittest/bob]% cd .. | |
[~/dev/test/gittest]% cd alice | |
[../test/gittest/alice]% git pull | |
remote: Counting objects: 28, done. | |
remote: Compressing objects: 100% (9/9), done. | |
remote: Total 17 (delta 0), reused 0 (delta 0) | |
Unpacking objects: 100% (17/17), done. | |
From file:///Users/namu/dev/test/gittest/GitTest | |
02ff8ad..766ba00 master -> origin/master | |
Updating 02ff8ad..766ba00 | |
Fast-forward | |
common/file1.txt | 1 + | |
common_folder/file1.txt | 1 + | |
common_folder/file3.txt | 1 + | |
common_folder/new_file2.txt | 1 + | |
other/file2.txt | 1 + | |
5 files changed, 5 insertions(+), 0 deletions(-) | |
create mode 100644 other/file2.txt | |
[../test/gittest/alice]% | |
[../test/gittest/alice]% find . | grep -v ".git" | |
. | |
./alice_folder | |
./alice_folder/file.txt | |
./alice_folder/file2.txt | |
./alice_folder/folder | |
./alice_folder/folder/file3.txt | |
./bob_folder | |
./bob_folder/file.txt | |
./bob_folder/file2.txt | |
./bob_folder/folder | |
./bob_folder/folder/file3.txt | |
./common | |
./common/file1.txt | |
./common/file2.txt | |
./common_folder | |
./common_folder/file1.txt | |
./common_folder/file2.txt | |
./common_folder/file3.txt | |
./common_folder/new_file1.txt | |
./common_folder/new_file2.txt | |
./other | |
./other/file1.txt | |
./other/file2.txt | |
[../test/gittest/alice]% cat common_folder/new_file2.txt | |
create in B.17 | |
create in A.16 | |
[../test/gittest/alice]% cat common/file1.txt | |
create folder in B.17 | |
create folder in A.16 | |
[../test/gittest/alice]% cat other/file2.txt | |
create folder in B.17 | |
[../test/gittest/alice]% cd .. | |
[~/dev/test/gittest]% diff -x .git -r alice bob | |
[~/dev/test/gittest]% |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export SP=file://${HOME}/dev/test/gittest/GitTest.git | |
git init --bare GitTest.git | |
mkdir master alice bob | |
cd master | |
git clone $SP . | |
mkdir common_folder alice_folder bob_folder | |
echo "init rev.3" > common_folder/file1.txt | |
echo "init rev.3" > common_folder/file2.txt | |
echo "init rev.3" > common_folder/file3.txt | |
echo "init rev.3" > alice_folder/file.txt | |
echo "init rev.3" > bob_folder/file.txt | |
git add -A | |
git status | |
git commit -m "Initial" | |
git push origin master | |
cd .. | |
cd alice | |
git clone $SP . | |
find . | grep -v ".git" | |
echo "modified in A.6" >> alice_folder/file.txt | |
echo "create in A.6" >> alice_folder/file2.txt | |
git status | |
git commit -a -m "mod in alice" | |
mkdir alice_folder/folder; echo "create folder in A.7" >> alice_folder/folder/file3.txt | |
git status | |
git add -A | |
git commit -a -m "mod in alice" | |
find . | grep -v ".git" | |
cd .. | |
cd bob | |
git clone $SP . | |
find . | grep -v ".git" | |
echo "fugafuga B.8" >> bob_folder/file.txt | |
echo "create in B.8" >> bob_folder/file2.txt | |
mkdir bob_folder/folder; echo "create folder in B.8" >> bob_folder/folder/file3.txt | |
git add -A | |
git status | |
git commit -a -m "mod in bob" | |
find . | grep -v ".git" | |
cd .. | |
cd alice | |
git status | |
git push | |
cd .. | |
cd bob | |
git pull | |
git st | |
find . | grep -v ".git" | |
git push | |
cd .. | |
cd alice | |
git pull | |
find . | grep -v ".git" | |
git push | |
cd .. | |
cd alice | |
git status | |
# 同じファイルの別の箇所を編集 | |
STR=`echo "insert in A.16"; cat common_folder/file1.txt`; echo "$STR" > common_folder/file1.txt | |
# 同じファイルの同じ箇所を編集# 同じ内容 | |
echo "modified in A & B" >> common_folder/file2.txt | |
# 同じファイルの同じ箇所を編集# 違う内容 | |
echo "insert in A.16" >> common_folder/file3.txt | |
# 同じファイルを新規追加# 同じ内容 | |
echo "create in A & B" >> common_folder/new_file1.txt | |
# 同じファイルを新規追加# 違う内容 | |
echo "create in A.16" >> common_folder/new_file2.txt | |
# 同じフォルダを新規追加 # 中のファイルも同じ | |
mkdir common; echo "create folder in A.16" > common/file1.txt | |
echo "create folder in A & B" > common/file2.txt | |
# 同じフォルダを新規追加 # フォルダは同じでファイルは違う | |
mkdir other; echo "create folder in A.16" > other/file1.txt | |
find . | grep -v ".git" | |
git status | |
git add -A | |
git commit -m "mod in alice" | |
cd .. | |
cd bob | |
# 同じファイルの別の箇所を編集 | |
echo "insert in B.17" >> common_folder/file1.txt | |
# 同じファイルの同じ箇所を編集 # 同じ内容 | |
echo "modified in A & B" >> common_folder/file2.txt | |
# 同じファイルの同じ箇所を編集 # 違う内容 | |
echo "insert in B.17" >> common_folder/file3.txt | |
# 同じファイルを新規追加# 同じ内容 | |
echo "create in A & B" >> common_folder/new_file1.txt | |
# 同じファイルを新規追加# 違う内容 | |
echo "create in B.17" >> common_folder/new_file2.txt | |
# 同じフォルダを新規追加 # 中のファイルも同じ | |
mkdir common; echo "create folder in B.17" > common/file1.txt | |
echo "create folder in A & B" > common/file2.txt | |
# 同じフォルダを新規追加 # フォルダは同じでファイルは違う | |
mkdir other; echo "create folder in B.17" > other/file2.txt | |
git add -A | |
git status | |
git commit -m "mod in bob" | |
find . | grep -v ".git" | |
cd .. | |
cd alice | |
git push | |
cd .. | |
cd bob | |
git pull | |
git status | |
cat common/file1.txt | |
STR=`grep -v "^[<=>]" common/file1.txt`; echo "$STR" > common/file1.txt | |
git add common/file1.txt | |
cat common_folder/file3.txt | |
STR=`grep -v "^[<=>]" common_folder/file3.txt`; echo "$STR" > common_folder/file3.txt | |
cat common_folder/file3.txt | |
git add common_folder/file3.txt | |
cat common_folder/new_file2.txt | |
STR=`grep -v "^[<=>]" common_folder/new_file2.txt`; echo "$STR" > common_folder/new_file2.txt | |
git add common_folder/new_file2.txt | |
git status | |
git diff --cached | |
git commit -m "merge" | |
git push | |
cd .. | |
cd alice | |
git pull | |
find . | grep -v ".git" | |
cat common_folder/new_file2.txt | |
cat common/file1.txt | |
cat other/file1.txt | |
cat other/file2.txt | |
cd .. | |
diff -x .git -r alice bob |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A o-o o | |
/ \ / \ | |
T-o-----o---o---o---o | |
\ \ / \ \ / | |
B o-----o o---o | |
### rev.3 | |
common_folder/file1.txt | |
common_folder/file2.txt | |
common_folder/file3.txt | |
alice_folder/file.txt | |
bob_folder/file.txt | |
### rev.6 | |
echo "modified in A.6" >> alice_folder/file.txt | |
echo "create in A.6" >> alice_folder/file2.txt | |
### rev.7 | |
mkdir alice_folder/folder; echo "create folder in A.7" >> alice_folder/folder/file3.txt | |
### rev.8 | |
echo "fugafuga B.8" >> bob_folder/file.txt | |
echo "create in B.8" >> bob_folder/file2.txt | |
mkdir bob_folder/folder; echo "create folder in B.8" >> bob_folder/folder/file3.txt | |
### rev.16 | |
# 同じファイルの別の箇所を編集 | |
STR=`echo "insert in A.16"; cat common_folder/file1.txt`; echo "$STR" > common_folder/file1.txt | |
# 同じファイルの同じ箇所を編集# 同じ内容 | |
echo "modified in A & B" >> common_folder/file2.txt | |
# 同じファイルの同じ箇所を編集# 違う内容 | |
echo "insert in A.16" >> common_folder/file3.txt | |
# 同じファイルを新規追加# 同じ内容 | |
echo "create in A & B" >> common_folder/new_file1.txt | |
# 同じファイルを新規追加# 違う内容 | |
echo "create in A.16" >> common_folder/new_file2.txt | |
# 同じフォルダを新規追加 # 中のファイルも同じ | |
mkdir common; echo "create folder in A.16" > common/file1.txt | |
echo "create folder in A & B" > common/file2.txt | |
# 同じフォルダを新規追加 # フォルダは同じでファイルは違う | |
mkdir other; echo "create folder in A.16" > other/file1.txt | |
### rev.17 | |
# 同じファイルの別の箇所を編集 | |
echo "insert in B.17" >> common_folder/file1.txt | |
# 同じファイルの同じ箇所を編集 # 同じ内容 | |
echo "modified in A & B" >> common_folder/file2.txt | |
# 同じファイルの同じ箇所を編集 # 違う内容 | |
echo "insert in B.17" >> common_folder/file3.txt | |
# 同じファイルを新規追加# 同じ内容 | |
echo "create in A & B" >> common_folder/new_file1.txt | |
# 同じファイルを新規追加# 違う内容 | |
echo "create in B.17" >> common_folder/new_file2.txt | |
# 同じフォルダを新規追加 # 中のファイルも同じ | |
mkdir common; echo "create folder in B.17" > common/file1.txt | |
echo "create folder in A & B" > common/file2.txt | |
# 同じフォルダを新規追加 # フォルダは同じでファイルは違う | |
mkdir other; echo "create folder in B.17" > other/file2.txt |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment