一、基础配置命令
在使用 Git 前,首先需要进行基础配置,确保提交记录能正确关联到用户信息。
●设置用户名:git config --global user.name "用户名"
该命令会将用户名配置为全局生效,所有 Git 仓库都会使用这个用户名提交记录。
●设置用户邮箱:git config --global user.email "邮箱地址"
邮箱需与代码托管平台的注册邮箱保持一致,便于身份关联。
●查看配置信息:git config --global --list
执行后会列出所有已配置的信息,包括用户名、邮箱等,可用于确认配置是否正确。
二、仓库操作命令
仓库是 Git 管理代码的核心,以下命令用于创建、克隆和查看仓库状态。
●初始化本地仓库:git init
在当前目录下创建一个新的 Git 仓库,执行后会生成一个隐藏的.git文件夹,用于存储仓库的版本信息。
●克隆远程仓库:git clone <远程仓库地址>
将远程仓库完整复制到本地,包括所有分支和提交记录。
●查看仓库状态:git status
显示工作区中文件的状态,包括已修改、已暂存、未跟踪等信息,是日常开发中高频使用的命令。
✧多仓管理
repo是 Google 开发的用于管理 Android 版本库的命令行工具,它基于 Python 对 Git 进行了封装,目的是简化对多个 Git 版本库的管理,在管理复杂项目的多个 Git 仓库时十分实用。
在项目模块化、组件化的趋势下,各模块常作为独立的 Git 仓库从主项目剥离,各自管理版本。每个子项目都是一个 Git 仓库且有多个分支版本,为统一管理这些子项目的 Git 仓库,repo建立一个名为 “manifest 仓库” 的 Git 仓库,用于记录当前项目版本下各个子项目的 Git 仓库所处的分支。
常用命令 :
- 初始化 :repo init (options) (manifest url)
repo2 init -u [URL] -b [branch] -m manifest_dev_other.xml --depth=1 --git-lfs
各参数详细说明:
-u:用于指定 Manifest 库的 Git 访问路径。Manifest 库是存储项目清单文件的仓库,里面记录了各个子项目的 Git 地址、分支等关键信息。
-m:指定要使用的 Manifest 文件,若不指定则默认使用default.xml文件。Manifest 文件是 XML 格式的文件,详细定义了项目所包含的子项目、每个子项目的路径、对应的 Git 仓库地址以及当前应处于的分支或提交点等。
-b:指定要使用 Manifest 仓库中的特定分支。 Manifest 仓库本身也可能有多个分支,不同分支对应不同的项目版本配置。
--depth:用于指定克隆仓库时的历史记录深度,如果不指定 --depth 参数,repo 会克隆完整的仓库历史记录。
--git-lfs:该参数用于启用 Git Large File Storage(Git LFS)功能。Git LFS 是一个用于管理大文件的 Git 扩展,能将大型文件从 Git 仓库中分离出来,只在仓库中存储文件指针,而实际的大文件则存储在 Git LFS 服务器上。当使用--git-lfs参数时,repo在初始化和后续的同步过程中,会自动处理 Git LFS 相关的配置和操作,确保大文件能正确地被获取和管理。
--repo-url:指定repo的远端repoGit 库的访问路径。
--no-repo-verify:表示不验证repo源码。在下载repo工具源码时,默认会进行校验以确保源码的完整性和安全性,使用该参数可以跳过验证步骤,适用于一些对安全性要求不高但希望加快初始化速度的场景。
- 同步仓库:repo sync
该命令会根据.repo/manifests中的配置,同步所有子项目的 Git 仓库到本地,确保本地各子项目处于正确的分支和版本状态。在执行该命令前,通常需先执行repo init完成初始化配置。
repo sync -c -j 64
各参数详细说明:
-c:表示只同步当前分支。忽略其他分支的变更,只更新当前分支的代码。
-j:表示并行同步的仓库数量。有多个CPU核心时,使用并行同步可以显著提高效率。
- 查看帮助:repo help
查看repo所支持的子命令及简要介绍。若要查看某个具体子命令的详细说明,执行repo help <command>即可 。
三、文件状态管理命令
在 Git 中,文件主要有以下几种状态,这些状态反映了文件在版本控制过程中的不同阶段:
✓ 未跟踪(Untracked):指文件从未被 Git 管理过,不在 Git 的版本控制范围内。当在工作区新建一个文件时,该文件默认处于未跟踪状态。使用git status命令查看时,未跟踪文件会以红色显示,并标注 “untracked files”。
✓ 已跟踪(Tracked):指文件已被 Git 纳入管理,根据其修改情况又可分为以下几种状态:
■已提交(Committed):文件的当前版本已安全地存储在本地仓库中,是 Git 版本控制的基准状态。
■已修改(Modified):已提交的文件在工作区被修改过,但尚未添加到暂存区。此时文件的内容与本地仓库中的版本不一致,git status会以红色显示该文件,并提示 “modified”。
■已暂存(Staged):已修改的文件通过git add命令添加到暂存区后所处的状态。暂存区中的文件是下一次提交的候选内容,其版本信息已被记录,等待提交到本地仓库。git status中,已暂存文件以绿色显示,并标注 “changes to be committed”。
以下命令用于管理这些状态:
● 将文件添加到暂存区:git add <文件名>
将单个文件index.html添加到暂存区
❗ git add . :将当前目录下所有修改过的文件添加到暂存区
● 将暂存区文件提交到本地仓库:git commit -m "提交说明"
例如 git commit -m "修复登录按钮点击无响应问题",提交说明需清晰描述本次修改内容。
● 撤销工作区修改:git checkout -- <文件名>
若文件未添加到暂存区,执行该命令可恢复到最近一次提交或暂存的状态。
● 撤销暂存区修改:git reset HEAD <文件名>
将已添加到暂存区的文件撤回至工作区,保留修改内容。
四、分支操作命令
分支是 Git 的重要特性,可用于并行开发、功能隔离等场景。
●查看本地分支:git branch 执行后会列出所有本地分支,当前所在分支前会有 * 标记。
●创建分支:git branch <分支名>
●切换分支:git checkout <分支名> 或 git switch <分支名>(Git 2.23 + 支持)
●创建并切换分支:git checkout -b <分支名> 或 git switch -c <分支名>
●合并分支:git merge <被合并的分支名>
●删除分支:git branch -d <分支名> 删除已合并到其他分支的本地分支;若分支未合并,可用-D强制删除:git branch -D <分支名>。
●查看远程分支:git branch -r 列出远程仓库的所有分支,通常以origin/为前缀。
●拉取远程分支到本地:git checkout -b <本地分支名> origin/<远程分支名>
五、远程仓库交互命令
●查看远程仓库地址:git remote -v
显示当前仓库关联的远程仓库地址,包括 fetch(拉取)和 push(推送)地址。
●添加远程仓库:git remote add <远程仓库别名> <远程仓库地址>
●从远程仓库拉取代码:git pull <远程仓库别名> <分支名> 拉取远程仓库分支到本地当前分支,并自动合并。
●推送本地分支到远程仓库:git push <远程仓库别名> <本地分支名>
●删除远程分支:git push <远程仓库别名> --delete <远程分支名>
六、提交修改到合并到仓库的流程及命令
1. 提交本地修改到本地仓库
- 通过 git add 将工作区修改添加到暂存区,例如:git add .(添加所有修改)。
- 执行 git commit -m "修改描述" 将暂存区内容提交到本地仓库。
2. 同步远程仓库最新代码
- 在推送本地分支前,先拉取远程目标分支的最新代码,确保本地分支与远程同步,减少合并冲突。
git pull <远程仓库别名> <目标分支名>
- 若拉取后出现冲突,需手动解决冲突文件中的矛盾内容,然后通过 git add <冲突文件> 标记为已解决,再执行git commit -m "解决合并冲突"完成合并。
3. 推送本地分支到远程仓库
将本地分支推送到远程。首次推送新分支需添加 -u 参数建立关联,后续推送可直接使用git push。
git push <远程仓库别名> <本地分支名>
git push -u origin feature/login
4. 创建合并请求(Pull Request/Merge Request)
- 登录代码托管平台,在远程仓库页面找到已推送的分支,发起合并请求,指定目标分支(通常为main或develop)。
- 等待团队审核代码,审核通过后执行合并操作(平台上手动确认或通过指定命令)。
5. 合并完成后的清理(可选)
合并成功后,若该功能分支不再需要,可在本地和远程删除分支。
// 本地删除:
git branch -d feature/login
// 远程删除
git push <远程仓库别名> --delete <远程分支名>
七、版本历史查看命令
查看提交历史有助于追溯代码变更,以下命令可灵活查看历史记录。
● 查看提交历史:git log
显示所有提交记录,包括提交哈希值、作者、时间、提交说明等,按时间倒序排列。
● 简化显示提交历史:git log --oneline
每条提交记录以一行显示,只包含提交哈希值(前 7 位)和提交说明,简洁直观。
●查看分支合并图:git log --graph
以图形化方式展示分支的合并历史,清晰呈现各分支的关系。
●查看指定文件的提交历史:git log <文件名>
例如:git log app.js,只显示与app.js相关的提交记录。

923

被折叠的 条评论
为什么被折叠?



