1

私が唯一の開発者であるプロジェクトにプライベート github リポジトリを使用しています。

昨日、最新の変更を github にプッシュした後、ローカル コミットのいくつかをリベースして、少し整理することにしました。Github のリベース チュートリアルに従いましたが、上部の警告に注意を払いませんでした。

警告:すでにリモート リポジトリにプッシュしたコミットをリベースすることは、悪い習慣と見なされます。そうすることは、gitの神の怒りを引き起こす可能性があります。

いくつかのコミットを押しつぶした後、プッシュを試みたところ、次のようになりました。

$ git push origin master
To git@github.com:me/my-repo.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:me/my-repo.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

わかりました、リモートの変更をマージしてほしいのですが、何も行っていないので無視します。ヘルプ セクションを見ると、次の方法でプッシュを強制するオプションがあるようです。

git push --force

他の誰もリモートリポジトリに触れておらず、最後のプッシュとリベースの間に変更がないことを考えると、これを行っても問題ありませんか、それともまだ結果がありますか?

4

2 に答える 2

3

強制的にプッシュする必要があります。あなたがやっていることは、以前のコミットにさかのぼって「git reset」を行い、より少ない「よりクリーンな」コミットで作業をやり直すこととほとんど同じです。あなたが唯一のユーザーである限り、それを行ってください。どこかのディレクトリにぶら下がっているリモートのローカルコピーはすべて、リモートと競合することに注意してください。再度作業する前にクローンを作成する必要があります。もう1つの警告は、強制プッシュで吹き飛ばしたコミットの1つにコードがあったことに気付いた場合、それを取り戻すことはできないということです.

于 2013-09-30T14:13:02.103 に答える
2

貢献者はあなただけなので、はい、大丈夫です。

その間に他の誰かがレポをプルした場合、問題が発生しますが、そうではないため、プッシュを強制しても安全です。

とはいえ、私たちが共有しているレポでそのようなことをしたことがあれば、私はあなたを見つけます.

于 2013-09-30T14:12:59.493 に答える