Skip to content

Instantly share code, notes, and snippets.

@namutaka
Created May 6, 2011 08:25
Show Gist options
  • Save namutaka/958609 to your computer and use it in GitHub Desktop.
Save namutaka/958609 to your computer and use it in GitHub Desktop.
Exam Git merge work.
[~/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]%
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
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