Git 是目前世界上最流行的分布式版本控制系统,它由 Linus Torvalds 创建,最初用于管理 Linux 内核的开发,Git 的核心功能包括代码的版本管理、分支操作、合并与冲突解决、多人协作等,掌握 Git 的全部命令是每个开发者的必备技能,以下将详细介绍 Git 的常用命令及其使用场景,包括仓库初始化、文件操作、分支管理、远程仓库交互、日志查看、标签管理等内容,并通过表格形式总结核心命令,最后附上相关问答。

Git 的命令通常以 git
开头,后跟具体的操作指令,从仓库的初始化与配置开始。git init
用于在当前目录创建一个新的 Git 仓库,执行后会生成一个 .git
隐藏文件夹,用于存储版本历史。git config
命令用于配置 Git 的用户信息、默认编辑器、差异工具等,git config --global user.name "Your Name"
设置全局用户名,git config --global user.email "your.email@example.com"
设置全局邮箱,如果需要配置仓库级别的信息,可以去掉 --global
参数。
文件操作是 Git 日常使用中最频繁的部分。git add
用于将文件添加到暂存区,git add filename.txt
添加单个文件,git add .
添加所有修改的文件。git status
用于查看工作区、暂存区的状态,显示哪些文件被修改、哪些已暂存、哪些未被跟踪。git commit
将暂存区的文件提交到本地仓库,-m
参数用于添加提交说明,如 git commit -m "feat: 添加新功能"
。git rm
用于删除文件,git rm filename.txt
不仅会删除文件,还会将删除操作提交到暂存区,而 git rm --cached filename.txt
则会停止跟踪文件但保留在工作目录中。git mv
用于移动或重命名文件,如 git mv oldname.txt newname.txt
。
分支管理是 Git 的核心优势之一,它允许开发者并行开发不同功能而不互相干扰。git branch
用于查看分支列表,-a
参数可以查看远程分支,git branch branchname
创建新分支,git branch -d branchname
删除分支(需确保分支已合并),git branch -D branchname
强制删除分支。git checkout
用于切换分支,如 git checkout branchname
,或者结合 -b
参数创建并切换分支,git checkout -b newbranch
。git merge
用于合并分支,例如当前在 main
分支,执行 git merge feature
会将 feature
分支的合并到 main
,如果合并时发生冲突,需要手动解决冲突后执行 git add
和 git commit
完成合并。
远程仓库操作通常与 GitHub、GitLab 等平台配合使用。git clone
用于克隆远程仓库到本地,如 git clone https://github.com/username/repo.git
。git remote
用于管理远程仓库别名,git remote -v
查看远程仓库地址,git remote add origin https://github.com/username/repo.git
添加远程仓库别名。git push
将本地分支推送到远程仓库,git push origin main
推送 main
分支到远程 origin
,git push -u origin branchname
第一次推送时设置上游分支。git pull
从远程仓库拉取代码并合并到当前分支,相当于 git fetch
和 git merge
的组合,git fetch
则只拉取远程仓库的更新而不合并。

日志查看与标签管理帮助开发者追踪版本历史和标记重要节点。git log
查看提交历史,--oneline
以简洁格式显示,--graph
以图形化方式展示分支合并情况,git log --author="AuthorName"
查看特定作者的提交记录。git tag
用于管理标签,git tag
查看所有标签,git tag -a v1.0 -m "版本1.0发布"
创建带注释的标签,git push origin v1.0
推送标签到远程仓库,git checkout v1.0
切换到标签对应的提交。
以下是 Git 核心命令的总结表格:
命令分类 | 命令 | 功能描述 |
---|---|---|
仓库初始化 | git init | 初始化 Git 仓库 |
git config | 配置 Git 用户信息、工具等 | |
文件操作 | git add | 添加文件到暂存区 |
git status | 查看工作区和暂存区状态 | |
git commit | 提交暂存区文件到本地仓库 | |
git rm | 删除文件 | |
git mv | 移动或重命名文件 | |
分支管理 | git branch | 查看、创建、删除分支 |
git checkout | 切换分支或创建并切换分支 | |
git merge | 合并分支 | |
远程仓库操作 | git clone | 克隆远程仓库 |
git remote | 管理远程仓库别名 | |
git push | 推送本地分支到远程仓库 | |
git pull | 拉取远程仓库代码并合并 | |
git fetch | 拉取远程仓库更新 | |
日志查看 | git log | 查看提交历史 |
标签管理 | git tag | 查看、创建、推送标签 |
相关问答 FAQs:
-
问题:如何撤销已经提交的代码?
解答:撤销已提交的代码分为两种情况,如果是本地提交且未推送到远程仓库,可以使用git reset --hard HEAD~1
撤销最近一次提交并丢弃工作区的修改,或者git reset --soft HEAD~1
撤销提交但保留修改在暂存区,如果已推送到远程仓库,需要使用git revert
创建一个新的提交来撤销更改,git revert HEAD
,这样可以避免破坏远程仓库的历史记录。(图片来源网络,侵删) -
问题:如何解决 Git 合并冲突?
解答:当 Git 自动合并失败时,会在冲突的文件中标记冲突标记(如<<<<<<< HEAD
、、>>>>>>> branchname
),解决冲突的步骤是:首先手动打开冲突文件,编辑文件内容删除冲突标记并保留需要的代码;然后执行git add <文件名>
将解决后的文件标记为已解决;最后执行git commit
完成合并提交,可以使用git status
查看所有冲突文件,确保所有冲突都已解决后再提交。