このブログの画像は、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
上記のコマンドは、次のコマンドと同等になります:
最新のコミットを確認するには、last コマンドを追加することも一般的です:
$ git config --global alias.last 'log -1 HEAD'
今回のブログは以上です! Git を使用した次のプロジェクトでワークフローの品質を向上させる、いくつかの優れたトリックを学んでいただければ幸いです。読んでいただきありがとうございます!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3