Git 命令参考

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

在 Visual Studio 2019 中,你可利用团队资源管理器执行日常工作所需的大多数常见 Git 任务。 从 Visual Studio“查看”菜单中,打开团队资源管理器或使用 Ctrl+、Ctrl+M 热键。

Visual Studio 2019 版本 16.8 及更高版本提供 Git 版本控制体验,同时保留团队资源管理器 Git 用户界面。 若要使用团队资源管理器,请取消选中菜单栏中的“工具”>“选项”>“预览功能”>“新 Git 用户体验”。 可以互换使用任一界面中的 Git 功能。

Visual Studio 和 Git 命令行可以很好地协同工作。 当通过一个界面进行更新和运行命令时,你将看到这些更改反映在另一个界面中。

如果计算机上没有安装 Git,可以使用 Git 安装说明

提示

Windows 用户:如果没有使用 Visual Studio,请安装 Git for Windows 以设置 Git 凭据管理器。 利用凭据管理器,可以轻松地使用 Azure Repos 进行身份验证。

在 Visual Studio 中,从团队资源管理器的“连接”视图打开存储库中的命令提示符。 右键单击本地存储库并选择“打开命令提示符”。

从 Visual Studio 内部打开存储库的命令提示符

重要

某些命令需要在 Azure Repos 中具有特定的 Git 权限才能完成。

Repos


如何操作?

Git 命令行

Visual Studio 团队资源管理器

Visual Studio Git 菜单


在新文件夹中创建存储库

git initfoldername

在团队资源管理器中选择“连接”按钮(用于打开“连接”页的团队资源管理器插件图标)以打开“连接”视图,然后选择“本地 Git 存储库”下的“新建”

使用命令行


在现有文件夹中使用代码创建存储库

git initfoldername
git add --all
git commit -m "Initial commit"

从命令行创建存储库,然后打开团队资源管理器的“连接”视图并选择“本地 Git 存储库”下的“添加”

使用命令行


从现有 Visual Studio 解决方案创建存储库

git initfoldername
cdfoldername
git add --all
git commit -m "Initial commit"

打开解决方案并从右下角的状态栏中选择“发布”(Visual Studio 2015 Update 2 中的状态栏上的“发布”按钮

从菜单栏中选择“Git”>“创建 Git 存储库”以启动“创建 Git 存储库”窗口


在项目中创建新存储库

不适用

从 Web 中选择“存储库”或“代码”(如果尚未启用新的导航预览),然后选择当前存储库名称旁边的下拉列表并选择“新建存储库...”

从菜单栏中选择“Git”>“创建 Git 存储库”以启动“创建 Git 存储库”窗口


将存储库克隆到本地文件夹

git cloneURL foldername

在团队资源管理器的“连接”视图中,选择“本地 Git 存储库”下的“克隆”

从菜单栏上的“Git”菜单中选择“克隆存储库”,以打开“克隆存储库”窗口


在项目中克隆存储库

git cloneURL foldername

在团队资源管理器中打开“连接”视图,然后右键单击项目中帐户名称下的 Git 存储库。 选择“克隆”。

从菜单栏上的“Git”菜单中选择“克隆存储库”,以打开“克隆存储库”窗口


将现有存储库添加到 Visual Studio

不适用

在 Visual Studio 中打开解决方案文件(此操作会自动将存储库添加到团队资源管理器),或在“连接”视图中选择“本地 Git 存储库”下的“添加”

从菜单栏中选择“Git”>“本地存储库”>“打开本地存储库”


删除 Git 存储库和历史记录,但保留文件的当前版本

删除在存储库根目录中创建的隐藏 .git 文件夹

从 Windows 资源管理器或命令行删除在存储库根目录中创建的隐藏 .git 文件夹


删除本地存储库和所有文件

从计算机的文件系统中删除包含存储库的文件夹

使用存储库中的文件关闭所有打开的解决方案,然后从计算机的文件系统中删除包含存储库的文件夹


删除项目中的存储库

不适用

不适用,另请参阅删除现有存储库


添加远程库

git remote addname url

使用团队资源管理器中的“连接”视图打开存储库,然后在团队资源管理器中打开“设置”视图。 选择“存储库设置”,然后选择“远程库”下的“添加”。

从菜单栏上的“Git”菜单中,选择“推送到 Git 服务”,打开“创建 Git 存储库”对话框。


更新远程库

git remote set-urlname url

使用团队资源管理器中的“连接”视图打开存储库,然后在团队资源管理器中打开“设置”视图。 选择“存储库设置”,然后选择“远程库”下的“编辑”。

从菜单栏上的“Git”菜单中选择“管理远程库”,然后在“选项”对话框中进行更改。


有关更多信息,请参见以下资源:

分支


如何操作?

Git 命令行

Visual Studio 团队资源管理器

Visual Studio Git 菜单


创建新分支

git branchbranchname

在团队资源管理器中打开“分支”视图,然后右键单击某个分支并选择“新建本地分支源…”

从菜单栏上的“Git”菜单中选择“管理分支”,然后右键单击某个分支并选择“新建本地分支源...”


交换到其他分支

git checkoutbranchname

在团队资源管理器中打开“分支”视图,然后双击本地分支。 也可从状态栏中选择当前分支名称,然后选择其他分支。

从菜单栏上的“Git”菜单中选择“管理分支”,然后右键单击某个分支并选择“签出”


创建并切换到新分支

git checkout -bbranchname

在团队资源管理器中打开“分支”视图,然后右键单击某个分支并选择“新建本地分支源…”

从菜单栏上的“Git”菜单中选择“管理分支”,然后右键单击某个分支并选择“新建本地分支源...”,然后选择“签出分支”


删除本地分支

git branch -dbranchname

在团队资源管理器中打开“分支”视图,然后右键单击分支并选择“删除”。 你必须签出到与要删除的分支不同的分支。

从菜单栏上的“Git”菜单中选择“管理分支”,然后右键单击某个分支并选择“删除”


删除远程分支

git push origin --deletebranchname

在团队资源管理器中打开“分支”视图,展开包含要删除的分支的远程库。 右键单击远程库并选择“从远程库删除分支”。

从菜单栏上的“Git”菜单中选择“管理分支”,然后右键单击某个远程分支并选择“删除”


锁定某个分支,防止对其进行更新

不适用

查看存储库时,从 Web 中选择“分支”选项卡。 选择要锁定的分支旁边的“…”,然后选择“锁定”。 使用“解锁”来解锁分支。


在 Azure DevOps 存储库中设置默认分支

不适用

选择 Web 上的“设置”图标(Azure DevOps Services 顶部导航栏上的齿轮图标),然后选择“版本控制”选项卡。选择你的 Git 存储库,然后依次选择分支名称旁边的“...”、“设置为默认分支”。


在 Azure DevOps 存储库中为拉取请求设置比较分支

不适用

查看存储库时,从 Web 中选择“分支”选项卡。 选择要锁定的分支旁边的“…”,然后选择“比较分支”。


有关更多信息,请参见以下资源:

提交


如何操作?

Git 命令行

Visual Studio 团队资源管理器

Visual Studio Git 菜单


创建新提交

git commit -m “message”

在团队资源管理器中打开“更改”视图。 通过右键单击修改后的文件并选择“暂存”来暂存更改。 输入提交消息,然后选择“提交已暂存的文件”。

从菜单栏上的“Git”菜单中,选择“提交或储藏”以查看“Git 更改”。 通过右键单击修改后的文件并选择“暂存”来暂存更改。 输入提交消息,然后选择“提交已暂存的文件”。


使用暂存更改修改最后一个提交

git commit --amend -m“Updated message”

在团队资源管理器中打开“更改”视图,暂存所做的更改,然后从“操作”下拉列表中选择“修改之前的提交”。

从菜单栏上的“Git”菜单中,选择“提交或储藏”以查看“Git 更改”。 暂存一个或多个文件,输入提交消息,选择“修改”,然后选择“提交已暂存的文件”。


暂存所有文件更改

git add --all

在团队资源管理器中打开“更改”视图。 选择“更改”列表中的 + 图标,暂存下一个提交的所有更改。

从菜单栏上的“Git”菜单中,选择“提交或储藏”以查看“Git 更改”。 选择“更改”列表中的 + 图标,暂存下一个提交的所有更改。


暂存特定文件更改

git addfilename

在团队资源管理器中打开“更改”视图。 通过右键单击更改后的文件并选择“暂存”来暂存更改。

从菜单栏上的“Git”菜单中,选择“提交或储藏”以查看“Git 更改”。 通过右键单击更改后的文件并选择“暂存”来暂存更改。


查看非暂存更改

git status --untracked

在团队资源管理器中打开“更改”视图。 非暂存更改在“更改”部分下列出。

从菜单栏上的“Git”菜单中,选择“提交或储藏”以查看“Git 更改”。 非暂存更改在“更改”部分下列出。


删除文件

git rmfilename
git commit -m“filename”

通过解决方案资源管理器、命令行或任何其他方式删除文件。 在团队资源管理器的“更改”视图中右键单击已删除的文件,然后选择“暂存”。 选择“提交已暂存的文件”以提交删除。

通过解决方案资源管理器、命令行或任何其他方式删除文件。 从菜单栏上的“Git”菜单中,选择“提交或储藏”以查看“Git 更改”,然后选择“暂存”。 选择“提交已暂存的文件”以提交删除。


移动文件

git mvfilename
git commit -m“Moved filename”

通过解决方案资源管理器、命令行或任何其他方式将文件从存储库中的一个位置移动到另一个位置。 在团队资源管理器的“更改”视图中右键单击已移动的文件,然后选择“暂存”。 选择“提交已暂存的文件”以提交移动。

通过解决方案资源管理器、命令行或任何其他方式将文件从存储库中的一个位置移动到另一个位置。 从菜单栏上的“Git”菜单中,选择“提交或储藏”以查看“Git 更改”。 选择“提交已暂存的文件”以提交移动。


标记提交

git tag -atagname“description”-m

在团队资源管理器中打开“更改”视图,然后从“操作”下拉列表中选择“查看历史记录...”。 在“历史记录”视图中找到提交,然后右键单击并选择“创建标记”。

从菜单栏上的“Git”菜单中选择“管理分支”,然后右键单击某个分支并选择“查看历史记录”。 在“历史记录”视图中找到提交,然后右键单击并选择“新建标记”。


若要了解详细信息,请参阅使用提交保存工作

比较文件和版本


如何操作?

Git 命令行

Visual Studio 团队资源管理器

Visual Studio Git 菜单


比较单个文件的当前内容和上个提交中的内容

git diff HEADfilename

在团队资源管理器的“更改”视图中右键单击更改,然后选择“与未修改的项比较”

从菜单栏上的“Git”菜单中,选择“提交或储藏”以查看“Git 更改”。 右键单击更改并选择“与未修改的项比较”。


将当前版本与分支进行比较

git diffbranchname

右键单击解决方案资源管理器中的文件并选择“查看历史记录...”,然后同时选择当前分支上的最新提交和远程分支上的最新提交。 右键单击并选择“比较”。


比较两个分支之间的更改

git diffbranchname1 branchname2

右键单击解决方案资源管理器中的文件并选择“查看历史记录...”,然后为两个分支选择最近的提交。 右键单击并选择“移除”


若要了解详细信息,请参阅比较版本和查看历史记录

同步更改


如何操作?

Git 命令行

Visual Studio 团队资源管理器

Visual Studio Git 菜单


从远程存储库下载新的分支和提交,但不要将它们合并到本地分支

git fetch

从团队资源管理器中打开“同步”视图并选择“提取”

从菜单栏上的“Git”菜单中,选择“提交或储藏”以查看“Git 更改”。 选择“提取”箭头。


将远程存储库中的更新合并到本地存储库

git pullremote branchname

在本地存储库中使用分支时,在团队资源管理器中打开“同步”视图,然后选择“拉取”

从菜单栏上的“Git”菜单中,选择“提交或储藏”以查看“Git 更改”。 选择“拉取”箭头。


将本地分支发布到远程存储库

git push -u remote branchname

在团队资源管理器中打开“同步”视图,然后选择“传出提交”下的“发布”

从菜单栏上的“Git”菜单中,选择“提交或储藏”以查看“Git 更改”。 选择“推送”箭头


将本地分支与远程分支同步,推送本地更改并拉取远程库更改

git pullremote branchname
git push -u remote branchname

在团队资源管理器中打开“同步”视图。 选择“同步”

从菜单栏上的“Git”菜单中,选择“提交或储藏”以查看“Git 更改”。 选择“同步”图标


强制推送某个分支,使用当前分支的历史记录重写远程分支的历史记录

git push --force -u originremote_branchname

使用命令行

使用命令行


有关更多信息,请参见以下资源:

合并和变基


如何操作?

Git 命令行

Visual Studio 团队资源管理器

Visual Studio Git 菜单


将某个分支合并到当前分支

git mergebranchname

在团队资源管理器的“分支”视图中,右键单击要合并的分支并选择“合并源...”。验证选项集并选择“合并”。

从菜单栏上的“Git”菜单中选择“管理分支”,右键单击要合并的分支并选择“将 <本地分支> 合并到 <当前分支>”


将远程分支合并到当前分支

git pull originbranchname

在团队资源管理器的“分支”视图中,右键单击要合并的远程分支并选择“合并源...”。验证选项集并选择“合并”。

从菜单栏上的“Git”菜单中选择“管理分支”,右键单击要合并的远程分支并选择“将 <远程分支> 合并到 <当前分支>”


将当前分支变基到另一个分支的历史记录

git rebasebranchname

在团队资源管理器的“分支”视图中,右键单击要将当前分支更改变基到的分支,然后选择“变基到…”

从菜单栏上的“Git”菜单中选择“管理分支”,右键单击要变基的远程分支并选择“将 <当前分支> 变基到 <选定的分支>”


对最后 n 个提交进行交互式变基

git rebase -i HEAD~n(Linux 和 macOS)
git rebase -i "HEAD^n" (Windows)

不适用

不适用


将提交挑拣到当前分支

git cherry-pickcommitID

在团队资源管理器中打开“更改”视图,然后从“操作”下拉列表中选择“查看历史记录...”。 在“历史记录”视图中找到提交,然后右键单击并选择“挑拣”。

从菜单栏上的“Git”菜单中选择“管理分支”,找到“历史记录”视图,然后右键单击并选择“挑拣”


有关更多信息,请参见以下资源:

撤消

警告

如果你不是经验丰富的 Git 用户,请谨慎使用 reset 命令。 了解详细信息


如何操作?

Git 命令行

Visual Studio 团队资源管理器

Visual Studio Git 菜单


还原所有更改并回退到最新的提交

git reset --hard HEAD

在团队资源管理器中打开“更改”视图。 选择“操作”,然后从下拉列表中选择“查看历史记录”。 右键单击分支当前所在的提交,然后选择“重置并删除更改…”。

从菜单栏上的“Git”菜单中选择“管理分支”,右键单击分支当前所在的提交,然后选择“重置”>“删除更改(--硬)”


还原文件暂存,但保留文件更改

git reset --mixed HEAD

在团队资源管理器中打开“更改”视图。 选择“操作”,然后从下拉列表中选择“查看历史记录”。 右键单击分支当前所在的提交,然后选择“重置并保留更改…”

从菜单栏上的“Git”菜单中选择“管理分支”,右键单击分支当前所在的提交,然后选择“重置”>“保留更改(--混合)”


删除未跟踪的文件

git clean -f

在团队资源管理器中的“更改”视图中,右键单击标记为“[添加]”的“更改”下要删除的文件,然后选择“删除”

从菜单栏上的“Git”菜单中,选择“提交或储藏”以打开“Git 更改”,右键单击标记为 A 的“更改”下要删除的文件并选择“删除”


将本地分支重置为远程分支上的最新提交

git reset --hardremote/branchname
(例如:git reset --hard origin/main

在团队资源管理器的“分支”视图中右键单击分支,然后选择“重置并删除更改…”

从菜单栏上的“Git”菜单中,选择“管理分支”,右键单击该分支,然后选择“重置”>“删除更改(--硬)”


还原推送到远程存储库的提交

git revertcommitID

在团队资源管理器中打开“更改”视图。 选择“操作”,然后从下拉列表中选择“查看历史记录”。 右键单击要还原的提交并选择“还原”。

从菜单栏上的“Git”菜单中选择“管理分支”,右键单击历史记录中的提交,然后选择“还原”