1. 什么是Git?
Git是一个免费的、开源的分布式版本控制系统,旨在快速高效地处理从小到大的所有项目。它允许你跟踪文件的更改,并在需要时回溯到以前的版本。Git是现代软件开发中不可或缺的工具。
2. Git的基本概念
在使用Git之前,了解一些基本概念非常重要:
•版本库(Repository):也称为仓库,是Git用来存储项目所有文件和历史记录的地方。你可以将其理解为一个项目文件夹,但它包含了所有版本信息。
•工作区(Working Directory):你正在电脑上看到的目录,也就是你进行文件编辑的地方。
•暂存区(Staging Area):一个中间区域,用于存放你准备提交到版本库的更改。你可以选择性地将工作区的更改添加到暂存区。
•提交(Commit):将暂存区的更改永久保存到版本库中。每次提交都会生成一个唯一的ID,并附带一条提交信息,描述本次更改的内容。
•分支(Branch):Git允许你从主线(通常是master或main分支)创建新的开发线。这使得团队成员可以在不影响主线代码的情况下独立开发新功能或修复bug。
•合并(Merge):将一个分支的更改整合到另一个分支中。
•远程仓库(Remote Repository):通常托管在GitHub、GitLab或Bitbucket等平台上的版本库。它允许团队成员之间共享代码和协作。
3. Git的安装与配置
3.1 安装Git
根据你的操作系统选择合适的安装方式:
•Windows:访问 Git官方网站 下载安装包并按照提示进行安装。
•macOS:可以通过Homebrew安装:brew install git,或者安装Xcode Command Line Tools。
•Linux:通常可以通过包管理器安装,例如Debian/Ubuntu系统使用 sudo apt-get install git。
3.2 配置Git
安装完成后,需要配置你的用户名和邮箱,这些信息将记录在你的每次提交中:
Bash
git config --global user.name "你的用户名" git config --global user.email "你的邮箱"
4. Git常用命令
以下是一些Git的常用命令:
•git init:在当前目录初始化一个Git版本库。
•git clone <url>:克隆一个远程版本库到本地。
•git add <file>:将文件添加到暂存区。使用 git add . 添加所有更改。
•git commit -m "提交信息":将暂存区的更改提交到版本库。
•git status:查看工作区和暂存区的状态。
•git log:查看提交历史。
•git diff:查看工作区与暂存区或暂存区与版本库之间的差异。
•git branch:查看本地分支。使用 git branch <branch_name> 创建新分支。
•git checkout <branch_name>:切换到指定分支。使用 git checkout -b <new_branch_name> 创建并切换到新分支。
•git merge <branch_name>:将指定分支合并到当前分支。
•git pull:从远程仓库拉取最新更改并合并到本地分支。
•git push:将本地分支的更改推送到远程仓库。
5. Git工作流程示例
一个简单的Git工作流程通常包括以下步骤:
1.初始化或克隆仓库:
•如果你是新项目:git init
•如果你是参与现有项目:git clone <远程仓库URL>
2.进行更改:在工作区编辑文件。
3.查看状态:git status,了解哪些文件被修改、新增或删除。
4.添加到暂存区:git add . (添加所有更改)或 git add <文件名>。
5.提交更改:git commit -m "描述本次提交的内容"。
6.推送到远程仓库(如果需要协作或备份):git push。
7.拉取最新更改(在开始工作前或遇到冲突时):git pull。
6. 总结
Git是一个功能强大的工具,掌握它将极大地提高你的开发效率和团队协作能力。本指南只是一个入门,Git还有许多高级功能等待你去探索。多加练习,你将很快成为Git的熟练使用者!
Git工作流程图
7. Git命令示例
7.1 初始化一个新的仓库
Bash
mkdir my_project cd my_project git init
7.2 添加文件并提交
首先,创建一个新文件 README.md:
Markdown
# My Project This is my first Git project.
然后,将文件添加到暂存区并提交:
Bash
git add README.md git commit -m "Initial commit: Add README.md"
7.3 查看状态和提交历史
Bash
git status git log
7.4 创建和切换分支
Bash
git branch feature/new-feature git checkout feature/new-feature
7.5 在新分支上进行更改并合并
在新分支上修改 README.md,例如添加一行:
Markdown
# My Project This is my first Git project. - Added a new feature.
提交更改:
Bash
git add README.md git commit -m "Feature: Add new feature description"
切换回主分支并合并:
Bash
git checkout master git merge feature/new-feature
7.6 克隆远程仓库
假设有一个远程仓库URL为 https://github.com/your_username/your_repo.git:
Bash
git clone https://github.com/your_username/your_repo.git
7.7 推送和拉取更改
在本地提交更改后,推送到远程仓库:
Bash
git push origin master
从远程仓库拉取最新更改:
Bash
git pull origin master
8. 版本冲突(Merge Conflict)
当两个或多个开发者修改了同一个文件的同一部分,并且尝试合并这些更改时,就会发生版本冲突。Git无法自动决定保留哪个更改,因此需要手动解决。
8.1 冲突的发生
当你执行 git pull 或 git merge 命令时,如果发生冲突,Git会提示你。
Bash
Auto-merging <file_name> CONFLICT (content): Merge conflict in <file_name>Automatic merge failed; fix conflicts and then commit the result.
8.2 解决冲突
Git会在冲突的文件中标记出冲突的部分,通常会包含 <<<<<<<、======= 和 >>>>>>> 这样的标记。
Plain Text
<<<<<<< HEAD 这是你在当前分支(HEAD)的修改。 ======= 这是你合并进来的分支的修改。 >>>>>>> feature/your-branch
你需要手动编辑文件,删除这些标记,并保留你想要的代码。解决冲突后,将文件添加到暂存区并提交:
Bash
git add <file_name> git commit -m "Fix merge conflict in <file_name>"
9. 修改与撤销
Git提供了多种方式来修改或撤销你的更改。
9.1 撤销工作区的修改
如果你对工作区的某个文件进行了修改,但还没有 git add 到暂存区,想要撤销这些修改:
Bash
git checkout -- <file_name>
9.2 撤销暂存区的修改
如果你已经 git add 到暂存区,但还没有 git commit,想要撤销暂存区的修改(将文件从暂存区移回工作区):
Bash
git reset HEAD <file_name>
9.3 撤销已提交的修改
如果你已经 git commit,想要撤销这次提交:
•git revert <commit_id>:创建一个新的提交来撤销指定提交的更改。这是推荐的方式,因为它不会改写历史,适用于已经推送到远程仓库的提交。
git revert HEAD
Plain Text
* **`git reset --hard <commit_id>`**:回溯到指定提交的状态,并丢弃该提交之后的所有更改。这个命令会改写历史,慎用,尤其是在多人协作的项目中。 ```bash git reset --hard HEAD^ # 回退到上一个版本
10. 常用命令清单速查
| 命令 | 描述 |
| git init | 初始化一个新的Git仓库 |
| git clone <url> | 克隆一个远程仓库 |
| git add <file> | 将文件添加到暂存区 |
| git add . | 添加所有更改到暂存区 |
| git commit -m "msg" | 提交暂存区的更改 |
| git status | 查看工作区和暂存区的状态 |
| git log | 查看提交历史 |
| git diff | 查看工作区与暂存区或暂存区与版本库的差异 |
| git branch | 列出、创建或删除分支 |
| git checkout <branch> | 切换到指定分支 |
| git checkout -b <new> | 创建并切换到新分支 |
| git merge <branch> | 合并指定分支到当前分支 |
| git pull | 从远程仓库拉取并合并最新更改 |
| git push | 将本地更改推送到远程仓库 |
| git remote -v | 查看远程仓库信息 |
| git remote add origin <url> | 添加远程仓库 |
| git config --global user.name "name" | 配置用户名 |
| git config --global user.email "email" | 配置用户邮箱 |
| git reset HEAD <file> | 撤销暂存区的修改 |
| git checkout -- <file> | 撤销工作区的修改 |
| git revert <commit_id> | 撤销指定提交,并生成新的提交 |
| git reset --hard <commit_id> | 强制回退到指定提交,慎用 |
864

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



