SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windowsユーザー向けGit入門

Git操作の基礎

Windowsユーザー向けGit入門(2)


  • X ポスト
  • このエントリーをはてなブックマークに追加

ファイルの差分表示

 ファイルを修正し差分を表示してみましょう。リスト10はProgram.csを修正し、状態の表示と差分を取ったところです。

[リスト11]ファイルの差分表示
$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   Program.cs                                          ...(1)
#
no changes added to commit (use "git add" and/or "git commit -a")
$ git diff Program.cs                                               ...(2)
diff --git a/Program.cs b/Program.cs
index e0dde98..91ce32d 100644
--- a/Program.cs
+++ b/Program.cs
@@ -9,6 +9,7 @@ namespace ConsoleApplication
     {
         static void Main(string[] args)
         {
+            System.Console.WriteLine("ようこそ Gitの世界へ!!");
         }
     }
 }

 (1)によってProgram.csに修正があったこと(modified)が分かります。また、(2)のgit diffコマンドで差分を表示でき、"+"の行が追加されています。また、リスト12のようにコミットIDやファイル名を「...」でつないで、その間のログを表示することもできます。

[リスト12]ファイルの修正
$ git diff 1b45be...4b5f

ファイルの変更

 最後に変更をリポジトリに反映します。先ほどと同じくaddコマンドを使ってステージに登録した後にコミットします(リスト13)。

[リスト13]ファイルの修正
$ git add Program.cs
...
$ git commit
[master 4d5fcc3] コンソール表示の追加
 1 file changed, 1 insertion(+)
...

 また、すでにリポジトリに登録されているファイルに関しては、-aコマンドをつけることによって、git addコマンドを省略することができるショートカットになっています(リスト14)。新規作成されたファイルには適用できません。

[リスト14]ファイルの修正
$ git commit -a Program.cs

ファイルを削除する

 リポジトリに登録されたファイルを削除するには、git rmコマンドを利用します(リスト15)。この時点ではまだファイルの削除がステージされたにすぎません。削除を完了するためには、他の操作と同様にコミットする必要があります。作業ディレクトリにファイルを残したままにしたい場合は、--cachedオプションを指定できます。

[リスト15]ファイルの修正
$ git rm Class1.cs
rm 'Class1.cs'
...
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       deleted:    Class1.cs
#
$ git commit
[master 78c1a10] Class1.cs の削除
 0 files changed
 delete mode 100644 Class1.cs

$ git rm --cached Class1.cs // Class1.csを残しておきたい場合

ファイルを移動する

 リポジトリに登録されたファイルを移動するには、git mvコマンドを利用します。他の操作同様コミットで移動を完了します。

[リスト16]ファイルの修正
$ git mv Program.cs Program2.cs
...
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       renamed:    Program.cs -> Program2.cs
#
$ git commit
...

ステージングエリアについて

 Gitには作業ディレクトリ、ステージングエリア、リポジトリと3つの状態があることは前述したとおりです。これらの関連を示したものが図1になります。

 繰り返しになりますが、ステージングエリアとはコミット前の準備場所です。修正や移動、削除したファイルを直接コミットすることはできず、ステージングエリアにいったん登録する必要があります。操作が少々面倒にはなりますが、コミット対象を細かく制御できるメリットもあります。このあたりがSVNと異なる作法であって、混乱する元でもあります。まずは、3つの状態について意識することが、Gitを使いこなすためには重要だと思います。

図1:Gitの関連図
図1:Gitの関連図

まとめ

 初回として、Gitのセットアップ方法からCUIによるリポジトリ作成~変更までを駆け足で解説しました。まだローカルリポジトリのみの操作説明で、SVNとの違いが明確になってきていませんが、次回以降でGUIによる操作説明、リモートリポジトリなどについて順を追って解説していきます。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Windowsユーザー向けGit入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト statemachine(statemachine)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7117 2014/04/14 18:18

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング