Git 是一个开源的分布式版本控制系统,用于有效、高速地处理从小到大的项目版本管理。它允许团队成员在本地工作,然后将更改合并到中央仓库中,极大地提高了开发效率和协作便利性。
存储项目所有文件和文件夹的完整历史记录,包括每个版本的变更信息。每个项目都有一个仓库,通常在项目根目录下有一个隐藏的 .git 文件夹,里面存放着仓库的元数据。
即项目文件夹,是我们进行代码编辑、添加、删除等操作的地方。工作区中的文件可以是未修改的、已修改未暂存的或已暂存的状态。
也称为索引(Index),是一个文件,保存了下次将提交到仓库中的文件列表信息。通过 git add 命令可以将工作区的文件添加到暂存区,暂存区的文件状态会被记录下来,等待提交。
将暂存区的文件提交到本地仓库的操作。每次提交都会生成一个唯一的提交 ID,记录了提交时的文件状态、提交信息(如作者、日期、描述等)。通过 git commit 命令完成提交,提交后暂存区会被清空。
• 全局配置用户名和邮箱:
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
• 查看配置信息:
git config --list
• 初始化本地仓库:
cd project_folder
git init
• 克隆远程仓库:
git clone https://github.com/username/repository.git
• 添加文件到暂存区:
git add filename
或添加所有修改过的文件:
git add .
• 提交暂存区的文件到本地仓库:
git commit -m "Commit message"
• 查看工作区和暂存区的状态:
git status
• 查看提交历史:
git log
可以通过 git log --oneline 查看简洁的提交历史,每条提交只显示一行信息。5. 分支管理• 查看当前分支:
git branch
• 创建新分支:
git branch branch_name
• 切换分支:
git checkout branch_name
或使用 git switch branch_name (Git 2.23 之后的新命令)
• 合并分支:
git checkout target_branch
git merge source_branch
将 source_branch 分支的更改合并到 target_branch 分支中6. 远程仓库操作
• 查看远程仓库信息:
git remote -v
• 添加远程仓库:
git remote add origin https://github.com/username/repository.git
• 推送本地分支到远程仓库:
git push -u origin branch_name
• 从远程仓库拉取更新:
git pull origin branch_name
• 撤销工作区的修改(未暂存的文件):
git checkout -- filename
• 撤销暂存区的修改:
git reset HEAD filename
• 查看工作区和暂存区的差异:
git diff
• 查看暂存区和本地仓库的差异:
git diff --cached
• 创建标签:
git tag tag_name
• 查看标签:
git tag
• 推送标签到远程仓库:
git push origin tag_name
创建 .gitignore 文件,在其中列出不需要被 Git 跟踪的文件或文件夹模式,例如:
#忽略所有 `.log` 文件
*.log
# 忽略 node_modules 目录
node_modules/
当合并分支时出现冲突,Git 会在冲突文件中标记出冲突部分,需要手动编辑文件解决冲突,然后添加文件到暂存区并提交。
可以通过 git commit --amend 命令修改最后一次提交,添加遗漏的文件后再提交。
如果远程仓库有更新,需要先拉取更新再推送,或者使用 git push -f 强制推送(需谨慎使用,可能会覆盖远程仓库中的更改)。
通过 git add -i 命令进入交互式暂存模式,可以更精细地选择要暂存的文件或文件块。
将本地分支的更改重新应用到另一个分支上,使提交历史更加整洁。使用 git rebase target_branch 命令,但需注意变基可能会导致历史记录改写,尽量在未推送的本地分支上使用。
将特定的提交从一个分支应用到另一个分支。使用 git cherry-pick commit_id 命令,适用于需要将个别重要提交迁移到其他分支的场景。
• 官方文档:https://git-scm.com/doc(详细全面,是学习 Git 的权威资料)
• Pro Git 书籍:https://git-scm.com/book/zh-tw/v2(内容丰富,适合系统学习)
• GitHub 学习资源:https://lab.github.com/(通过实践项目学习 Git 和 GitHub 的使用)。