Gitの使用方法:リファレンスガイド

Gitチートシート

前書き

開発者とオープンソースソフトウェアメンテナーのチームは、通常、コラボレーションをサポートする分散バージョン管理システムであるGitを介してプロジェクトを管理します。

この虎の巻スタイルのガイドは、Gitリポジトリでの作業や共同作業に役立つコマンドのクイックリファレンスを提供します。 Gitをインストールして構成するには、必ず「https://www.digitalocean.com/community/tutorials/how-to-contribute-to-open-source-getting-started-with-git[Open to Contribute to Openソース:Git入門]。

このガイドの使用方法:

  • このガイドは、自己完結型のコマンドラインスニペットを含むチートシート形式です。

  • 完了しようとしているタスクに関連するセクションにジャンプします。

  • このガイドのコマンドに「++」が表示されている場合、このテキストは「自分のリポジトリ」内のコミットとファイルを参照する必要があることに注意してください。

セットアップと初期化

次のコマンドでGitのバージョンを確認します。これにより、Gitがインストールされていることも確認できます。

git --version

`+ init +`を使用して、現在の作業ディレクトリをGitリポジトリとして初期化できます。

git init

リモートでホストされている既存のGitリポジトリをコピーするには、リポジトリのURLまたはサーバーの場所で `+ git clone `を使用します(後者の場合は、 ` ssh +`を使用します)。

git clone

現在のGitディレクトリのリモートリポジトリを表示します。

git remote

より詳細な出力を行うには、 `+ -v +`フラグを使用します。

git remote -v

Gitアップストリームを追加します。これはURLでも、サーバーでホストすることもできます(後者の場合、 `+ ssh +`で接続します)。

git remote add upstream

ステージング

ファイルを変更し、次のコミットに進むようにマークすると、ステージングされたファイルと見なされます。

ステージングされていない追加されたファイルやステージングされているファイルなど、Gitリポジトリのステータスを確認します。

git status

変更されたファイルをステージングするには、コミットの前に複数回実行できる「+ add 」コマンドを使用します。 次回のコミットに含める必要がある後続の変更を行う場合は、 ` add +`を再度実行する必要があります。

`+ add +`で特定のファイルを指定できます。

git add

`。`を使用すると、 `。`で始まるファイルを含む、現在のディレクトリ内のすべてのファイルを追加できます。

git add .

`+ reset +`で作業ディレクトリ内の変更を保持しながら、ステージングからファイルを削除できます。

git reset

コミット

更新のステージングが完了すると、それらをコミットする準備が整い、リポジトリに加えた変更を記録します。

ステージングされたファイルをコミットするには、意味のあるコミットメッセージで `+ commit +`コマンドを実行して、コミットを追跡できるようにします。

git commit -m "Commit message"

追跡されたすべてのファイルのステージングと1つのステップでのコミットを凝縮できます。

git commit -am "Commit message"

コミットメッセージを変更する必要がある場合は、 `+-amend +`フラグで変更できます。

git commit --amend -m "New commit message"

Gitのブランチは、リポジトリ内のコミットの1つへの移動可能なポインターです。これにより、作業を分離し、機能の開発と統合を管理できます。 ブランチについて詳しくは、https://git-scm.com/book/en/v1/Git-Branching-What-a-Branch-Is [Git documentation]をご覧ください。

+ branch +`コマンドで現在のすべてのブランチを一覧表示します。 現在アクティブなブランチの横にアスタリスク( `+ * +)が表示されます。

git branch

新しいブランチを作成します。 新しいブランチに切り替えるまで、現在アクティブなブランチに残ります。

git branch

既存のブランチに切り替えて、現在の作業ディレクトリにチェックアウトします。

git checkout

`+ -b +`フラグを使用して、新しいブランチの作成とチェックアウトを統合できます。

git checkout -b

ブランチ名を変更します。

git branch -m

指定したブランチの履歴を現在作業中のブランチにマージします。

git merge

競合がある場合に備えて、マージを中止します。

git merge --abort

特定のコミットを選択して、特定のコミットを参照する文字列と `+ cherry-pick +`をマージすることもできます。

git cherry-pick

ブランチをマージし、ブランチが不要になったら、削除できます。

git branch -d

ブランチをマスターにマージしていないが、削除したい場合は、ブランチを強制的に削除できます。

git branch -D

コラボレーションとアップデート

リモートアップストリームなどの別のリポジトリから変更をダウンロードするには、 `+ fetch +`を使用します。

git fetch

フェッチしたコミットをマージします。

git merge upstream/master

ローカルブランチのコミットをリモートリポジトリブランチにプッシュまたは送信します。

git push origin master

追跡リモートブランチからコミットを取得してマージします。

git pull

検査中

現在アクティブなブランチのコミット履歴を表示します。

git log

特定のファイルを変更したコミットを表示します。 これは、ファイル名の変更に関係なくファイルに従います。

git log --follow

一方のブランチにあり、もう一方のブランチにはないコミットを表示します。 これにより、「」ではなく「」でのコミットが表示されます。

git log ..

参照ログ( + reflog +)を見て、ブランチやその他の参照のヒントがリポジトリ内で最後に更新された日時を確認します。

git reflog

コミット文字列またはハッシュを介して、Gitの任意のオブジェクトをより人間が読める形式で表示します。

git show

変更を表示

`+ git diff +`コマンドは、コミット、ブランチなどの間の変更を表示します。 Git documentationで詳細を読むことができます。

ステージング領域にある変更されたファイルを比較します。

git diff --staged

``にはあるが ``にはないものの差分を表示します。

git diff ..

2つの特定のコミット間の差分を表示します。

git diff ..

スタッシング

いくつかのコードに変更を加えたことがわかる場合がありますが、終了する前に別の作業を開始する必要があります。 これまでに行った変更をコミットする準備はできていませんが、作業を失いたくありません。 `+ git stash `コマンドを使用すると、ローカルの変更を保存し、最新の ` HEAD +`コミットと一致する作業ディレクトリに戻ることができます。

現在の作業を隠してください。

git stash

あなたが現在隠しているものを参照してください。

git stash list

スタッシュには、「+ stash @ {0} 」、「 stash @ {1} +」などの名前が付けられます。

特定のスタッシュに関する情報を表示します。

git stash show [email protected]{}

隠し場所を保持したまま、隠し場所から現在の隠し場所にあるファイルを取り出すには、 `+ apply +`を使用します。

git stash apply [email protected]{}

隠し場所からファイルを持ち出し、隠し場所が必要なくなった場合は、 `+ pop +`を使用します。

git stash pop [email protected]{}

特定のスタッシュにファイルを保存する必要がなくなった場合は、スタッシュを「ドロップ」できます。

git stash drop [email protected]{}

複数のスタッシュが保存されていて、それらを使用する必要がなくなった場合は、 `+ clear +`を使用してそれらを削除できます。

git stash clear

ファイルを無視する

ローカルGitディレクトリにファイルを保持したいが、プロジェクトにコミットしたくない場合は、これらのファイルを `+ .gitignore +`ファイルに追加して、競合が発生しないようにすることができます。

nanoなどのテキストエディターを使用して、ファイルを `+ .gitignore +`ファイルに追加します。

nano .gitignore

+ .gitignore +`ファイルの例を見るには、GitHubのhttps://github.com/github/gitignore [+ .gitignore +`テンプレートリポジトリ]をご覧ください。

リベース

リベースを使用すると、ブランチのベースとなるコミットを変更することでブランチを移動できます。 リベースを使用すると、コミットをスカッシュまたはリワードできます。

リベースを開始するには、リベースするコミットの数を呼び出します(以下の場合は「5」)。

git rebase -i HEAD~

または、特定のコミット文字列またはハッシュに基づいてリベースできます。

git rebase -i

コミットを潰したり、言い換えたりすると、プロジェクトのアップストリームコードの最新バージョンの上でブランチのリベースを完了できます。

git rebase

リベースと更新の詳細については、https://www.digitalocean.com/community/tutorials/how-to-rebase-and-update-a-pull-request [プルリクエストをリベースおよび更新する方法]をご覧ください。 、どのタイプのコミットにも適用できます。

リセット中

場合によっては、リベース後を含めて、作業ツリーをリセットする必要があります。 次のコマンドを使用して、特定のコミットにリセットし、*すべての変更を削除*できます。

git reset --hard

最後の既知の競合しないコミットを元のリポジトリに強制的にプッシュするには、「+-force +」を使用する必要があります。

git push --force origin master

正常に動作するブランチのGitディレクトリからローカルの追跡されていないファイルとサブディレクトリを削除するには、 `+ git clean +`を使用できます。

git clean -f -d

現在のアップストリームマスターのようにローカルリポジトリを変更する必要がある場合(つまり、競合が多すぎる場合)、ハードリセットを実行できます。

git reset --hard upstream/master

結論

このガイドでは、リポジトリの管理やソフトウェアでの共同作業で使用する可能性のある、より一般的なGitコマンドの一部について説明します。

オープンソースソフトウェアとコラボレーションの詳細については、https://www.digitalocean.com/community/tutorial_series/an-introduction-to-open-source [オープンソースチュートリアルシリーズ]をご覧ください。

Gitを使用した作業の一部として役立つコマンドやバリエーションは他にもたくさんあります。 使用可能なすべてのオプションの詳細については、次を実行できます。

git --help

有用な情報を受け取るため。 Gitの詳細については、https://git-scm.com/ [Gitの公式Webサイト]からGitのドキュメントを参照してください。