0
0

More than 1 year has passed since last update.

[Git] 動作を試す 実行例54:Gitリポジトリを単純にコピーして複製可能

Posted at

Gitの動作を理解するために、Gitのコマンドを実際に試して、結果を見てみました。

1つの記事内で一連のGitコマンドが完結しているので、これら一連のコマンドを順に実行させて結果を見ることで、一連のGitの動作を実際に体感でき、一通り独習することが可能です。

※前回記事のリポジトリ状態からの続きになっています。

前回記事へ 目次へ:Git関連記事のまとめページ 次回記事へ

実行例

(※始めに複製元のリポジトリの内容を確認)
cd /test-space/local-repo2
git log --oneline --graph --all
↓
結果: 
* e009b2d (origin/branch-R1) message R2
| * c69a305 (HEAD -> master, origin/master) message R1
| * 94996a0 message4
|/
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

-----

※単純にリポジトリのフォルダをコピーして複製可能
※/H 隠しファイルやシステムファイルも全てコピーする
※/E ファイルが存在しなくてもディレクトリごとコピーする
xcopy /H /E "D:/test-space/local-repo2" "D:/test-space/local-repo2-copy"
↓
結果: 
D:/test-space/local-repo3 は受け側のファイル名ですか、
またはディレクトリ名ですか
(F= ファイル、D= ディレクトリ)? d
D:/test-space/local-repo2\test1.txt
D:/test-space/local-repo2\test2.txt
D:/test-space/local-repo2\test4.txt
D:/test-space/local-repo2\.git\config
D:/test-space/local-repo2\.git\description
D:/test-space/local-repo2\.git\FETCH_HEAD
D:/test-space/local-repo2\.git\HEAD
...中略...
D:/test-space/local-repo2\.git\refs\remotes\origin\branch-R1
D:/test-space/local-repo2\.git\refs\remotes\origin\master
50 個のファイルをコピーしました

cd /test-space/local-repo2-copy
git log --oneline --graph --all
↓
結果: 
* e009b2d (origin/branch-R1) message R2
| * c69a305 (HEAD -> master, origin/master) message R1
| * 94996a0 message4
|/
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

(※複製後も同様に操作可能)

-----

git remote -v
↓
結果: 
origin  D:/test-space/remote-repo1.git (fetch)
origin  D:/test-space/remote-repo1.git (push)

git branch -vv -a
↓
結果: 
* master                   c69a305 message R1
  remotes/origin/branch-R1 e009b2d message R2
  remotes/origin/master    c69a305 message R1

git fetch
↓
結果: 
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (6/6), 577 bytes | 2.00 KiB/s, done.
From D:/test-space/remote-repo1
 * [new branch]      branch-R2  -> origin/branch-R2
   c69a305..1247fa9  master     -> origin/master

git log --oneline --graph --all
↓
結果: 
* 1247fa9 (origin/master) message R4
* fab68d8 (origin/branch-R2) message R3
* c69a305 (HEAD -> master) message R1
* 94996a0 message4
| * e009b2d (origin/branch-R1) message R2
|/
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

git pull
↓
結果: 
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> master

git log --oneline --graph --all
↓
結果: 
* 1247fa9 (origin/master) message R4
* fab68d8 (origin/branch-R2) message R3
* c69a305 (HEAD -> master) message R1
* 94996a0 message4
| * e009b2d (origin/branch-R1) message R2
|/
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

git branch -u origin/master master
↓
結果: 
branch 'master' set up to track 'origin/master'.

git pull
↓
結果: 
Updating c69a305..1247fa9
Fast-forward
 test1.txt | 2 ++
 1 file changed, 2 insertions(+)

git log --oneline --graph --all
↓
結果: 
* 1247fa9 (HEAD -> master, origin/master) message R4
* fab68d8 (origin/branch-R2) message R3
* c69a305 message R1
* 94996a0 message4
| * e009b2d (origin/branch-R1) message R2
|/
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

(※複製後も同様に操作可能)

-----

echo Sample-Added-C1 >> test1.txt
git commit -a -m "message C1"
↓
結果: 
[master 81d404d] message C1
 1 file changed, 1 insertion(+)

git log --oneline --graph --all
↓
結果: 
* 81d404d (HEAD -> master) message C1
* 1247fa9 (origin/master) message R4
* fab68d8 (origin/branch-R2) message R3
* c69a305 message R1
* 94996a0 message4
| * e009b2d (origin/branch-R1) message R2
|/
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

git push origin master
↓
結果: 
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 329 bytes | 329.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
To D:/test-space/remote-repo1.git
   1247fa9..81d404d  master -> master

git log --oneline --graph --all
↓
結果: 
* 81d404d (HEAD -> master, origin/master) message C1
* 1247fa9 message R4
* fab68d8 (origin/branch-R2) message R3
* c69a305 message R1
* 94996a0 message4
| * e009b2d (origin/branch-R1) message R2
|/
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

(※複製後も同様に操作可能)

-----

cd /test-space/remote-repo1.git
git log --oneline --graph --all
↓
結果: 
* 81d404d (HEAD -> master) message C1
* 1247fa9 message R4
* fab68d8 (branch-R2) message R3
* c69a305 message R1
* 94996a0 message4
| * e009b2d (branch-R1) message R2
|/
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

(※リモートリポジトリに変更が送信・反映されている)

cd /test-space/local-repo2-copy

-----

(※変更を戻してリモートリポジトリの内容を始めに戻す)

※リモートリポジトリのブランチ位置を強制的に過去側へ移動
git push -f origin 1247fa9:master
↓
結果: 
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To D:/test-space/remote-repo1.git
 + 81d404d...1247fa9 1247fa9 -> master (forced update)

git log --oneline --graph --all
↓
結果: 
* 81d404d (HEAD -> master) message C1
* 1247fa9 (origin/master) message R4
* fab68d8 (origin/branch-R2) message R3
* c69a305 message R1
* 94996a0 message4
| * e009b2d (origin/branch-R1) message R2
|/
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

-----

(※local-repo2-copyを削除)
cd /test-space
rd /s /q "/test-space/local-repo2-copy"

環境

Windows 10、PortableGit-2.40.0-64-bitを使用、全てローカルPC上で実施、GitHub等は不使用。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0