2017-07-10 13 views
1

私は多くのローカルコミットをしたとしましょう。 私は最後のコミットを私のオンラインリポジトリにプッシュしたいと思いますが、他のユーザーに最後のコミットを見せたくありません。私はちょうど最後のバージョンをプッシュしたい。履歴なしのgitでプッシュコミット

ローカルコミットの履歴も保持したいと思っています。

ブランチを作成しなくても可能かどうか知っていますか?

おかげ

+0

私の答えがあなたを助けてくれたら、これを受け入れてください。そうすれば未回答の質問の隣に浮かびません。 –

答えて

3

は、私はあなたの現在のブランチがfooと呼ばれていると仮定します。

  1. git checkout foofoo -branchにいることを確認してください。
  2. git checkout -b foo-publicfoo-publicという名前の新しいブランチを作成し、それに切り替えます。
  3. git rebase -i barbarは、最初にコミットしたより前のコミットのハッシュです。
  4. 上記のコマンドは、テキストエディタを起動します。すべてpickのキーワードをsquash,に置き換えてください(最初はpickではありません)。
  5. エディタを終了し、もう1つが表示され、コミット名を入力するように求められます。必要に応じて、最後のコミットの名前を残すことができます。エディタを閉じます。
  6. ブランチfoo-publicを公開できるようになりました。コミットは1つだけあり、すべての変更が含まれています。 fooブランチにはまだ完全な履歴があります。
+1

ありがとうございます。コミットをgitlabにマージする方法があるかどうか知っていますか? – Bob5421

+0

はい。しかし、リモート履歴を書き換えることは、一般的には良い考えではありません。とにかくそれをしたいのなら、[この質問](https://stackoverflow.com/questions/5189560/squash-my-last-x-commits-together-using-git)を見てください。私の答えがあなたの問題を解決したらそれを受け入れてください。 –

+0

ありがとう、私は一人で働いています。ローカルリポジトリにマージせずに、リモートリポジトリのコミットをマージするには、単一のコマンドがありますか? – Bob5421