Git 是一个分布式版本控制系统,以下是一些核心概念与思想:
1. 仓库(Repository)
定义:仓库是存储项目代码和历史版本的地方,可以是本地仓库或远程仓库。
示例:使用
git init
创建本地仓库,使用git clone
克隆远程仓库。
2. 提交(Commit)
定义:提交是对代码的快照,每次提交记录了代码的变化和元数据(如作者、时间等)。
示例:使用
git commit -m "message"
创建提交。
3. 分支(Branch)
定义:分支是代码开发的独立线路,可以在不同分支上并行开发。
示例:使用
git branch
查看分支,使用git checkout -b new-branch
创建并切换到新分支。
4. 合并(Merge)
定义:合并是将不同分支的代码变化合并到一起。
示例:使用
git merge branch-name
合并分支。
5. 远程仓库(Remote Repository)
定义:远程仓库是托管在服务器上的仓库,可以与本地仓库进行同步。
示例:使用
git remote add origin url
添加远程仓库,使用git push
推送代码到远程仓库。
6. 暂存区(Staging Area)
定义:暂存区是一个中间区域,用于暂存将要提交的文件变化。
示例:使用
git add file
将文件添加到暂存区。
7. 工作区(Working Directory)
定义:工作区是当前正在开发的目录,包含所有未提交的文件变化。
示例:使用
git status
查看工作区状态。
8. 标签(Tag)
定义:标签是对某个提交的标记,通常用于标记版本发布。
示例:使用
git tag v1.0
创建标签。
9. 回滚(Revert)
定义:回滚是撤销某个提交的操作。
示例:使用
git revert commit-id
回滚提交。
10. 重置(Reset)
定义:重置是将当前分支指向某个提交,可以选择性地保留或丢弃工作区和暂存区的变化。
示例:使用
git reset --hard commit-id
重置到某个提交。
11. 分支策略
定义:分支策略是管理分支和合并的策略,常见的有 Git Flow、GitHub Flow 等。
示例:使用 Git Flow 进行版本发布和维护。
12. 冲突(Conflict)
定义:冲突是指在合并分支时,两个分支对同一文件的同一部分进行了不同的修改。
示例:使用
git merge branch-name
合并分支时可能会遇到冲突,需要手动解决。
13. 钩子(Hooks)
定义:钩子是 Git 在特定事件发生时自动执行的脚本,可以用于自动化任务。
示例:使用
pre-commit
钩子在提交前进行代码检查。
14. 子模块(Submodule)
定义:子模块是将一个 Git 仓库作为另一个仓库的子目录进行管理。
示例:使用
git submodule add url path
添加子模块。
15. 变基(Rebase)
定义:变基是将一个分支的变化应用到另一个分支的基础上,通常用于保持提交历史的整洁。
示例:使用
git rebase branch-name
进行变基。
示例:基本 Git 工作流程
初始化仓库:
git init
添加远程仓库:
git remote add origin https://github.com/user/repo.git
创建并切换分支:
git checkout -b feature-branch
添加文件到暂存区:
git add file
提交代码:
git commit -m "Add new feature"
推送代码到远程仓库:
git push origin feature-branch
通过理解和掌握这些核心概念与思想,你可以更高效地使用 Git 进行版本控制和协作开发。