マニュアル: Git

投稿日: 更新日: バージョン管理システム

基本的な流れ

masterからdevelブランチを切って作業する場合の大まかな手順です。

  1. ブランチを作成&移動: git checkout -b devel
  2. ブランチで作業
  3. 必要ならsquash
  4. masterにマージ
    1. git checkout master
    2. git merge devel
      • --no-ffを付けない場合、可能ならばfast-forwardを使います。

コミット

コミットメッセージ

Angular.jsの書き方が参考になります。

<type>(<scope>): <subject>

<body>

<footer>

実行権限の追加

git update-index --chmod=+x

クリーン(git clean)

必ず-i, -n, -fのいずれかのオプションが必要。 gitの他の多くのコマンドと違って、取り返しがつかなくなるから。

その他オプション。-xと-Xの違いはまだ良くわかってません。。。

リセット(git reset)

softはあまり使わないかも。mixed(デフォルト)か、hardがほとんどか。

リモートに強制的に合わせたい場合

リモートが正しいので強制的に合わせたいとき。 --hardなので当然ローカルの変更は破棄されるのに注意。 あとコメントも書いてますが、当然master以外の場合は変更する。

git fetch

# masterの場合
git reset --hard origin/master

チェックアウト(git checkout)

ブランチ(git branch)

1ファイルだけ別のブランチから取得

Git 1ファイルだけ別のブランチから持ってくる - Qiita

以下のようにする。

git show ブランチ名:ファイル名

タグ(git tag)

タグの削除

タグ名:

git tag delete {{ tag_name }}
git push origin :refs/tags/{{ tag_name }}

ログ(git log)

リモート(git remote)

リベース(git rebase)

一時退避(git stash)

検索(git grep)

Git - git-grep Documentation

サブモジュール

追加

git submodule add <repository> <path>

内部でやっていると思われること。

  1. リポジトリをclone
  2. リポジトリの情報を.gitsubmoduleに書き込む。
  3. リポジトリのハッシュをどこかに書き込む。

cloneはちょっとだけ特殊です。

更新

以下のコマンドが簡単です。 --remote--rebaseがついているのがポイント。

git submodule update --remote --rebase

付け忘れたり、コンフリクトした場合は、サブモジュールのディレクトリに行って、 rebaseなりmergeなりすればいいです。

Git - サブモジュール

.gitignore

基本的にはgiboで自動生成が良いようです。 例えば、Javaの場合は以下のようにします。

git Java >> .gitignore

対応している言語・ツールはgibo -lで表示できますが、 (自分が)よく使うものは以下になります。

グローバルで書く vs リポジトリに格納

基本は以下の判断基準でいいと思います。

gitignore に書くべきでないものは gitignore_global へ - Qiita

github/gitignore にあるか github/gitignore - Global にあるかで判断

github/gitignoreによると、 だいたい以下のように分かれているようです。

ただ、Visual Studioはグローバルではありません。 ツールの性質によるのか、他の理由なのかは謎です。

また、必ずしもこれを守らないといけないわけではないです(のはず)。 例えば、IDEの設定はリポジトリにあってもいいと思います。

属性(gitattributes)


暗号化

Subversion

連携(git svn)

変換


  1. Subversionだとsvn switchなので慣れないときはよく忘れました。 [return]
  2. Git - リモートブランチに『チェックアウトしたいブランチ名が(a)まだローカルに存在せず、(b)存在するリモートは1つだけ、の場合、Gitは自動的に追跡ブランチを作ってくれるのです。』と書かれています。 [return]
  3. git logでコミットの差分の中身で絞り込む - Qiita [return]

公式サイト

外部サイト

逆引きマニュアル


ページトップへ戻る