freeCodeCamp/guide/chinese/git/git-checkout/index.md

73 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Git Checkout
localeTitle: Git Checkout
---
## Git Checkout
`git checkout`命令在分支之间切换或恢复工作树文件。此命令有许多不同的选项,这里不会介绍,但您可以在[Git文档中](https://git-scm.com/docs/git-checkout)查看所有这些选项。
### 签出特定提交
要签出特定的提交,请运行以下命令:
```shell
git checkout specific-commit-id
```
我们可以通过运行获取特定的提交ID
```shell
git log
```
### 签出现有分支
要签出现有分支,请运行以下命令:
```shell
git checkout BRANCH-NAME
```
通常除非您的工作目录是干净的否则Git不会让您签出另一个分支因为您将丢失任何未提交的工作目录更改。您有三种方法可以处理您的更改1删除它们2 [提交它们](https://guide.freecodecamp.org/git/git-commit/) 或3 [存储它们](https://guide.freecodecamp.org/git/git-stash/) 。
### 结帐新分行
要使用单个命令创建和签出新分支,您可以使用:
```shell
git checkout -b NEW-BRANCH-NAME
```
这将自动切换到新分支。
### 签出新分支或将分支重置为起点
以下命令类似于检出新分支,但使用`-B` 注意captital B标志和可选的`START-POINT`参数:
```shell
git checkout -B BRANCH-NAME START-POINT
```
如果`BRANCH-NAME`分支不存在Git将创建它并在`START-POINT`处启动它。如果`BRANCH-NAME`分支已经存在则Git将分支重置为`START-POINT` 。这相当于使用`-f`运行`git branch` 。
### 强制结账
您可以使用`git checkout`命令传递`-f`或`--force`选项以强制Git切换分支即使您有未分阶段的更改换句话说工作树的索引与`HEAD`不同)。基本上,它可以用来抛弃局部变化。
当您运行以下命令时Git将忽略未合并的条目
```shell
git checkout -f BRANCH-NAME
# Alternative
git checkout --force BRANCH-NAME
```
### 撤消工作目录中的更改
您可以使用`git checkout`命令撤消对工作目录中的文件所做的更改。这会将文件还原为`HEAD`的版本:
```shell
git checkout -- FILE-NAME
```