4
3

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 5 years have passed since last update.

Github最悪のpushコード(参考にしてはいけない)

Last updated at Posted at 2019-02-01

はじめに

ここでやっていることはあまり人様にお見せできるようなまともなことではありません。完全に自分ひとりしかいじることのないプロジェクトでpushするとき用にお使いください。なぜ参考にしてはいけないかは一番下に書いてあります。

使う人の想定

  • とりあえずなんでもいいから変更履歴残したい
  • 慣れてなくてaddcommitpushコマンドが覚えられない
  • 普通にコマンド打つのだるい
  • GUIツール覚えるのはそれはそれでめんどくさい

っていう人。

push用のスクリプト作成

まずはチートコードを作ります。コマンドライン上で以下を実行します。

touch push.sh
chmod 700 push.sh

上の説明

  • touchコマンドは上のように使うとpush.shという名前の空のファイルを作ることができます。
  • chmodコマンドは、指定したファイルを「どのユーザが読み書き実行のどこまでやっていいのか」の権限を指定することができます。今回は上のようにすることで、自分が読み書き実行できるようになります。(詳しくは[Linux][chmod] パーミッションを数値で指定する)

ファイルを作ったら中身を以下のようにします。

push.sh
git add .
git commit -m "更新"
git push origin master

上の説明

  • git add . で今いるディレクトリのファイルを全部commitする対象にします。
  • git commit -m "更新"でaddで対象にしたファイルを追加、変更、削除した履歴をローカル(自分のパソコン上)に保存します。
  • git push origin masterでcommitした履歴の内容をリモート(Githubなど)に保存します。

チートコードの完成。

Githubなどにあげたいディレクトリの設定

Githubなどにあげたいディレクトリの初期設定をします。あげるディレクトリまでcdコマンドで行き、以下を実行します。

初期化

git init
git remote add origin リモートリポジトリのURL

上の説明

  • git initで初期化をします。
  • git remote add origin リモートリポジトリのURLoriginが「内容をあげたいリモートリポジトリ(Githubなど)」だと設定できます。sshの設定をしてたらそっちのほうがいいけど、めんどうだったらhttpsで。

.gitignoreの設定

作成したpush.shをリモートリポジトリにあげたくないので、commitする内容には含めないよって設定します。以下の内容のファイルを作成します。

.gitignore
push.sh

そしてさっき作ったpush.shをmvコマンドであげたいディレクトリに持ってきて準備完了。

pushするとき

「よし、色々作ったぞ!!!Githubに作った内容をpushするぞ!!!」ってときに以下を実行します。

./push.sh

設定していたらGithubのパスワードとか求められますが、これでリモートリポジトリに内容をあげられます。楽ちん。

どうしてこの方法を参考にしてはいけないか

push.shは全ての行が気軽にやってはいけないことです。何故か?(もちろん、ちゃんと理解した上であえてやる分には何も言うことはありません)

git add .

.はディレクトリ全てのファイルを対象とするということです。もしも弄りたいファイル以外のファイルの内容が変わっててこれを実行すると、意図しない内容がcommitされてしまします。基本的にはgit add ファイル名でファイルを指定してaddするべきです。

git commit -m "更新"

もしも他の人がcommit履歴を見たときにコメントに「更新」ってあったら、「何をどうしたんだよおぉぉぉぉぉぉぉぉぉぉぉ、ふざけんじゃねぇよぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉ」ってなります。コメントには具体的にどういう変更をしたか書くべきです。

git push origin master

Githubにはブランチという機能があります。masterブランチは基本的に本番で使うような完成形が保存されるブランチです。なので、複数人の開発で誰かが他の人を無視してmasterにあげてたらその内容がちゃんとしたものでも「うわっ、勝手にいじられてるやんけ!」ってなります(まぁ、ちゃんとした開発環境ではそれができないように設定してあったりもしますが)。なので、基本的にはgit push origin 別のブランチ名で他のブランチにプッシュし、そこからプルリクエストを使ってmasterなどに反映してもらうようにするべきです。

いかがでしたか?今回は一人で使うプロジェクト用のpushスクリプトを作成しました。コマンドの意味をしっかり覚えてちゃんと使えるようになりたかったらこんなことやってないで毎回コマンド叩くなりGUIツール使うなりしてください!

4
3
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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?