LoginSignup
51
56

More than 5 years have passed since last update.

逆引き EGit

Last updated at Posted at 2013-08-09

はじめに

逆引き EGit へようこそ!

こちらは「git コマンド使ってもいいんだけど、Eclipse を常用してると git に移るのが面倒」という理由で EGit を使ってる筆者による逆引き形式のメモ書きです。

  • 現在 EGit の最新バージョンは 3.7 です
  • 次バージョン 4.0 のリリースは2015年6月予定です

なお、git でよく使う操作はだいたい EGit でできますが、git コマンドを使わないと出来ないことが、どーしても出てくるので、そこは諦めましょう。

英語でもいいから公式のドキュメントないの?

EGit/User Guide - Eclipsepedia

コミット前の変更点を捨てたい

Subversion でいう revert。

[Replace With] > [HEAD Revision] すると、ローカルでの変更点を捨てられる。捨てるときに確認ダイアログが出てこないので注意。

変更があったファイル一覧を出して、個別に捨てたい場合は、[Compare With] > [HEAD Revision] して Git Tree Compare を表示してから、個別に捨てるといい。

コミット済みのファイルをバージョン管理から外す (git rm , gitignore)

[Team] > [Untrack] して [Team] > [Ignore] する。

ファイルの場所によっては EGit では出来ないことがある。その場合はコマンドラインで git rm を使う。この時、手元のファイルも削除されてしまうことに注意。

Pull したらコンフリクトした

あとでかく

ブランチを切り替えたい (git checkout )

[Team] > [Switch To]

リモートブランチを削除したい (git push origin :)

  1. [Team] > [Remote] > [Push...] でダイアログを開く
  2. [Next]
  3. Add delete ref specification で Remote ref to delete を指定して、すぐ右にある [Add spec] を押し、[Next]
  4. プッシュ予定の内容が表示されるので、確認して Finish!

マージのコンフリクトを解消する

  1. コンフリクトしたファイルを確認する。両方向き矢印 ←→ が付いているファイルがコンフリクトしたファイル。スター * が付いているファイルはコンフリクトしていない。
  2. ファイルごとに解決。コンフリクトしたファイルを開いて >>>> やら ==== やらを手がかりに手直しした後、ファイルを右クリックして [Team] > [Add to Index] すれば、他のファイルと同じように * になる。もし元のファイルと同じ内容に戻った場合は * がつかない。いずれにせよ←→は消える。
  3. 仕上げ。全てのコンフリクトしたファイルから ←→ が消えたら完全解決まで後一歩。通常のコミット時と同じように [Team] > [Commit] でコミットすれば完了。

マージコミットを作る (git merge --no-ff)

  1. [Team] > [Merge...] でマージの設定を開く
  2. マージするブランチを選ぶ
  3. "Fast forward options" で "If a fast-forward, create a merge commit" を選んでマージ
  • EGit 2.3 以降
  • History ビューなどで操作するとできない

タグを作って共有する (git push --tags)

git では、タグを作って普通にプッシュしても反映されない。明示的にタグをプッシュしないといけない。

  1. ヒストリーで、タグを打ちたいコミットを右クリックして [Create Tag...]
  2. タグの名前と、タグの説明文を入力して [OK]
  3. プロジェクトを右クリックして [Team] > [Remote] > [Push...]
  4. リポジトリの URL が合っていることを確認して [Next]
  5. 真ん中右の方にある [Add All Tags Spec] をクリックして [Next]
  6. タグ追加の結果(予定)が表示されるので、確認して [Finish]

昔に帰りたい (git checkout か git reset など)

昔に帰りたいというのは、タイムマシンで昔の様子を見に行って、また現在に戻ってきたいのか、これまでに積み上げた数コミットを捨ててやり直したいのか、どっち?

前者
1. ヒストリーから、該当時点のコミットを選んで右クリックして [Checkout]

後者(捨てたコミットは保険として残るけど、基本的には捨てた扱い)
1. ヒストリーから、該当時点のコミットを選んで、右クリックして [Reset] > [Hard]

リベースしたい (git rebase master topic)

master ブランチの上に topic ブランチをリベースする場合。

topic ブランチを書いている間に master ブランチが進んでしまったときとかに使う。

topic ブランチに切り替えた状態で、次のどちらかの操作を行う。
1. パッケージエクスプローラから
a. [Team] > [Rebase...] で Local の master を選んでリベース
1. ヒストリーから
a. master ブランチを右クリックして [Rebase on Top of]

コミットをまとめたい (git rebase -i) since 3.2

ヒストリーから対象のコミットを右クリックして [Rebase Interactive]

プッシュ前のまずいコミットを歴史から消し去りたい (git rebase -i)

直前のコミットであれば EGit でも何とかなるが、そうじゃないと EGit では難しい。おとなしくコンソールで git rebase -i を打ったほうがいい。

直前のコミットの場合…

  1. 消し去りたい情報を削除する
  2. パッケージエクスプローラから [Team] > [Commit]
  3. ダイアログ右上の、三角に矢印がついたボタン (Amend Previous Commit) を押す
  4. コミットする

改行文字を強制したい (.gitattributes)

対応してない!!!こんなバグレポートが上がっている。

非対応

考え中

特になし

番外編

EGit をバージョンアップする

  1. メニューの [Help] > [Install new Software...]
  2. 右上の Add ボタンから EGit の更新サイトを登録する
  3. 適当に選んで選んでアップデートする。以下のあたりを選べば大丈夫かも。
    • Eclipse Git Team Provider
    • Eclipse Git Team Provider
    • JGit
    • Java implementation of Git

参考:

更新情報を得る

ここからどうぞ>http://wiki.eclipse.org/EGit/New_and_Noteworthy

51
56
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
51
56