gitで認証情報を保存

GitHub等のリモートリポジトリからPull等をする場合、認証情報を保存していない場合、毎回ユーザー名とパスワードを入力する必要があります。

次のコマンドを実行してからgit pull等を行うと、その際に入力した認証情報が保存されるため、 次回以降の認証を省略することができます。

$ git config --global credential.helper store

ちなみに一旦設定した認証情報をリセットするには

$ git config --global --unset credential.helper

とします。

既にコミットしたファイルを.gitignoreに追加

既にコミットしたファイルを.gitignoreに追加しても、自動的に除外してくれません。除外するには、以下のステップを実施します。

まず、.gitignoreに除外したいファイル(/path/to/file)を追加します。

$ vim .gitignore

.project
.settings/
/path/to/file

次に、gitのキャッシュをクリアします。

$ git rm --cached /path/to/file

最後に変更をコミットします。

$ git add .gitignore
$ git commit -m "Add /path/to/file to .gitignore"

WindowsにGitをインストール

Windowsでgitコマンドを利用できるようにする手順のメモです。

GitにはWindow用のインストーラーが用意されています。GitのWebサイトのダウンロードページから「Download for Windows」ボタンをクリックしてダウンロードします。

画面は次のページに切り替わりますが、同時にダウンロードが始まります。ダウンロードしたインストーラーを実行すると、インストールためのウィザードが表示されます。「Next >」ボタンをクリックして次へ進めていきます。

「Use a TrueType font in all console windows」をチェックすると、日本語が文字化けしてしまうのでチェックしないよう注意します。

PATHを汚したくなくGit Bashを使ってのみgitコマンドを実行する方は、「Use Git from Git Bash only」を選択するのが良いと思います。通常は既定の「Use Git from the Windows Command Prompt」で問題ないと思います。パッケージが提供する追加のUnixコマンドもコマンドプロンプト上て利用したい場合は、3つ目を選びます。

次に、ファイルのコミット時やチェックアウト時に、改行コードを自動的に変換するかの設定を行います。既定では、一番上の自動変換が選択されていますが、最近のIDEやテキストエディタはUNIXのスタイルであるLFに対応していますので、不要な混乱を避けるために「Chekout as-is, commit as-is」を選択することをおすすめします。開発の際は、常にLFを使用するようにします。

次に、Git Bashで使用するターミナルエミュレーターを選択します。特にこだわりがなければ、規定値で高機能な「Use MinTTY」で良いと思います。

最後に追加オプション設定をします。一つ目は、パフォーマンスの向上を図るためのキャッシュ機能を利用するかの設定です。二つ目は、リモートリポジトリに接続する際に使用する認証情報を、バックエンドで保存する機能を有効化するかの設定です。通常は、どちらも選択して問題ないと思います。「Install」ボタンをクリックするとインストールが開始します。

以下の画面が表示されれば、インストールは完了です。

Gitでリモートリポジトリを移行する方法

Gitでリモートリポジトリを他のサーバーに移行するには、以下の様に行います。

まず、既存のリポジトリから–bareオプションを指定してcloneします。

$ git clone –-bare ssh://user@oldserver/repo.git

次に、新しいリモートリポジトリに対して–mirrorオプションを指定してpushします。

$ cd repo
$ git push –-mirror ssh://user@newserver/repo.git

以上で、全てのブランチとタグを含んだ、リポジトリの移行が完了します。上記の例では通信プロトコルとしてsshを選択していますが、他でも同様です。

gitコマンドのまとめ

過去のリビジョンにタグを付ける

タグの作成

$ git tag -a <Tag> <Revision> -m <Message>

作成したタグをリモートにプッシュ

$ git push origin --tags

リモートリポジトリを変更

$ git remote set-url origin ssh://user@server:/path/to/repo.git

リモートリポジトリのリビジョンを取得

$ git ls-remote ssh://user@server:/path/to/repo.git <Tag>

ブランチの削除

ローカルリポジトリにあるブランチを削除

$ git branch -d <BranchName>

対応するリモートリポジトリにあるブランチを削除

$ git push --delete origin <BranchName>

変更の取り消し

コミット前の変更を取り消す

$ git checkout .
Top