0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Git】Githubで共同開発しているときに空白を消してはいけない!?なぜ消してはいけないのか?その理由

Last updated at Posted at 2021-03-19

Githubで共同開発しているプロジェクトで、余計な空白があった場合に、消した方がキレイで見やすくなるじゃんと思って親切心で消したくなるが、他の人が作った空白は消してはいけない

不要な空白の例

空白は赤くハイライトされるから気持ち的には消したくなる、、

▼(例1)Githubのコードチェック
image.png

▼(例2)VSCode (pluginでハイライト)
image.png

消してはいけない理由

1. コードの責任者が変わる

親切心で空白を消してしまうと、そのコードの最終作業者が自分になってしまう。

例えばある関数の空白を一つ消すと、Git Lenseなどで表示される作業者が自分になるので、その関数の責任を自分が持っていることになってしまう

デバッグ時や問題があった時に、みんなが混乱する原因になる。

2. 変更済みファイルが増える

プルリクを出した時に、空白を削除しただけのファイルやコードがあると、そこも差分として表示されてしまう。

コードを確認する人からしたら、どこを触ったのかわかりにくくなり確認の手間が増える。


## プルリク(プッシュ)してしまった時の対処法 もしプルリク(プッシュ)した後に修正する必要性が出たら、以下で対応可能(他にもたくさんあるので一例として)

プッシュ済みの変更を確認しながら作業する必要があるため、一時的に現状をコピーしたブランチを作成。

# ブランチのコピーを作る(参照用)
$ git checkout -b 一時的なブランチ名

# 作業用ブランチに戻る
$ git checkout 作業用ブランチ名

# 作業前のコミットに戻す(変更内容も削除)
# git reset --hard <コミット番号>

あとは、git checkout <一時的なブランチ名>で中身を確認しながら、空白以外の変更点を記述指定けばOK。

▼注意点
ブランチを切り替えるときは、git stashで変更内容を待避させること。

# 作業中のブランチ
$ git stash 

$ git checkout <一時的なブランチ名>

# 作業中のファイルとの差分を確認
$ git diff stash@{0}

# 作業中のブランチに戻る
$ git checkout < 作業中のブランチ名>

# 待避した内容を呼び戻す(※コレ忘れがち!)
$ git stash pop

git stashして、自分のブランチに戻ってきたら、git stash popを忘れないこと。

git stash popする前にファイルを変更してしまうと、コンフリクトが発生して、待避内容を呼び出せなくなる。

git stash popできなくなってしまった時の対処法

# 直前のコミットの状態に戻す(stashの内容は消えない)
$ git reset --hard @
$ git stash pop

以上。
0
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?