55405


いつもお世話になっております。  
下記の質問についてご存知の方がいらっしゃいましたらご教示を願います。

* * *

### 【質問の主旨】

自分で管理しているサーバーにあるGitのコミットナンバーと、GitHubで管理しているコミットナンバーを揃えるためにはどうすれば良いでしょうか？

### 【質問の補足】

1\.

自分で管理している直近の`$ git log`は以下の通りです。

[code]

    commit 26b33ecb18a8052c9190638f25e6d42a1307c0ff
    Author: echizenya <hoge@gmail.com>
    Date:   Fri May 31 16:46:47 2019 +0900
    
        header.phpの調整
    
    commit 939de52ad7f58606cf0434ccdd8b6bab846d399b
    Author: echizenya <hoge@gmail.com>
    Date:   Fri May 31 16:03:43 2019 +0900
    
        WP Super Cacheの更新
    
    commit b52ce1c244b045239d66439022830f939d0b94a3
    Author: echizenya <hoge@gmail.com>
    Date:   Fri May 31 16:02:52 2019 +0900
    
        header.phpの確認
    
    commit 05c4881ee4a178da68514a2bc706a05e1f46d4d7
    Author: echizenya <hoge@gmail.com>
    Date:   Wed May 29 18:39:53 2019 +0900
    
        WP Super Cacheの更新
    
[/code]

2\.

一方、GitHubで管理している直近の`history`は以下のURLです。  
<https://github.com/echizenyayota/e-yota/commits/master/wp-content>

3\.

両者を比較すると、先頭の「header.phpの調整」のみコミットナンバーが異なります。これはheader.phpを誤って記述してしまい、「ごちゃごちゃ」と編集してコミットしたため、差異が生じたためです。

  * 自分のサーバー → 26b33ec
  * GitHub → a95576c

4\.

現在、自分のサーバーからGitHubに向かってpushすると以下のエラーが発生します。

[code]

    # git push origin master
    To https://github.com/echizenyayota/e-yota.git
     ! [rejected]        master -> master (non-fast-forward)
    error: failed to push some refs to 'https://github.com/echizenyayota/e-yota.git'
    hint: Updates were rejected because the tip of your current branch is behind
    hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
    hint: before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    
[/code]

5\.

最終的には、自分のサーバー・GitHubともに`939de52ad7`で揃えたいと考えています。  
その後、自分のサーバー側で新しく編集をした場合、GitHubに向かってpushして、サーバーで編集した内容をGitHubにも反映させたいと考えています。

* * *

以上、ご確認よろしくお願いします。


CC BY-SA 4.0
2019-05-31T08:59:28.363
55404
2019-05-31T09:09:31.403
32232
question
git github
GitとGitHubのコミットナンバーを揃える方法を教えてください


他に`clone`している人がいない（＝履歴を書き換えても誰も困らない）ことが分かっているのであれば

[code]

    git push -f origin master
    
[/code]

してしまうのが手っ取り早いです。`-f`オプションはリモート（今回の場合はGitHub側）の履歴を無視して、ローカル（自分のサーバー）の内容を強制的に送り込むものです。

なお、コミットナンバーではなくコミットIDと呼びます。


CC BY-SA 4.0
2019-05-31T09:09:31.403
55405
2019-05-31T09:09:31.403
4236
55404
answer