解説

Gitを使う上での一般的な使い方の纏め。 Gitとは、バージョン管理システムのことで、Git以外にも「svn」のような類似システムが存在する。 どのような開発を行うにしても、使用しないという選択肢は存在しないだろう。
更新日:2019年10月8日

通常の使用方法

コラボせずに、自身のみでバージョン管理する時の方法を示す。 ここでの前提は、ブランチによる作業や、差分のマージ等をしないこと。
  1. プロジェクト作成時のコマンド
    
    
    		// 監視したいプロジェクトのフォルダに移動する。
    		cd <プロジェクト・フォルダ>
    
    		// Gitによるファイル監視を開始する。
    		// このコマンドを実行したフォルダ以下が監視対象となる。
    		git init
    
    		// 管理するGitリポジトリを追加する。
    		git remote add origin <リポジトリ>
    		
    
    • <プロジェクト・フォルダ>は自身のプロジェクト・フォルダで置き換えること。
    • <リポジトリ>は任意のリポジトリで置き換えること。
    • 上記コマンドセットは、プロジェクト作成時に1度のみ行う。
  2. 更新時のコマンド
    
    
    		// 更新対象のファイルを全てコミット対象にする。
    		git add .
    
    		// コミット対象のファイルをコミットする。
    		// この段階では、Gitにアップロードされていない。
    		// アップロードするための準備。
    		git commit -m 'メッセージ'
    		
    
    • コミット時、メッセージは必要に応じて書き換えること。
    • 重要!メッセージは、どのような修正が行われたのか?後からわかるようなものにすること!
    • 意味のある単位で実行すると効果的だが、作業を終了する時にも実行すると失敗はない!
  3. Gitへアップロードするコマンド
    
    
    		// コミットされたファイルを実際にGitにアップロードする。(初回、及びブランチを変更した時のみ)
    		git push -u origin <ブランチ>
    
    		// コミットされたファイルを実際にGitにアップロードする。(2回目以降から)
    		git push
    		
    
    • ブランチ(初期時、master)に自身のブランチを指定すること。
    • この処理で実際にGitへアップロードされる。 複数回コミットした後でも、コミットされた内容全てがアップロードされる。 コミット単位でアップデートされる。
    • 重要!「-u」オプションをつけると、次回から、「origin master」の記述は不要。

特殊な処理

  1. 強制的にプッシュする方法
    
    
    		git push -f origin <ブランチ>
    		
    
    間違えてリポジトリをアップしてしまったような時、全く違うもので置き換えたい時がある、そのような場合に使用する。
    • ブランチ(初期時、master)に自身のブランチを指定すること。
    • 重要!強制的にプッシュを行うため、それまでの内容は破棄される。
  2. リポジトリの変更方法
    
    
    		git remote set-url origin <リポジトリ>
    		
    
    リポジトリを変更しなければならない場合に使用する。
    • <リポジトリ>は任意のリポジトリで置き換えること。
  3. ローカル・プロジェクトを任意コミットまで戻す方法
    
    
    		// コミットのログの詳細を表示させ、戻したい位置のコミットのIDを確認する。
    		git show
    
    		// ローカル・プロジェクトを上記で確認したコミットまで戻す。
    		git reset --hard <コミットID>
    		
    
    • <コミットID>は「git show」コマンドで確認したコミットのIDで置き換えること!
  4. Gitにアップされているリポジトリを別環境で利用する方法(クローンの作成方法)
    
    
    		// 下記コマンドを実行した場所に指定されたリポジトリの最新環境をダウンロードする。
    		// 自動的に、Git環境も構築されている。
    		git clone <リポジトリ>
    		
    
    • <リポジトリ>は任意のリポジトリで置き換えること。
  5. リポジトリ内に外部リポジトリを取り込むための方法
    
    
    		// 下記コマンドでメインリポジトリ内にcloneで作成されたがいぶリポジトリも取り込めるようになる。
    		git submodule add <外部リポジトリ> <ローカルで格納したいディレクトリ>
    		
    
    • <外部リポジトリ>は任意の外部リポジトリで置き換えること。
    • <ローカルで格納したいディレクトリ>は、cloneした対象のディレクトリを指定する。
    復元(別の場所にクローンを作成)する場合には、下記コマンドを実行する必要がある。 サブモジュールは、メインリポジトリをクローンしただけでは反映されない。 メインリポジトリをクローンした後、下記コマンドを実行することで、サブモジュールもクローンされる。
    外部リポジトリ復元方法
    
    
    		// サブモジュール環境を初期化
    		git submodule init
    		// サブモジュールを更新
    		git submodule update
    		
    

各種状態確認コマンド

  1. 修正されたファイルを確認する方法
    
    
    		git status
    		
    
    • 修正されたファイルやディレクトリで、コミットされていないものが表示される。
  2. Gitコミットのログを確認する方法
    
    
    		git log
    		
    
    • コミットした履歴が表示される。
    • 終了方法自動的に終了しない場合には、「q」キーを押す。
  3. Gitコミットのログの詳細な内容を確認する方法
    
    
    		git show
    		
    
    • コミットIDが確認できるので、ロールバック(任意のコミットまでローカル・プロジェクトを戻す)する時に利用できる。

削除関連

  1. ファイルは残しておき、管理対象からのみ外す方法
    
    
    		git rm —-cached <削除したいファイル>
    		
    
    • <削除したいファイル>に任意のファイル名称を設定する。(相対パス)
    • 注意事項 この処理を行った後は、指定したファイルを 「.gitignore」 に追加すること!
  2. ファイルも削除し、管理対象から外す方法
    
    
    		git rm <削除したいファイル>
    		
    
    • <削除したいファイル>に任意のファイル名称を設定する。(相対パス)
  3. ディレクトリごと削除し、管理対象から外す方法
    
    
    		git rm -r <削除したいディレクトリ>
    		
    
    • <削除したいディレクトリ>に任意のディレクトリ名称を設定する。(相対パス)

.gitignoreの設定方法

Gitで管理に含めたくないファイルやディレクトリが存在する場合、「.gitignore」というファイルに記述することで簡単に管理から外すことができる。
コメントの書き方。
"#"で始まる行はコメントとして扱われる。


		# "#"で始まる行はコメントとして扱われる。
		
特定の拡張子を管理しない設定。
下記では「exe」拡張子全てを管理から外す。


		*.exe
		
特定のファイルを管理しない設定。
下記では「google-services.json」ファイルを管理から外す。


		app/google-services.json
		
特定のフォルダ以下を管理しない設定。
例えば、confフォルダ以下を管理から外したい場合


		conf/
		
例外
「.gitkeep」というファイルがあるディレクトリは、上記の設定を行っても管理対象から外すことができなくなる。 このファイルの中身は空(サイズ0バイト)にしておくこと!

必須要素

注意事項

重要なし。

参考文献

更新履歴

2017/01/28 … 浅野 利博
新規作成
2017/01/30 … 浅野 利博
コメントを追加
2017/02/03 … 浅野 利博
参考文献を追加
2017/02/13 … 浅野 利博
リポジトリ内に外部リポジトリを取り込むための方法を追加
2017/04/18 … 浅野 利博
「git log」 コマンドの終了方法を追記。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.