「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Github - Pull Request関連]]

*目次 [#y9c812e1]
#contents

*概要 [#g84113c0]
-Gitコンフリクト解消ガイド(git mergetoolの使い方) - Qiita~
http://qiita.com/yuya_presto/items/5d99499cf96c0ebb09f8

-Git で 削除したファイルのコンフリクト解消方法 - Qiita~
http://qiita.com/hshimo/items/93ac9f9d7c2d0d6729d6

-サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ
--競合の解決【変更履歴の統合】~
http://www.backlog.jp/git-guide/intro/intro5_2.html
--【チュートリアル3 変更履歴の統合】
---競合状態でプッシュする~
http://www.backlog.jp/git-guide/intro/intro6_1.html
---競合を解決する~
http://www.backlog.jp/git-guide/intro/intro6_2.html

*送付する側で解消(推奨) [#l6a699ed]

**[[pull>Gitコマンド#r6fe7f69]]を使った方法 [#q3c4bee9]

***方法 [#xa361faf]
-pullrequestの送付前に[[pull>Gitコマンド#r6fe7f69]] & [[push>Gitコマンド#ne215224]]する方法。
 git pull <remote>

-conflictは送付する側で解消する。

***特徴 [#sacff889]
-pullrequest送付先branchの最新の状態からcommitを取り込んだ状態になる。
-[[rebase]]と比べると、merge commitが混入して、ログが見難くなる。

**[[rebase]]を使った方法 [#fad7d873]

***方法 [#t2ac5a07]
-pullrequestの送付前に[[rebase]] & [[push>Gitコマンド#ne215224]]する方法。
 git pull --rebase <remote>

-conflictは送付する側で解消する。

***特徴 [#gdff2c28]
-pullrequest送付先branchの最新の状態からbranchした後にcommitした状態になる。
-pullrequest送付先branchの最新の状態から~
branchした後にcommitした状態になる。

-また、merge commitが混入せず、ログが見やすい。
-ずーっと、[[pull>Gitコマンド#r6fe7f69]] & [[push>Gitコマンド#ne215224]]で運用してきたrepository間で[[rebase]]すると、~
かなり昔まで遡ってのコンフリクト解決を強いられることになるので、~
その場合は、pullrequest送付先branchの最新の状態からbranchした後に[[rebase]]した方がイイ。

**再分岐する。 [#bb3c75ce]
pullrequest送付先branchから分岐し直して、ソコに修正を加える。

*送付された側で解消 [#k293a91c]

**解消例2 [#pe6a913a]
-最近は、[[GitHub上のGUIでコンフリクト解消できる>https://github.com/NetDevInfraWGinOSSConsortium/test_Public/pull/3#issue-323572840]]ようになっている。
-解消後、Pull Request送信元の Repository にも変更が反映される。

**解消例1 [#l0d2efbc]

***方法 [#v9a7e8a8]
[[Githubでコンフリクトが起きた時に提示される方法>https://github.com/OpenTouryoProject/OpenTouryo/pull/143#issuecomment-172694535]]
-pullrequestした先のrepositoryをcloneする。
-cloneしたrepositoryのパスに移動
-pullrequest先のbranchからbranchを作成
-作成したbranchにpullrequest元のbranchをpull(conflictする)
-作成したbranchでconflictを解消する(任意)
-解消後、作成したbranchでcommitする。
-branchを切り替え。分岐したbranchとmergeする。
-merge後に元のbranchをpullrequest先のbranchにpushする。
-これでpullrequestがマージされる。

※ 結局、[[Gitコマンド]]が必要になるので、覚えておいたほうが良い。

***手順 [#n3b18c14]

-pullrequestした先のrepositoryをcloneする。
 $ git clone https://github.com/OpenTouryoProject/OpenTouryo.git
 
-cloneしたrepositoryのパスに移動
 $ cd xxxxxxx (cloneしたパスに移動)
 
-pullrequest先のbranchからbranchを作成
 $ git checkout -b SymphonyTeleca-nishino develop
 
-作成したbranchにpullrequest元のbranchをpull(conflictする)
 $ git pull https://github.com/SymphonyTeleca/OpenTouryo.git nishino
 
-作成したbranchでconflictを解消する(任意)
 $ git status
 $ git rm root_easysetup/programs/C#/z_Common2.bat
 $ git rm root_easysetup/programs/VB/z_Common2.bat
 $ git status
 
-解消後、作成したbranchでcommitする。
 $ git commit
 
-branchを切り替える。
 $ git checkout develop
 
-分岐したbranchとmergeする。
 $ git merge --no-ff SymphonyTeleca-nishino
 
-merge後に元のbranchをpullrequest先のbranchにpushする。
 $ git push origin develop
 
-これでpullrequestがマージされる。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS