GitHub/基本
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#topicpath
----
#contents
Gitは ローカルでのコミットやリモートへのプッシュ・プル、...
** Gitを始める [#qac54eb8]
$ mkdir tutorial && cd $_
$ git init
Initialized empty Git repository in /Users/masatomix/git...
$ echo "master added" >> file1.txt
$ cat file1.txt
master added
$ git add file1.txt
$ git commit -m "master commit"
[master (root-commit) 25c2961] master commit
1 file changed, 1 insertion(+)
create mode 100644 file1.txt
$ echo "2 master added" >> file1.txt
$ cat file1.txt
master added
2 master addedgit
$ git add file1.txt
$ git commit -m "2 master commit"
[master ad0dac1] 2 master commit
1 file changed, 1 insertion(+)
addしてcommitの繰り返しです。コミットまでできました。
** ブランチを作成する [#s0954705]
ブランチを作成します
$ git checkout -b dev ←作成と移動。作成だけなら git b...
Switched to a new branch 'dev'
$ git branch
* dev [#h881c414]
master
ローカルのワーキングツリーがdevになりました。この時点で、...
#ref(01.png)
devに存在するファイルを修正して、コミットします。
$ echo "dev modified" >> file1.txt && git add file1.txt...
[dev 3f7af4f] dev commit
1 file changed, 1 insertion(+)
#ref(02.png)
上記のキャプチャを見て分かるとおり、devだけひとつリビジョ...
** ブランチのマージ [#c7877d94]
さて、devで修正した内容をmasterにマージします。マージとは...
修正を反映させたいブランチへ移動して、他のブランチを指定...
$ git checkout master
Switched to branch 'master'
$ git merge dev
Updating ad0dac1..3f7af4f
Fast-forward
file1.txt | 1 +
1 file changed, 1 insertion(+)
$ git branch
dev
* master [#fbf5598a]
今回は masterブランチにdevブランチをマージしました。ただm...
#ref(03.png)
** Fast-forwardでないマージ [#nc334ab4]
masterからdevを作成後、たとえばmasterが別のブランチをマー...
$ git checkout -b dev2
Switched to a new branch 'dev2'
$ echo "dev2 added " >> file2.txt && git add file2.txt &...
[dev2 134e253] dev2 commit
1 file changed, 1 insertion(+)
create mode 100644 file2.txt
$ git checkout master
Switched to branch 'master'
$ git merge dev2
Updating 3f7af4f..134e253
Fast-forward
file2.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 file2.txt
さあdev2を使って、masterのリビジョンを少し進めました。
#ref(04.png)
続いて、devも独自にリビジョンをすこしだけ進めておきます。
$ git checkout dev
$ echo "dev added " >> file1.txt && git add file1.txt &...
[dev 3f7a1ef] 2 dev commit
1 file changed, 1 insertion(+)
#ref(05.png)
上記キャプチャで分かるとおり、masterとdev2はおなじ場所に...
$ git checkout master
Switched to branch 'master'
$ git merge dev
Merge made by the 'recursive' strategy.
file1.txt | 1 +
1 file changed, 1 insertion(+)
#ref(06.png)
新しいコミットがひとつ実行され、Fast-forwardでないやり方...
今回はFast-forwardではないのでコミットメッセージを入れる...
$ git merge dev -m "Merge branch dev"
などとすればメッセージは表示されません。。
最後にdevをmasterまで進めて、完了です。
$ git checkout dev
$ git merge master
Updating 3f7a1ef..56f88d1
Fast-forward
file2.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 file2.txt
masterとdevはおなじ状態になりました。
#ref(07.png)
**まとめ [#g81261ad]
このように、あるブランチの修正をマージする場合、そのまま...
それらの修正がコンフリクトしない場合、gitが正しくマージ処...
[[6. マージでの衝突を解決する>http://www.backlog.jp/git-g...
** さいごに、リベースってなんだ [#zb00c773]
別のブランチの修正をマージするにあたって
$ git checkout dev
$ git merge master
とやることで、devブランチにmasterブランチの修正を反映させ...
#ref(08.png)
さてgit には リベースという概念があります。これはマージが...
$ git checkout dev
$ git rebase master
First, rewinding head to replay your work on top of it...
Applying: dev commit <- 3fc335e として新たにコミット...
Applying: dev commit <- 9210c21 として新たにコミット...
Applying: dev commit <- 09a6a5a として新たにコミット...
#ref(09.png)
このように、devのコミットがいったん待避されて((rewinding...
画面キャプチャからもわかるとおり、修正履歴が一直線となり...
また、ココではリモートへのpushの件は出てきませんが、リモ...
これらについては、[[こわくない Git>http://www.slideshare....
** マージとリベースの結果比較。 [#t89651a2]
devから派生した dev_#50, dev_#60があって並行で開発してて...
マージ・リベース直前の状態は下記の通り。
#ref(before.png)
***マージ [#o7781060]
ふつうにマージします。
$ git checkout dev_#50
$ git merge dev
マージされた更新履歴を含め、さらにdev側にマージします
$ git checkout dev
$ git merge dev_#50
#ref(merge.png)
マージなので、まずdev_#50 側では元々の更新履歴(5d630c3, f...
つづいてdevにそれを取り込む際、fast-forwardマージで更新分...
***リベース [#p4951555]
つぎにリベースです。
$ git checkout dev_#50
$ git rebase dev
反映された更新履歴を含め、さらにdev側にマージします
$ git checkout dev
$ git merge dev_#50
#ref(rebase.png)
今回はリベースなので、dev_#50側での更新がいったん待避され...
***比較のまとめ [#f7f1656e]
dev の側から見た時に「dev_#50がdev_#60での更新をこのタイ...
***追加で。 [#j6c43db8]
''ってわけで、上記でどっちでもイイかなと思ったマージとリ...
[[GitHub/マージとリベース]]
**関連リンク [#z8b7d3a5]
-[[Git初心者に捧ぐ!Gitの「これなんで?」を解説します。 |...
-[[サルでもわかるGit入門 〜バージョン管理を使いこなそう〜...
-[[Git の疑問。トピックブランチで作業中に、master ブラン...
-[[GitHubへpull requestする際のベストプラクティス - hnwの...
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
#topicpath
----
#contents
Gitは ローカルでのコミットやリモートへのプッシュ・プル、...
** Gitを始める [#qac54eb8]
$ mkdir tutorial && cd $_
$ git init
Initialized empty Git repository in /Users/masatomix/git...
$ echo "master added" >> file1.txt
$ cat file1.txt
master added
$ git add file1.txt
$ git commit -m "master commit"
[master (root-commit) 25c2961] master commit
1 file changed, 1 insertion(+)
create mode 100644 file1.txt
$ echo "2 master added" >> file1.txt
$ cat file1.txt
master added
2 master addedgit
$ git add file1.txt
$ git commit -m "2 master commit"
[master ad0dac1] 2 master commit
1 file changed, 1 insertion(+)
addしてcommitの繰り返しです。コミットまでできました。
** ブランチを作成する [#s0954705]
ブランチを作成します
$ git checkout -b dev ←作成と移動。作成だけなら git b...
Switched to a new branch 'dev'
$ git branch
* dev [#h881c414]
master
ローカルのワーキングツリーがdevになりました。この時点で、...
#ref(01.png)
devに存在するファイルを修正して、コミットします。
$ echo "dev modified" >> file1.txt && git add file1.txt...
[dev 3f7af4f] dev commit
1 file changed, 1 insertion(+)
#ref(02.png)
上記のキャプチャを見て分かるとおり、devだけひとつリビジョ...
** ブランチのマージ [#c7877d94]
さて、devで修正した内容をmasterにマージします。マージとは...
修正を反映させたいブランチへ移動して、他のブランチを指定...
$ git checkout master
Switched to branch 'master'
$ git merge dev
Updating ad0dac1..3f7af4f
Fast-forward
file1.txt | 1 +
1 file changed, 1 insertion(+)
$ git branch
dev
* master [#fbf5598a]
今回は masterブランチにdevブランチをマージしました。ただm...
#ref(03.png)
** Fast-forwardでないマージ [#nc334ab4]
masterからdevを作成後、たとえばmasterが別のブランチをマー...
$ git checkout -b dev2
Switched to a new branch 'dev2'
$ echo "dev2 added " >> file2.txt && git add file2.txt &...
[dev2 134e253] dev2 commit
1 file changed, 1 insertion(+)
create mode 100644 file2.txt
$ git checkout master
Switched to branch 'master'
$ git merge dev2
Updating 3f7af4f..134e253
Fast-forward
file2.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 file2.txt
さあdev2を使って、masterのリビジョンを少し進めました。
#ref(04.png)
続いて、devも独自にリビジョンをすこしだけ進めておきます。
$ git checkout dev
$ echo "dev added " >> file1.txt && git add file1.txt &...
[dev 3f7a1ef] 2 dev commit
1 file changed, 1 insertion(+)
#ref(05.png)
上記キャプチャで分かるとおり、masterとdev2はおなじ場所に...
$ git checkout master
Switched to branch 'master'
$ git merge dev
Merge made by the 'recursive' strategy.
file1.txt | 1 +
1 file changed, 1 insertion(+)
#ref(06.png)
新しいコミットがひとつ実行され、Fast-forwardでないやり方...
今回はFast-forwardではないのでコミットメッセージを入れる...
$ git merge dev -m "Merge branch dev"
などとすればメッセージは表示されません。。
最後にdevをmasterまで進めて、完了です。
$ git checkout dev
$ git merge master
Updating 3f7a1ef..56f88d1
Fast-forward
file2.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 file2.txt
masterとdevはおなじ状態になりました。
#ref(07.png)
**まとめ [#g81261ad]
このように、あるブランチの修正をマージする場合、そのまま...
それらの修正がコンフリクトしない場合、gitが正しくマージ処...
[[6. マージでの衝突を解決する>http://www.backlog.jp/git-g...
** さいごに、リベースってなんだ [#zb00c773]
別のブランチの修正をマージするにあたって
$ git checkout dev
$ git merge master
とやることで、devブランチにmasterブランチの修正を反映させ...
#ref(08.png)
さてgit には リベースという概念があります。これはマージが...
$ git checkout dev
$ git rebase master
First, rewinding head to replay your work on top of it...
Applying: dev commit <- 3fc335e として新たにコミット...
Applying: dev commit <- 9210c21 として新たにコミット...
Applying: dev commit <- 09a6a5a として新たにコミット...
#ref(09.png)
このように、devのコミットがいったん待避されて((rewinding...
画面キャプチャからもわかるとおり、修正履歴が一直線となり...
また、ココではリモートへのpushの件は出てきませんが、リモ...
これらについては、[[こわくない Git>http://www.slideshare....
** マージとリベースの結果比較。 [#t89651a2]
devから派生した dev_#50, dev_#60があって並行で開発してて...
マージ・リベース直前の状態は下記の通り。
#ref(before.png)
***マージ [#o7781060]
ふつうにマージします。
$ git checkout dev_#50
$ git merge dev
マージされた更新履歴を含め、さらにdev側にマージします
$ git checkout dev
$ git merge dev_#50
#ref(merge.png)
マージなので、まずdev_#50 側では元々の更新履歴(5d630c3, f...
つづいてdevにそれを取り込む際、fast-forwardマージで更新分...
***リベース [#p4951555]
つぎにリベースです。
$ git checkout dev_#50
$ git rebase dev
反映された更新履歴を含め、さらにdev側にマージします
$ git checkout dev
$ git merge dev_#50
#ref(rebase.png)
今回はリベースなので、dev_#50側での更新がいったん待避され...
***比較のまとめ [#f7f1656e]
dev の側から見た時に「dev_#50がdev_#60での更新をこのタイ...
***追加で。 [#j6c43db8]
''ってわけで、上記でどっちでもイイかなと思ったマージとリ...
[[GitHub/マージとリベース]]
**関連リンク [#z8b7d3a5]
-[[Git初心者に捧ぐ!Gitの「これなんで?」を解説します。 |...
-[[サルでもわかるGit入門 〜バージョン管理を使いこなそう〜...
-[[Git の疑問。トピックブランチで作業中に、master ブラン...
-[[GitHubへpull requestする際のベストプラクティス - hnwの...
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: