[Git][branch]習ったことを整理しましょう
3097 ワード
Exercise
V.S Non-Fast Forwardingの高速転送
$ git checkout -b iss53
上のchekoutコマンドでは、-bオプションは、次の2つのコマンドを一度に入力して実行するのと同じです.
git branch iss53
git checkout iss3
$ vim index.html
$ git commit -am 'added a new footer (issue 53)'
突然急用があったので、私はブレンチをマスターブレンチから出します.そのためには、まずは!!git checkout masterをするには
git checkout-bhotfixコマンドを実行して新しいbrenchを作成します.$ git checkout master
$ git checkout -b hotfix
そしてVimエディタindexを利用htmlファイルを生成します.$ vim index.html
$ git commit -am 'c4 fixed the broken email address'
ここでhotfix brunchとiss 53 brunchはmaster共通の親がコミットしたbrunchになることに注意してください.
メインレンチでマージしたいなら、まず$ git ckeckout master
$ git merge hotfix
Updating 6efd70b..f499d0c
Fast-forward
index.html | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 index.html
mergeでは4行目に「Fast-forward」が出てきます韓国語では早く風邪を引くという意味です
現在Master Brotchはhotfixブランチのcommitを指しています
しかも別のcommitじゃない!
私たちは前に合併したときに個別のコミットを生成しました!
Fast-forwardではマージコミットは発生しません.私はただあなたの主人に約束が誰なのかを単純に教えただけです.
hotfixとmaster brunchは共存する必要がないので、hotfixを削除します。(これはブレンジをよりきれいに管理する方法です)
$ git branch -d hotfix
Deleted branch hotfix (was f499d0c).
では、今から元のiss 53レンチの作業を再開しますか?$ git checkout iss53
$ vim index.html
$ git commit -a -m 'finished the new footer [issue 53]'
[iss53 ad82d7a] finished the new footer [issue 53]
1 file changed, 1 insertion(+)
$ git checkout master
$ git merge iss53
CONFLICT (add/add): Merge conflict in index.html
Auto-merging index.html
Merge made by the 'recursive' strategy.
index.html | 2 ++
1 file changed, 2 insertions(+)
「再帰」戦略の言葉を見ましたか.以前はFast-forward
issu 53は、masterからdoricに移行した後、masterがc 2からc 4に移行する.この場合Fast-forwardはできません
その襟は内部で動きます
1)Gitはマスターとiss 53の共通の祖先を見つける.3 waymergeという内部手法を用いて,c 4とc 5を加算し,この2つを加算した情報を教えてくれる.つまりC 6は下のショットのようになります.
上のC 6はC 5とC 4に関するすべての情報を持っている両親です.
FAST Forward VSRecorsive間の差異
1)Fast-Forward生成コミット(X)2;Recursive生成マージコミット(O)
ソース:https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%B8%8C%EB%9E%9C%EC%B9%98%EC%99%80-Merge-%EC%9D%98-%EA%B8%B0%EC%B4%88
Reference
この問題について([Git][branch]習ったことを整理しましょう), 我々は、より多くの情報をここで見つけました
https://velog.io/@hyeseong-dev/Gitbranch-배운거-정리-해봅시다
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
$ git checkout -b iss53
$ vim index.html
$ git commit -am 'added a new footer (issue 53)'
$ git checkout master
$ git checkout -b hotfix
$ vim index.html
$ git commit -am 'c4 fixed the broken email address'
$ git ckeckout master
$ git merge hotfix
Updating 6efd70b..f499d0c
Fast-forward
index.html | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 index.html
$ git branch -d hotfix
Deleted branch hotfix (was f499d0c).
$ git checkout iss53
$ vim index.html
$ git commit -a -m 'finished the new footer [issue 53]'
[iss53 ad82d7a] finished the new footer [issue 53]
1 file changed, 1 insertion(+)
$ git checkout master
$ git merge iss53
CONFLICT (add/add): Merge conflict in index.html
Auto-merging index.html
Merge made by the 'recursive' strategy.
index.html | 2 ++
1 file changed, 2 insertions(+)
Reference
この問題について([Git][branch]習ったことを整理しましょう), 我々は、より多くの情報をここで見つけました https://velog.io/@hyeseong-dev/Gitbranch-배운거-정리-해봅시다テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol