このブログの画像は、Scott Chacon、Ben Straub による「Pro Git」から引用しています
このブログでは、プログラミングで使用する Git 内の日常的な機能のいくつかについて、さまざまな興味深い事実について読むことができます。
開発者は、ツールが内部でどのように機能するかを知らずに、やみくもにツールを使用することがよくあります。この抽象化は良い方向に向かう一方で、物事がどのように機能するかを知ることが、熟練プログラマーとアマチュア プログラマーの違いを生むことがあります。
素晴らしい事実をいくつか見てみましょう!
Git を長期間使用している場合は、git status について知っているはずです。ただし、より読みやすく最小限のステータス出力を取得するオプションがあることをご存知ですか?
短いステータス フラグ -s を使用すると、よりコンパクトな形式になります。
$ git status -s M README MM Rakefile A lib/git.rb M lib/simplegit.rb ?? LICENSE.txt
出力の左側のセクションに 2 つの列があることがわかります。左の列はステージングエリアのステータスを表し、右の列は作業ツリーのステータスを表します。時系列のアクションの順序も左から右に表されます。
上記の出力を解釈してみましょう:
追跡された ファイルをステージングして 1 つのコマンドですべてコミットしたい場合はどうすればよいでしょうか?
これを行うには、git commit -a -m "message" を使用します。
残念ながら、追跡されていないファイル (新しく作成されたファイル) は、この魔法のコマンドではステージングされないことに注意してください。
git log を使用して、リポジトリ内で行われたコミットを新しい順にリストします (最新のコミットが最初に表示されます)。
出力をカスタマイズできるさまざまなオプションがあります。便利なものをいくつか見てみましょう:
ファイルのステージングを解除する場合は、git replace HEAD を使用します。変更されたファイルの変更を元に戻したい場合は、git checkout -- {file} を使用します。
両方を行う簡単な方法が登場しました! Git バージョン 2.23.0 では、ファイルのステージング解除と変更解除の両方を行う 2-in-1 機能を提供する git list が導入されました。
おそらく、プログラマーとして、git pull を少なくとも 1 回は使用したことがあるでしょう。さらに、git fetch について聞いたことはあるかもしれませんが、実際に使用する必要はありませんでした。さて、それが実際に何をするのか、そして git pull とどのように違うのかについて話しましょう。
フェッチは、プル内で何が起こるかの最初のステップにすぎないと考えることができます。
プルでは、リモート リポジトリからすべてのデータをダウンロードし、ローカル リポジトリに転送します。これがフェッチの動作です。
この時点では、ローカル リポジトリにはデータがありますが、最新の変更を作業できるように作業ディレクトリとマージされていません。プル内の次のステップはブランチとのマージで、最新の変更が作業ディレクトリに置かれます。
したがって、プルはフェッチとマージをすべて一度に行いますが、フェッチは最初のステップのみを実行します。
git コマンドをカスタマイズできる方法があると言ったらどうしますか? git config を通じて、それが可能です。
頻繁に使用するコマンドのエイリアスを次のように設定できます。
$ git config --global alias.co checkout $ git config --global alias.br branch $ git config --global alias.ci commit $ git config --global alias.st status
ここでは、git commit と入力する代わりに、git ci と入力するだけです。
これは、特定のタスクをより直感的に行うのに役立つコマンドに特に役立ちます。
$ git config --global alias.unstage 'reset HEAD --' # the double dash serves as an option separator. # It tells Git to treat anything after it as a filename
上記のコマンドは、次のコマンドと同等になります:
It's also common to add a last command to see your most recent commit:
$ git config --global alias.last 'log -1 HEAD'
That's all for this blog! I hope you learned a few neat tricks for your next project with Git that will improve the quality of your workflow. Thanks for reading!
以上が本当に Git を知っていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。