4

現在、次の方法で git を使用しています。

  1. クローン、レポをフェッチ
  2. 特定の問題のトピック ブランチを作成する
  3. それにいくつかのコミットを行います
  4. チェックアウト マスター ブランチ
  5. トピック ブランチを master にマージする
  6. 新しいマスター ブランチをプッシュする

残念ながら、これは時々混乱しています。私がやりたいことは、いくつかの小さなコミットを大きなコミットにマージすることです。

また、新しいブランチのすべてのコミットを 1 つのコミットにマージし、これを master にマージすることをお勧めします。

例:

git branch update-docs
git checkout update-docs
git add -A .
git commit -m 'updated networking doc'
git add -A .
git commit -m 'updated manager doc'
git checkout master
git merge update-docs

ご存じのように、マスター ブランチの「更新されたネットワーク ドキュメント」と「更新されたマネージャー ドキュメント」に 2 つのコミットがあります。

たとえば、これら 2 つのコミットの変更を含む「更新されたドキュメント」と呼ばれるマスター ブランチに 1 つのコミットのみが必要な場合は、どうすればよいですか?

この種のタスクには git rebase を使用する必要があると思います。使い方がわかりません。

私はすでに試しました:

git checkout master
git rebase update-docs

しかし、コミットを残さずにマスターへの変更をマージしたため、リポジトリが台無しになりました。

それで、誰かがあなたが使用しなければならないコマンドを共有してくれませんか?

解決:

git checkout -b update-readme
git commit -am 'rewritten readme'
git commit -am 'added author name'
git rebase -i master

テキスト エディタを開きます。

pick 6dbcbf1 rewritten readme
pick b815bbf added author name

これを次のように変更します。

pick 6dbcbf1 rewritten readme
squash b815bbf added author name

次に、vim を使用している場合は ":w" と ":q" で保存すると、新しいコミット名を定義できる別のエディターが開きます

rewritten readme

次に、レポをマージします。

git checkout master
git merge update-readme
4

1 に答える 1