Git命令全解析:从新手到熟手的必备指南

11 下载量 172 浏览量 更新于2024-09-01 收藏 108KB PDF 举报
Git是世界上最流行的分布式版本控制系统,它允许开发者跟踪和管理代码变更。通过理解Git的基本概念和常用命令,可以更高效地协作开发项目。 1. **基本概念** - **Workspace(工作区)**:你的正常工作目录,即你编写和修改代码的地方。 - **Index / Stage(暂存区)**:在正式提交之前,你可以先将改动添加到暂存区,准备进行提交。 - **Repository(仓库区或本地仓库)**:保存项目历史记录的地方,包括所有的提交和分支信息。 - **Remote(远程仓库)**:通常在服务器上,用于团队成员共享代码和协同工作的地方。 2. **新建代码库** - **初始化Git仓库**:使用`git init`命令可以在当前目录创建一个新的Git仓库,而`git init [project-name]`则会在指定目录初始化仓库。 - **克隆远程仓库**:使用`git clone [url]`可以下载远程仓库及其完整的历史记录到本地。 3. **配置** - **查看配置**:使用`git config --list`可以列出当前的Git配置。 - **编辑配置**:`git config -e [--global]`打开编辑器来修改配置。 - **设置用户信息**:`git config [--global] user.name "[name]"`和`git config [--global] user.email "[email address]"`用于设置提交代码时使用的用户名和邮箱。 4. **增加/删除文件** - **添加文件**:使用`git add [file1] [file2]`将文件添加到暂存区,`git add .`则添加所有更改过的文件。 - **交互式添加**:`git add -p`允许你逐个选择代码块进行提交。 - **删除文件**:`git rm [file1] [file2]`删除文件并移除暂存区中的记录,`git rm --cached [file]`仅从暂存区中移除。 - **重命名文件**:`git mv [file-original] [file-renamed]`可以重命名文件并跟踪这个变更。 5. **代码提交** - **提交**:`git commit -m [message]`将暂存区的更改提交到仓库,`git commit [file1] [file2] -m [message]`只提交指定文件。 - **提交所有变化**:`git commit -a`会提交工作区自上次提交以来的所有变化。 - **查看diff**:`git commit -v`在提交时显示详细的差异信息。 - **修改最近的提交**:`git commit --amend`可以用来替换最近一次的提交,常用于修复提交信息或者合并多次小的提交。 6. **分支管理** - **创建分支**:`git branch [branch-name]`创建新分支,`git checkout -b [branch-name]`创建并切换到新分支。 - **切换分支**:`git checkout [branch-name]`可以切换到指定分支。 - **合并分支**:`git merge [branch-name]`将指定分支的更改合并到当前分支。 7. **远程操作** - **查看远程**:`git remote`列出所有远程仓库,`git remote -v`显示详细信息。 - **添加远程**:`git remote add [remote-name] [url]`添加新的远程仓库。 - **拉取远程更新**:`git fetch [remote-name]`获取远程仓库的最新变动,`git pull [remote-name] [branch]`将远程分支的更新合并到本地分支。 8. **解决冲突** - 当多人同时修改同一文件时可能会发生冲突,需要手动编辑冲突文件并使用`git add`和`git commit`来解决。 9. **标签管理** - **创建标签**:`git tag [tag-name]`为当前提交创建标签,`git tag [tag-name] [commit-hash]`为特定提交创建标签。 - **查看标签**:`git tag`列出所有标签。 - **推送标签**:`git push origin [tag-name]`将标签推送到远程仓库。 通过掌握这些Git基础命令和概念,你可以有效地管理代码版本,实现高效的团队协作。在实际工作中,根据项目需求和团队协作方式,你可能还需要学习更多高级功能,如rebasing、cherry-picking等。