私たちは常に次のようにするべきです:
git fetch && git checkout
またはのみ、
git checkout
?
たとえば、bitbucketのブランチからチェックアウトを行う場合、コマンドは次のように提供されます。
git fetch && git checkout develop
しかし、なぜこれが必要なのか
git checkout
同じことをしますよね?
複数のプロジェクトと複数のブランチで毎日Bitbucketを使用する必要があるため、ここで説明します。推奨事項を示します。
Bitbucketからチェックアウトする場合、つまりブランチを作成する場合は、例で貼り付けたときに提供されているコマンドを使用して大丈夫です。ただし、最初のチェックアウト後にブランチを切り替え、ブランチを作成するとローカルが同期しなくなる可能性が高いため、端末を使用して次のことをお勧めします。 :
git checkout develop
または必要なブランチgit fetch && git pull
つまり、すべてのブランチと最新の変更を取得し、現在のブランチからすべての変更をプルします。はい、これは重複した作業のように見えますが、Bitbucketで作業することは、作業中のブランチから最新のものを入手するための最も安全で賢明な方法であると言えます。
ただし、常にブランチを作成し、develop
またはmaster
ブランチに直接プッシュしないでください。
したがって、develop
ブランチにいて、ブランチをチェックアウトして上記を実行し、最新のフェッチとプルを行った後、標準のgit checkout -b my-feature-branch
を使用してそのメインブランチからブランチを作成するとします。
私の店での仕事の例:
git checkout develop
git fetch && git pull
git checkout -b feature/JIRA_ISSUE_NUMBER-update-layout-for-this-page
これで、開発ブランチをチェックアウトし、すべての最新の変更とリモートブランチをプルダウンし、その開発ブランチから機能ブランチを作成しました。
お役に立てれば。
git fetch
は、(この場合)BItbucketで作成されているリモートブランチへの参照を取得します。
git checkout
は、現在のディレクトリを特定のブランチまたは特定のコミット(パラメータに応じて)に移動します。
何が起きてる? bitbucketにブランチを作成すると、次の理由でコマンドが提供されます。1-ブランチがREMOTEリポジトリに作成された。リポジトリのローカルコピーには、まだ新しいブランチがありません。それがgit fetch
コマンドが使用されます。 2- Bitbucketは、その新しいブランチを作成したばかりなので、すぐに作業し、ローカルリポジトリにそれを伝える必要があると想定しています。それがgit checkout
コマンドは
それを達成する唯一の方法ではありません。たとえば、git fetch
コマンドを使用して:
git checkout -b {new_branch_name} && git pull Origin {new_branch_name}
これは最も実用的な方法ではありませんが、おそらくこれらのコマンドがどのように機能するかについてのより良いアイデアを提供します。
あなたの質問に特定するために、「bitbucketのブランチからチェックアウトを行うとき、彼らは次のようなコマンドを提供します:git fetch && git checkout development "。これは、クラウドまたはリモートで作成されている開発ブランチが、リモートから更新を取得するまでローカルマシンで利用できないためです。
したがって、ブランチを開発するために切り替えまたはチェックアウトするには、最初にすべてのリモート更新をフェッチして、開発ブランチの存在を認識させる必要があります。フェッチを実行すると、ローカルreppoはリモートで作成されている新しいブランチを認識します。また、開発のためにチェックアウトを行うと、新しいローカルブランチがセットアップされ、リモートのcouterpartが追跡されます。
git fetch
は、リモートロケーションからのすべての変更をプルダウンします
git checkout
は、別のブランチに切り替えます(または、使用方法に応じてファイルを以前の状態に復元します)
フェッチとチェックアウトを使用してブランチを切り替え、更新されたすべてのファイルをプルします。チェックアウトのみを使用してブランチを切り替えますが、ローカルバージョンでの作業を続行します。
git fetch
は、リモートでOrigin/<branch_name>
を更新します。 git checkout
を使用してブランチを切り替えることができます。リモートで新しく作成されたブランチに切り替えようとしていて、ローカルバージョンがシステム上に存在しない場合を除き、どちらにも相互関係はありません。
ただし、git pull
(またはgit fetch
とgit rebase
)を実行してからgit checkout -b <another_branch>
を作成して新しいブランチを作成すると、新しいブランチがフォークされていることを確認できます。安定したコードの最新バージョン。