カテゴリー
コンピューター

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

ポイント

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

実践

カテゴリー
コンピューター

【Git】コンフリクトが発生する3つのブランチのマージをしたときの記録とポイント

概要

共通の祖先をもつ3つのブランチをマージしたい

  • origin/feature1
  • origin/feature2
  • origin/feature3

  • feature1-2-3

へとマージしたいですわ。

なお feature1-2-3 は master からチェックアウトしたマージ専用のブランチですの。

マージ手順概要

  1. master ブランチで feature1-2-3 ブランチでを作成
  2. feature1-2-3 ブランチにチェックアウト
  3. origin/fiature1 をマージコミットを作成してマージ
  4. origin/feature2 を –no-commit 指定でマージ
  5. コンフリクトを解消してコミット
  6. origin/feature3 を –no-commit 指定でマージ
  7. コンフリクトを解消してコミット

気がついたこと

  • ローカルブランチを改めて作成する必要は無い。リモートリポジトリの追跡ブランチ (fetch した状態) からマージ可能だった。
  • マージするときは、origin/feature1 といったリモートリポジトリのつ追跡ブランチを直接指定すればよい。
  • コンフリクトの解消は、Atom の merge-conflicts を使用した。過度に自動的にならず、Git のマーカーのハイライトとそのカウントに特化していて使いやすかった。

使用したコマンドまとめ

カテゴリー
コンピューター

【Git】Windows での開発時に改行コードを揃えるように設定し、既存コードに反映する方法

改行コードの Windows の Git のデフォルト設定での場合、CRLF でチェックアウトされます。

この状態ですと例えば CentOS のキックスタートファイルやシェルファイルで CR 部分が文字列として追加されてしまいます。

これによって、ファイルやディレクトリ作成時、意図しない名前となり、エラーとなってしまいました><。

今回、このエラーを回避した Git の操作テクニックを、2 つノートいたします♪

ポイント

  • .gitattributes でプロジェクトの改行コードを制御
  • 一旦ファイルを削除することによって、既存ファイルへ改行コード設定を反映
カテゴリー
コンピューター

【Git】fatal: mmap failed: Invalid argument エラーでステージングできないときの対処

対処方針

  • git add するファイルを少なくして再度実行していく。
  • 複数回に分けてインデックスに登録することでエラーの発生するファイルを特定する。
  • エラーの発生するファイルを除いて、コミットする。

エラー原因

カテゴリー
コンピューター

【Git】コミット間の差分のディレクトリ、ファイルを圧縮して取得する

ポイント

  • git archivegit diff を組み合わせる。
  • git archive –format=zip –output= `git diff –name-only `
  • git diff --name-only <commit1> <commit2>
    • –name-only: 差のあるファイル名のみを出力する。
  • git archive --format=zip --output=<file> <tree-ish> <path>
    • コミットをアーカイブ出力する。
    • –format=zip: 指定したファイル形式で出力する。
    • –output=: 指定したファイル名で出力する。
    • : 指定したコミット、ブランチ、HEAD などを出力する。
    • : 指定したパス、ファイルを出力する。
カテゴリー
コンピューター

【Git】マージでコンフリクトが発生するかどうかを調べる方法

ポイント

  • 実際にマージを、安全に、行ってみることでコンフリクト発生を調べる。
  • git merge --no-commit <branch>: 現在のブランチに指定ブランチをマージしステージングを行うが、コミットはしない。
  • git merge --abort: マージを取り消し、マージ前の状態にステージングと作業ディレクトリを戻す。
カテゴリー
コンピューター

【Git】作業を全て捨ててコミット時の状態に作業ディレクトリを戻す方法

ポイント

  • 次の2つのコマンドを使用する。
  • git reset --hard : ステージングと作業ディレクトリをリセットし、直前のコミット状態に一致させる。
  • git clean -df : 追跡対象外のファイルとフォルダを削除
カテゴリー
コンピューター

【Git】お手軽にリモートリポジトリを作成し、使ってもらう手順

GitHub といったホスティングサービスや、自由に使える Linux サーバーが無い、そんな環境に遭遇いたしました。

この場合当然、便利なリモートリポジトリが使えません><。

ただし、リモートリポジトリ自体が使えないかと言われれば、まだ可能性はございます。

ファイルサーバがあれば、これをリモートリポジトリとして使用することが可能ですの!

今回、既存のローカルリポジトリからリモートリポジトリを立て、他のメンバーに使ってもらうところまでのやり方をノートいたします♪

git コマンドまとめ

# ローカルリポジトリから bare リポジトリを作成
# .git ディレクトリの1つ上のディレクトリに移動して実行すること
git clone --bare <local> <bare>.git

# origin という名前でリモートリポジトリを登録
git remote add origin <remote_repository_url>
# リモートリポジトリの内容を確認
git remote show origin

# リモートリポジトリを取得
git clone <remote_repository_url>
カテゴリー
コンピューター

はじめての GitHub 体験記

GitHub に今まで書いたコードまとめておけば、再利用するときに楽ができるかしら、と思いました。

今まで GitHub を触ったことがありませんでしたので、今回使用してみた流れを残しておきますの♪

やってみること

Packer で Vagrant 用の最低限の OS Box を作成するコードを幾つか書いてまいりました。これを GitHub へホスティングしようと思います。

今回は、CentOS 5 の Box 化コードをホスティングした時の手順を残しますわ♪

ポイント

  • GitHub はリモートリポジトリと同じように使用できる。サイトに様々な機能があるが、ひとまず無視して良い。
  • コラボレーションしないならば、ただのリモートリポジトリとして使うのが楽。

GitHub を使う時の流れ

  1. GitHub サイトでリポジトリを作成
  2. ローカルに GitHub リモートリポジトリを clone
  3. ローカルで作業し、完成など一区切り付ける。
  4. GitHub リモートリポジトリへ push

最初に GitHub でリポジトリを作成し、次にそれをローカルに持ってくる、というのがポイントでしたの。

逆の、ローカルで作成したリポジトリを GitHub へアップロードする、というのは、実はできるのかもしれませんけれどもわかりませんでしたわ。

カテゴリー
コンピューター

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

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

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

ただ、辛いですの><。

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

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

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

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

環境

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

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