### Git代码版本管理工具学习笔记
#### Git简介与基本概念
Git是一款分布式版本控制系统,用于追踪计算机文件的变动,并协调由多人共同开发的项目。它能够帮助开发者们管理项目历史,确保每次更改都有迹可循,同时支持多条开发分支并行推进。
#### 文件删除与还原
1. **删除文件**:
- `rm –f <filename>`:此命令用于直接从文件系统中删除文件。值得注意的是,在Git环境中,如果想要从版本控制中删除一个文件而不只是从文件系统中移除它,应使用`git rm`命令。
2. **从暂存区还原到已修改的内容**:
- `git checkout -- <filename>`:当工作目录中的文件被修改但尚未提交到暂存区时,此命令可以用来撤销这些改动,使文件回到最后一次提交到暂存区的状态。
3. **还原暂存区内容**:
- `git reset HEAD <file>`:该命令用于将暂存区中的文件回退到上次提交的状态,但不改变工作目录中的文件内容。如果想同时撤销工作目录中的改动,可以结合使用`git checkout -- <filename>`。
#### 用户信息配置
1. **设置用户名与邮箱**:
- `git config --(global/system/local) user.name 'nameValue'`
- `git config --(global/system/local) user.email 'email@xxx.com'`
2. **不同级别的配置文件**:
- **系统级别**:
- 文件地址:`C:\Program Files\Git\mingw64\etc\gitconfig`(适用于所有用户的全局配置)
- 配置命令:`git config --system`
- 优先级最低
- **全局级别**:
- 文件地址:`C:\Users\<username>\.gitconfig`
- 配置命令:`git config --global`
- 优先级次之
- **项目级别**:
- 文件地址:`.git/config`(特定于当前项目)
- 配置命令:`git config --local`
- 优先级最高
3. **查看配置信息**:
- 使用`cat ~/.gitconfig`或`git config --list`来查看当前生效的配置项。
#### 版本回退与查询
1. **版本查询**:
- `git log --oneline`:显示项目的历史提交记录,每条记录仅显示一行,包含哈希值、作者及简短的提交信息。
2. **版本回退**:
- `git reset <version> <file>`:将暂存区中的文件回退到指定版本。这里 `<version>` 可以是任何有效的版本标识符,例如哈希值的一部分。
- `git checkout -- <filename>`:将工作区文件回退到上次提交到暂存区的状态。
#### 文件管理命令
1. **git rm与rm的区别**:
- `git rm <filename>`:从版本控制系统中移除文件,并添加到暂存区等待下次提交时正式移除。若想恢复文件,需先用`git reset HEAD <filename>`将文件恢复到暂存区,再用`git checkout -- <filename>`覆盖工作区的文件。
- `rm <filename>`(Linux命令):仅从文件系统中删除文件,不影响版本控制状态。要恢复文件只需执行`git checkout -- <filename>`即可。
2. **git mv与mv的区别**:
- `git mv <oldname> <newname>`:将文件重命名,并自动添加到暂存区准备下次提交。要恢复原文件名,需对新旧文件名都进行回退操作。
- `mv <oldname> <newname>`(Linux命令):仅在文件系统层面重命名文件,不自动加入版本控制系统。
#### 文件添加到暂存区
1. **单个文件添加**:
- `git add <filename>`:将文件添加到暂存区。
2. **多个文件添加**:
- `git add file file2 file3 ...`:一次性添加多个文件到暂存区。
3. **所有文件添加**:
- `git add .`:将工作目录中所有修改过的文件添加到暂存区(注意:该命令会检查文件是否符合`.gitignore`规则,不符合的文件不会被添加)。
- `git add *`:同样用于添加所有修改过的文件到暂存区,但不会检查`.gitignore`规则。
通过上述内容的学习与实践,可以更好地掌握Git的基本操作,提高团队协作效率和项目管理水平。Git的强大之处在于它能够高效地处理复杂的工作流,使得多人合作变得简单而有序。