git stash を使って作業開始時に毎回行う同じ作業(設定修正など)を楽にする

スポンサードリンク


Git で管理しているプロジェクトで、新しく開発作業を始めるたびに一部ファイルの設定部分をローカル開発用に修正する必要がございました。

一旦該当ファイルのバックアップを作り、設定部分を書き換えればよいですの。

ただ、辛いですの><。

リモートリポジトリに push する前に設定ファイルを元に戻す必要があり、面倒ですの><。

そして次の作業に入るときに設定ファイルをローカル開発用に再度変更する必要があり、面倒ですの><。

Git を使って少しでも楽ができないかしら?

以前触ってみて使い途がわからなくなっていた git stash が使えましたので、ご紹介いたします♪

環境

  • OS X 10.11.4 (15E65)
  • git version 2.7.4 (Apple Git-66)

開発作業を始める時の状態

“git stash を使って作業開始時に毎回行う同じ作業(設定修正など)を楽にする” の続きを読む

【Atom】【Windows7】Merge Conflicts の Git Path を正しく設定して確認する方法

はじめに。経緯など

  • merge-conflicts は便利なのだが、説明ページと比べて動きが違うことに気がついた。
  • きっと設定が足りていないに違いないと見てみたら、Git Path が設定されていなかった。
  • Git Path の設定につまづいたため、やり方をメモしておく。
  • Windows 7 Professional 32 bit
  • Atom 1.6.1
  • Merge Conflict 1.4.1
  • Git 2.8.0.windows.1

ポイント

  • Git Path には C:¥Program Files¥Git¥bin¥git.exe というように git.exe も含めたフルパスの場所を指定する。
  • パッケージ > Merge Conflicts > Detect で設定の合否を確認できる。
  • OK なら、右上に青いポップアップが出現し、[Nothing to Merge No conflicts here!] と表示される(コンフリクトがない前提)。

“【Atom】【Windows7】Merge Conflicts の Git Path を正しく設定して確認する方法” の続きを読む

【Git】失敗しても元に戻れるようにマージする

おそるおそるマージするときに使ったコマンドです。

コマンド

# コミットしないでマージ
git merge --no-commit <branch>

# マージの取り消し
# (最新コミットに作業ディレクトリを戻す)
# (push 前なら安全)
# HEAD: 最新のコミットに対するハッシュ値の別名
# ORIG_HEAD: 最新の一つ手前のコミットに対するハッシュ値の別名
# ORIG_HEAD と HEAD を使い分けると良さそう。
git reset --hard ORIG_HEAD

“【Git】失敗しても元に戻れるようにマージする” の続きを読む

【Git】任意のコミットからブランチを生やして派生させる方法

過去の主店のコミットに戻って、そこから別の作業をしたい!そんな時の Git 操作ですわ♪

コマンドまとめ

# コマンドのハッシュを調べる
git log --all --decorate --graph --oneline

# コミットに移動
git checkout <hash>
# ブランチを作りチェックアウト
git checkout -b <branch-name>

# 指定コミットにブランチを作りチェックアウト
git checkout -b <branch-name> <hash>

“【Git】任意のコミットからブランチを生やして派生させる方法” の続きを読む

【Git】クローンしたリポジトリの master 以外のブランチを追跡する方法

リポジトリをクローンすると、HEAD は master を指しています。他のローカルのブランチは、ありません。

実際に作業をするときは、master ではないブランチから始めたい、そんなことがよくありますの。

この場合、作業を開始したいコミットへチェックアウトして、ブランチを作成してそのブランチへチェックアウトすることになりますわ。

その手順をまとめます。

コマンドまとめ

# リモートリポジトリのブランチが指す場所にチェックアウト
git checkout <remote>/<branch>
# ブランチを作成してチェックアウト
git checkout -b <branch>

# リモートリポジトリのブランチが指す場所に新しくブランチを作成してチェックアウト
git checkout -b <branch> --track <remote>/<branch>

# <remote>/<branch> の <branch> と同じ名前を付ける場合は次で OK
git checkout --track <remote>/<branch>

“【Git】クローンしたリポジトリの master 以外のブランチを追跡する方法” の続きを読む

【Git】リモートリポジトリ URL を調べて、その URL でクローンする手順

今まで自分がアクセスしていたリモートリポジトリを調べて、それで他の人に git clone していただきたいですの。

または、別の端末で続きを進めることになったため、今作業中のプロジェクトのリモート URL を調べておきたいですわ。

普段は origin で済ますことができたるため、URL をよく忘れてしまいますの><。

コマンドまとめ

# リモートリポジトリ名の一覧
git remote show
# リモートリポジトリの詳細
git remote show <remoterepository>



# リモートリポジトリをクローン
git clone <repositoryurl>

“【Git】リモートリポジトリ URL を調べて、その URL でクローンする手順” の続きを読む

【Git】【Windows】diff で Excel の違いを見られるようにする方法

環境

  • Windows7 Professional 32bit
  • git version 2.7.2.windows.1

1. Go 言語および git-xlsx-textconv の導入

“【Git】【Windows】diff で Excel の違いを見られるようにする方法” の続きを読む

【Git】–no-ff オプションを付け忘れたマージをやり直す方法

git merge --no-ff <branchname> とするところを間違えて git merge <branchname> と –no-ff オプションをつけ忘れて実行してしまいました><。

今回は、git の過去を改変して –no-ff オプションをつけたマージをやりなおす方法をノートいたします。ローカル環境です。

解決のポイント

  • git reflog でマージ前に戻る。
  • git reset --hard HEADgit reset --hard ORIG_HEAD では解決できなかった。
  • git reset --hard MERGE_HEAD だったら上手く解決できたのかもしれない(未検証)。

補足

  • HEAD: 最新のコミットに対するハッシュ値の別名
  • ORIG_HEAD: 最新の一つ手前のコミットに対するハッシュ値の別名
  • MERGE_HEAD: マージされたブランチの最新のコミットに対するハッシュ値の別名

“【Git】–no-ff オプションを付け忘れたマージをやり直す方法” の続きを読む

【Git】stash などを使わなくてもマージやブランチ操作ができるケース

状況

  1. ブランチでコミット、作業完了
  2. master ブランチへマージし忘れた。
  3. 別の作業を開始して、編集途中。ファイルのへの変更などが既に保存されている。作業ディレクトリには変更があるがステージへは追加していない。

こんな時、ブランチで作業完了時点で master へマージして、新しいブランチを作って作業するべきだった><、とか、だから stash して辻褄を合わせなきゃ><、とか思っておりました。

しかし、特別な退避操作は必要ありませんでした。

作業ディレクトリは編集途中の状態のまま、マージやそのためのチェックアウトをすることができました。

“【Git】stash などを使わなくてもマージやブランチ操作ができるケース” の続きを読む

【Git】修正した一部分だけを直前のコミットに含める方法

やりたいこと

  1. コミット終了、次の作業へ Go!
  2. ファイル編集中に、前回コミットに含めるべき修正に気がついた><。

編集した一部分のみ直前のコミットへ含め、その後、残りの修正を普通にコミットしたい。

使用する Git コマンド

# 対話的にハンクをインデックスへ追加
git add --patch <pathspec>

# 直近のコミットを変更してコミット
git commit --amend
  • ハンク: 変更点の塊のこと

“【Git】修正した一部分だけを直前のコミットに含める方法” の続きを読む