LoginSignup
1
1

【Git】コミット履歴を残さずにGitHub経由でコードを共有する

Posted at

想定ケース

Gitについて、

  • 書きかけ・未完成のコードを他人へ共有したいけど、コミット履歴を汚すのはチーム的・個人的に良くないと思っている
  • 別のPCへコードを移したいけど、コミット履歴を汚したくない

方向けの記事です。コミット履歴を気にしていない方には関係かな。

簡単に

簡単に述べると、

  • (送信側が)捨てブランチにcommit&pushする

ことで共有ができます。GitHubなどで他人から見てもらうだけの場合は、用済みになったらブランチごと削除でいいですね。

もし、他ローカルへ移す場合はここからさらに、

  • (受信側が)対象ブランチにて、未完成コードをpushした捨てブランチをpull
  • (受信者が)そのまま最新のコミット履歴を削除して、一個前のコミットの状態へ戻る

こうすることで、コミット履歴を汚さずに他PCでも、その時点での開発ができます。こちらの場合も用済みになった捨てブランチを受信者のローカルとリモートからブランチごと削除。

コマンド

捨てブランチにcommit&push

捨てブランチの名前をtempとします

git checkout -b temp
git add *
git commit -m "temp"
git push origin temp

これでGitHubなどで、tempブランチにアクセスするとコードが見れます。

対象ブランチにて、未完成コードをpushした捨てブランチをpull

もしmainブランチで作業していたコードを共有していたとして、

git checkout main
git pull origin temp

mainブランチでtempブランチをpullすることによって、(コンフリクトがない限りは)mainブランチに中途半端コードを取り込めます。

そのまま最新のコミット履歴を削除して、一個前のコミットの状態へ戻る

git reset --mixed HEAD^

取り込んだコードを残したまま(--mixed)、一個前のコミット(HEAD^)までリセット(reset)するという意味ですね。これで中途半端コミットが開発中のブランチから消えます。

用済み捨てブランチを削除

ローカルから削除する場合は

git branch -D temp

ブランチ名間違えると大変なことになるので注意してください

リモートから削除する場合は

git push origin -d temp

ブランチ名間違えるともっと大変なことになるので注意してください

おわりに

いいね頂けると泣きながら喜びます><

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1