Git

[Git] 1回の`git push`で複数のoriginに送信する

普段GitHubを利用しているのですが、たまにサービス毎落ちるんですよねw
大抵の場合は仕事を切り上げる理由になって良いのですが、取り急ぎpushだけでもしたいといった場合に困るわけです。VCSはバックアップも兼ねてますからね。

そんなときに普段から別のリポジトリを作成し、バックアップ用に毎回pushしておきます。
コマンドは以下の通り。

$ cd (作業ディレクトリ)
$ git remote set-url --add origin git@github.com:katsube/example.git

正常に登録されたか確認しておきます。1-2行目が最初からあるもの、3行目が新たに追加した物ですね。

$ git remote -v
origin  git@github.com:katsube/original.git (fetch)
origin  git@github.com:katsube/original.git (push)
origin  git@github.com:katsube/example.git (push)

あとはいつも通りgit pushすれば自動的に2箇所にpushしてくれます。

$ git push

ここでは両方GitHubを使っていますが、BitBucketGitLabはもちろん自分が管理するサーバなどのリポジトリに必要に応じて置き換えて実行してくださいませ。
続きを読む

[GitHub] SSHの鍵を登録しパスワード入力を不要にする

GitHubを利用している際に、HTTPSでリポジトリをcloneしているとpushやpullをする際に毎回IDとパスワードの入力を求められます。一時的にメモリ上などにキャッシュすることも出来るのですが、一定期間が経過すると再び入力する必要があるため根本的な解決になりません。

$ git push
Username for 'https://github.com': katsube      
Password for 'https://katsube@github.com': 

そこで今回はGitHubにSSHで利用する公開鍵を登録し、アカウント情報を毎回入力せずに済む設定を行います。
続きを読む

Gitを使い始めたら一番最初にやりたい `git config`設定メモ

Gitで一番最初にやる設定をよく忘れるのでちょっとメモしておきます。

git config

Gitの設定を行うにはgit configコマンドを利用するか、設定ファイルを直接作成&編集します。

git configコマンドを実行すると自動的に設定ファイルが作成されます。すでに設定ファイルが存在している場合には、指定した項目が上書き保存されます。設定ファイル自体も以下のようにini形式のファイルとなっており、編集自体もそれほど難しくありません。

$ cat ~/.gitconfig 
[user]
    name  = Makito Katsube
    email = katsubemakito@gmail.com
[color]
    ui = true

また設定ファイルを設置する場所、またコマンドのオプションで影響範囲が変わりますので、複数人でチーム開発する際にはGitの設定をどうやって管理するかは事前に話し合っておく必要もあります。

影響範囲ファイルコマンド
システム全体/etc/gitconfiggit config --system (設定内容)
各ユーザー~/.gitconfig または ~/.config/git/configgit config --global (設定内容)
リポジトリリポジトリの .git/configgit config --local (設定内容)
※カレントディレクトリが各リポジトリのワーキングディレクトリである必要があります

同じ設定項目があった場合、リポジトリ内にある設定が最優先されます。

このページでは git config --global を前提としてご紹介します。
続きを読む