初心者に役立つGitテクニック10個

4601 ワード

1.コミットと同時にファイルを追加
Gitは、最近の変更セットをコミットする前に、新しい追跡ファイルを倉庫に明示的に追加することを要求します.したがって、変更セットをコミットする通常のコマンド・シーケンスは、次のようになります.
%>git add . 
%>git commit -m "Latest commit message" 

準備手順を節約し、ファイルをコミットする操作とともに追加するには、-aフラグを使用します.
%>git commit -a -m "Latest commit message" 

しかし、多くの場合、このようなショートカットを使用するべきではありません.この文書では、理由を説明するために少なくとも1つの例を説明します.
2.Gitエイリアスでキーストローク回数を節約
多くのポピュラーなコマンドラインツールと同様に、Gitは自分のユーザー設定を名前に保存することができます.gitconfigのプロファイル.このファイルでは、倉庫とのインタラクションに関係するため、自分の名前とe-mailアドレスを定義するのが一般的です.しかし、ここで別名を定義して時間を節約することもできます.例えば、私の.gitconfigファイルには、このような一般的なコマンドの別名が含まれています.
[alias] 
st = status 
co = checkout 
cm = commit 
pom = push origin master

たまたま自分が定義した別名を忘れた場合は、次のコマンドでプロファイルをすばやく確認できます.
%>git config -l 

3.選択的な一時保存ファイル
複数のファイルで同時に変更したと言っている場合がありますが、間もなく行われるコミットに一部を選択的に追加したいだけです.この目的を達成するために、インタラクティブな追加機能を使用することができます.たとえば、ShopController.phpForumController.php, 。の2つの新しいファイルを作成したとします.git addに-iオプションを渡すことで、インタラクティブな追加器を起動できます.
%>git add -i 

質問メニューには、いくつかの選択肢があります.
*** Commands *** 
1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked 
5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp 
4を選択すると、追加したいファイルをインタラクティブに選択できます.
What now> 4 
1: application/controllers/ForumController.php 
2: application/controllers/ShopController.php 
Add untracked>> 

4.使う.gitignoreファイルとディレクトリを無視
新しいGit倉庫を初期化した後、最初にしなければならないのは1つを作成することです.gitignoreファイル.このファイルの役割は、Git倉庫で追跡されたくないファイルとディレクトリをフィルタすることです.例えば、私が新しいZendフレームワークプロジェクトで働いているとき、典型的な方法は、プロジェクトのドキュメント、ウェブサイトの画像、倉庫からのnotesを捨てることです.txtファイルは、私のことを意味します.gitignoreファイルはこのように見えます.
docs 
public/images 
notes.txt 

5.コミットリストから新しく追加したファイルを削除する
開発が最も暑いときは、倉庫に含めたくないファイルを追加するのを忘れてしまうかもしれません.gitignoreファイル.rmコマンドを使用して、コミットされる変更リストからこれらのファイル(未保存ファイルと呼ばれる)を削除できます.
%>git rm --cached schema-notes.txt

一時保存されていない状態になった場合、.gitignore , 。にファイルを追加できます.
6.提出した書類の提出前の内容を調べる
現在のバージョンでファイルを変更した後、ファイルの初期バージョンの内容を確認する必要がありますが、このファイルを本当に復元したくないことがあります.showコマンドでファイルを指すパラメータを持って簡単にできます.
%>git show HEAD^:application/controllers/AboutController.php 

挿入記号(^)は、レビュー時にロールバックする必要があるリビジョンの数を表します.以上の例ではAboutControllerが表示する.phpの前の改訂版.3回のリビジョンの前のバージョンを表示する場合は、次のように3つの挿入記号を使用します.
%>git show HEAD^^^:application/controllers/AboutController.php 

また、コミットされたハッシュ値を使用してファイルを参照することもできます.たとえば、5つのリビジョン以前のAboutControllerを表示したい場合.phpファイルの内容はgit logを実行してコミットされたハッシュ値を表示し、ハッシュ値の最初の5文字を使用してファイルの内容を取得する必要があります.
%>git show 23aa985:application/controllers/AboutController.php 

7.最近コミットされたログ・メッセージの編集
私はスペルに几帳面な人ですが、最新の変更セットを急いで提出すると、メッセージに欲しくないアルファベットが1、2つ増えることがあります.最近コミットされたメッセージをamendコマンドで簡単に編集できます.
%>git commit --amend 

このコマンドを実行すると、最近のコミットメッセージがエディタにロードされ、これらのメッセージを編集して保存できます.
8.未提出の変更を保存
プログラミング作業の偶然の中断は避けられません.これは、変更をコミットできる状態ではなく、現在の作業とは関係のない問題を直ちに修復し、コミットしなければならない場所にあることがよくあります.stashコマンドで現在のすべての変更を頭で保存し、基礎を前の提交点に逆転させることができます.このとき、修正して新しい提出を行うことができます.完了すると、ストレージの状態に戻ることができます.例えば、私がプロジェクトのREADMEファイルの新しいセグメントで働いているとしたら、突然深刻なスペルミスを発見しました.現在の変更を保存できます.
%>git stash save

READMEを再開すると、その新しいセグメントが消えたことに気づきます.前の提交点に戻ったからです. 。 :
%>git stash pop


9.

Web Git , instaweb ? , :

%>git instaweb --httpd apache2 


apache2 --httpd Git Apache Web 。 のサーバもいくつかサポートされていますが、デフォルトではlighttpdが されています.
 
10. を める
たまに、チームメンバー(もちろんあなた ではありません)がテストされていないコードを に して を することがあります.もちろん、あなたはこの を かのせいにしたいと っています.しかし、 がこの いを したのだろうか.blameコマンドで できます.

%>git blame application/controllers/AboutController.php 
23aa9852 (Jason Gilmore 2010-06-03 12:34:04 -0400 11) public function indexAction() 
23aa9852 (Jason Gilmore 2010-06-03 12:34:04 -0400 12) { 0e9e9f49 (Jason Gilmore 2010-06-03 13:32:47 -0400 13) 
echo "Missing semicolon" 23aa9852 (Jason Gilmore 2010-06-03 12:34:04 -0400 14) }