Git介绍
Git是一个分布式版本控制系统,用于跟踪文件内容的变化并协调多人在项目中的工作。以下是Git的一些基本特点和功能:
-
分布式版本控制:每个开发者在本地都有一个完整的仓库副本,不依赖于远程服务器。这使得Git更加灵活和稳定,即使在没有网络连接时也可以进行版本控制操作。
-
版本控制:Git能够记录文件的历史变更,包括谁做了什么修改,何时进行了提交。每一次提交都被视为一个快照(snapshot),而非简单的文件差异。
-
分支管理:Git的分支功能非常强大,可以创建、合并和删除分支,使得并行开发和功能测试变得简单和高效。分支可以用来开发新功能、修复bug或者实验性工作。
-
远程仓库:开发者可以将本地的Git仓库与一个或多个远程仓库进行同步。这使得团队成员能够共享代码,并且能够方便地进行协作和代码审查。
-
快速存取:Git通过使用哈希值来索引文件内容,因此在本地操作时速度非常快。大部分操作可以在本地完成,不需要与服务器频繁通信。
-
开源和广泛使用:Git是一个开源项目,由Linus Torvalds创立,目前被广泛应用于各种规模的项目中,包括开源和商业项目。
Git的设计理念是为了提供一个高效、灵活和稳定的版本控制解决方案,使得开发者能够更好地管理和追踪项目代码的变化。
Git入门
1. 配置 Git
在开始使用 Git 前,需要配置你的用户信息,包括用户名和邮箱:
```bash
# 设置用户名
git config --global user.name "Your Name"
# 设置邮箱
git config --global user.email "your.email@example.com"
```
这些信息将用于每次提交,以标识提交者。
2. 初始化仓库
如果已有一个项目,进入项目目录并执行以下命令初始化 Git 仓库:
```bash
# 初始化仓库
git init
```
3. 基本操作
3.1 查看状态与提交更改
查看文件状态、将文件添加到暂存区并提交到本地仓库:
```bash
1) 查看文件状态
git status
2) 添加所有修改到暂存区
git add .
3) 或者添加指定文件到暂存区
git add <file>
4) 提交暂存区的文件到本地仓库
git commit -m "Commit message"
5) 或者以交互式方式进入提交暂存区模式,这种方式可在编辑模式下撰写提交信息
git commit
```
3.2 查看与比较修改
查看文件具体修改内容和已提交的历史记录:
```bash
1) 查看文件具体修改内容
git diff <file>
2) 查看已提交的历史记录
git log
```
4. 分支管理
分支是 Git 中强大的功能之一,允许并行开发不同的功能或版本。
4.1 基本分支操作
```bash
1) 查看本地仓库所有分支
git branch
2) 查看本地及远程仓库的所有分支
git branch -a
2) 创建新分支
git branch <branch-name>
3) 切换到另一个分支
git checkout <branch-name>
4) 基于某一个提交,创建并切换到新分支(一步完成)
git checkout -b <branch-name> <提交的hash值>
```
4.2 合并与删除分支
```bash
1) 合并指定分支到当前分支
git merge <branch-name>
2) 删除分支(-d 选项用于删除已合并的分支,-D 选项强制删除)
git branch -d <branch-name>
git branch -D <branch-name>
```
5. 远程操作
与远程仓库进行交互,例如 GitHub 或 GitLab等:
```bash
1) 添加远程仓库,origin表示该仓库命名
git remote add origin <remote-url>
2) 将本地分支推送到远程仓库
git push -u origin <branch-name>
3) 从远程仓库拉取更新
git fetch origin
4) 将远程仓库的更新合并到本地当前
git merge origin/main
5) 推送本地分支的提交到远程仓库
git push origin <branch-name>
```
6. 解决冲突
当合并操作发生冲突时,需要手动解决冲突:
```bash
1) 查看冲突文件
git status
2) 手动解决冲突后,标记文件为已解决状态
git add <resolved-file>
3) 继续合并或者 rebase 操作
git rebase --continue
```
7. 撤销操作
撤销对文件的修改或者撤销提交:
```bash
1) 撤销对文件的修改(恢复到最近一次提交时的状态)
git checkout -- <file>
2) 撤销最近的提交(本地仓库和工作目录保持最近一次提交时的状态)
git reset HEAD~1
```
这些是 Git 的基本操作和常见命令。随着实际使用和经验积累,会逐渐掌握更多高级操作和技巧,比如强大的rebase交互命令,使得代码仓库及版本控制更加高效和便捷。