【Mac】Homebrew インストールの Git でタブ補完、ブランチ表示をする設定

スポンサードリンク

環境

Homebrew でインストールした Git ですの。

$ brew info git
git: stable 2.10.1 (bottled), HEAD
... 略 ...

Git のタブ補完、ブランチ表示する設定コマンド

# Git のタブ補完、ブランチ表示する設定を追記
cat >> ~/.bashrc <<'EOF'
# ターミナルでタブ補完を有効
source /usr/local/etc/bash_completion.d/git-prompt.sh
source /usr/local/etc/bash_completion.d/git-completion.bash
# ターミナルにブランチ名を表示
GIT_PS1_SHOWDIRTYSTATE=true
export PS1='\h\[\033[00m\]:\W\[\033[31m\]$(__git_ps1 [%s])\[\033[00m\]\$ '
EOF

# 反映
source ~/.bashrc

“【Mac】Homebrew インストールの Git でタブ補完、ブランチ表示をする設定”の続きを読む

【Git】bare リポジトリで無いならば、push を受け入れないことを知りました

ポイント

“【Git】bare リポジトリで無いならば、push を受け入れないことを知りました”の続きを読む


スポンサードリンク

【Git】bare リポジトリをクローンして bare リポジトリとする方法

コマンド

# bare リポジトリとしてクローン
git clone --bare <repository>

“【Git】bare リポジトリをクローンして bare リポジトリとする方法”の続きを読む

【Git】新しく名前を指定してブランチを作り、そこにチェックアウトするコマンドメモ

# リモートブランチ名とは別名でチェックアウト
git checkout -b <branch> --track <remote>/<branch>

# 作成場所のコミットなどを指定してブランチを作成し、そこにチェックアウト
git checkout -b <branch> <commit>

“【Git】新しく名前を指定してブランチを作り、そこにチェックアウトするコマンドメモ”の続きを読む

【Git】任意のコミットにタグを打つ方法

コマンド

# コミットのチェックサムとタイトルを確認
git log --pretty=oneline

# 任意のコミットにタグを作成
git tag -a <tagname> -m <msg> <commit>

“【Git】任意のコミットにタグを打つ方法”の続きを読む

【Git】追跡対象としてきたファイルを .gitignore に記述しても反映されない問題の対処方法

問題の内容

今まで Git でバージョン管理してきたファイルのいくつかを、.gitignore に記述し、コミットいたしました。

次に、.gitignore に追記したファイルを編集いたしました。

そうしてから git status で状態を確認してみますと、modified と表示され、つまりは追跡対象ファイルとして扱われてしまっておりました><。

解決のポイント

  • 今まで追跡してきたファイルを .gitignore に追記してコミットしただけでは追跡対象外とならない。
  • .gitignore に記入すると同時に、追跡対象外としたファイルをインデックスから削除する必要がある。
  • 「ファイルをインデックスから削除」を実行した時点で、削除した状態がインデックスに記録される。したがって削除した内容を git add する必要はない。

“【Git】追跡対象としてきたファイルを .gitignore に記述しても反映されない問題の対処方法”の続きを読む

【Git】コミットやタグを指定して欲しいファイルだけを作業ディレクトリにチェックアウトする方法

コマンド・ポイント

# 指定コミットやタグから指定ファイルだけを作業ディレクトリにチェックアウト
git checkout <tree-ish> -- <paths>

“【Git】コミットやタグを指定して欲しいファイルだけを作業ディレクトリにチェックアウトする方法”の続きを読む

【Git】複数ブランチをマージするときに git diff の statt オプションが役立ちました♪

複数ブランチをマージするときのポイント

  • 変更量の多いブランチから取り込みたい
  • 変更量を確認するのに、マージ前に git diff –stat を使うと便利
  • 2つ目以降に取り込むブランチの変更量は徐々に減っていくため、取り込みば取り込むほど次第に楽になっていく。
  • ただし、これは精神的なもので、マージ内容、結果には影響を及ぼさない。
  • コンフリクト時は、git checkout –conflict=diff3 でコンフリクトマーカーを書き直す。
    自分たちの分 (ours)、相手側 (マージしようとしているブランチ) の分 (theirs)、共通 (両方のブランチの共通の祖先) の分 (base) の3つを表示する。

コマンド

# 変更量の統計を表示
git diff HEAD origin/feature --stat
# コンフリクトマーカーを書き直す。
# 通常のマーカーである "ours" と "theirs" に加え、"base" も表示
git checkout --conflict=diff3 .

“【Git】複数ブランチをマージするときに git diff の statt オプションが役立ちました♪”の続きを読む

【Git】バージョン管理したいファイルだけを .gitignore に記述する書き方

.git ディレクトリ以下のファイルはすべてバージョン管理されます。

無視したい、追跡対象外としたいファイルについては .gitignore ファイルを作成し、そこに記述することで管理しないようにできますの。

ブラックリスト方式ですわね♪

逆に、バージョン管理したいファイルだけをリストアップする、ホワイトリスト方式は可能なのかしら?

.gitignore ファイルの記述を工夫することで可能となりましたのでその方法をノートいたします。

ポイント

  • すべてのファイル、フォルダを無視するように設定する。
  • その上で、管理したいファイルを無視しない設定を付けて指定する。
  • 行頭に ! を付けることで無視しないように設定する。

“【Git】バージョン管理したいファイルだけを .gitignore に記述する書き方”の続きを読む

【Windows】【Git】ファイルサーバに作ったリポジトリを自分の PC で使う

ポイント

  • bare リポジトリでなくとも、リモートリポジトリとして扱うことが可能
  • ローカルリポジトリでファイルサーバ上にあるものを、ただ単に git clone すれば取得してリモートリポジトリとして扱うことが可能
  • bare リポジトリでないリポジトリを git clone するには、.git フォルダの置いてあるフォルダのパスを指定すればよい。

実践

“【Windows】【Git】ファイルサーバに作ったリポジトリを自分の PC で使う”の続きを読む