About the behavior of git checkout.

Asked 2 years ago, Updated 2 years ago, 41 views

$git checkout Please let me know if you agree with me about the behavior when I do it

Another person edited the A branch that I edited before, and I decided to edit it again.

$git fetch
$ git checkout A-brunch


"Huh? I didn't merge it, but it's reflected locally?"
I was confused, so I looked it up and came to this point.

The above is the answer I gave you, but is this correct?
And if this is correct, git looks inside the tracking branch when checking out
Does it mean that it will be consistent and move to the latest commit?
Thank you for your cooperation.

git

2022-09-30 14:36

1 Answers

Branches are not a series of commits, but rather the latest commits.

It is recognized.It's officially called a pointer.
Git - Branch - What is a Branch?

First of all, fetch, so there is something local that represents the latest remote situation.

It also maintains a remote state locally as recognized,
There is a remote tracking branch.
Git-Branch Features-Remote Branch

I checked out after 2, so I switched to the latest A branch, that is, the latest commit.
Branch A is up to date, so HEAD is there and local is up to date.

The $git checkout branch command has a hidden shortcut to switch to the latest commit.
Usually, it's just a function to switch to that branch.

If a branch with that name does not exist locally and a branch with the same name exists in the remote tracking branch,

$git checkout-b branch -- track origin/branch

The shortcut function is activated.
Therefore, as the questioner has confirmed, a branch will be created that is the HEAD of the commit that already exists remotely.

Reference
Git-git-checkout

Please check the official website (including English) and learn it.


2022-09-30 14:36

If you have any answers or tips


© 2024 OneMinuteCode. All rights reserved.