pull requestでは、ファイルの更新がかち合っただけでgitHubのWebページ上では編集できなくなる。
gitHubのヒントに、コマンドベースで解決する方法は載っているが、win上でtortoiseGitを使っている場合に面倒なので解決策を記してみる。
gitHubで出てくるコマンドはこんな感じ :
Step 1: Check out a new branch to test the changes — run this from your project directory
git checkout -b PushUser-master master
Step 2: Bring in PushUser's changes and test
git pull https://[email protected]/PushUser/projectname.git master
Step 3: Merge the changes and update the server
git checkout master
git merge PushUser-master
git push origin master
まずはローカルにあるgitを最新にする。全部pullアンド全部push.もちろんcommitは終わってること
- まずは右クリック→tortoiseGit→Switch/Checkout
- 出てきた画面、Switch To は masterを。 Option で Create New Branch にチェックをいれ、PushUser-master ブランチが出来る。
- Pullを開く。Remoteの欄は、Remote:ではなくArbitary URL:を選び、 https://[email protected]/PushUser/projectname.git を入れる。 SSH接続のため、gitHubのパスワードを入れるウィンドウが出る。gitHubのパスワードを入れる。
- (ここまででconfrictしていたらmargeすること。)
- commit。これが重要であるようだ。メッセージは自動生成のものを。この手順はコマンドだと省略。理由は不明(衝突時のみ必要?)
- 右クリック→tortoiseGit→Switch/Checkout して、 Branchの値をmasterにする。
- 右クリック→tortoiseGit→Switch/Merge して、From: Branch の値を PushUser-master にしてOK。Messageは自動生成のものでOK。
- いつものようにpushする。
いつも手順に迷うし、混乱してしまい結局sshでlinuxにログインして新しくcloneしてコマンド操作、ということが多くなってしまうのでメモした。 誰かの助けになれば、と思う。