Git学习
一.Git简介
1.1 Git工作机制
Git包含两部分仓库,一个是本地仓库,一个是远程仓库。其基本工作机制如下图所示:
二.本地仓库
本地仓库的操作包含分支内操作以及分支间操作。
2.1 Git分支内操作常用命令
命令名称 | 作用 |
---|---|
git config –global user.name “用户名” | 设置用户签名(用户名) |
git config –global user.email “邮箱号” | 设置用户签名(邮箱名) |
git init | 初始化本地库 |
git status | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git commit -m “日志信息” 文件名 | 提交到本地库 |
git reflog | 查看版本信息 |
git log | 查看版本详细信息 |
get reset –hard 版本号 | 回退到指定版本 |
2.2 Git分支间操作常用命令
操作名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 将指定分支合并到当前分支上 |
git branch -D 分支名 | 明确要删除指定分支 |
2.3 什么是分支
- 在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支;
- 使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行;
- 对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。
2.4 分支的好处
- 同时并行推进多个功能开发,提高开发效率;
- 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
三.远程仓库
常用的远程仓库包括GitHub和Gitee。
3.1 远程仓库的创建
- GitHub仓库的创建
- Gitee仓库的创建
3.2 远程仓库的操作常用命令
命令名称 | 作用 |
---|---|
git remote -v | 查看当前所有远程仓库地址别名 |
git remote add 别名 远程地址 | 给远程仓库地址起别名 |
git push 别名 分支 | 推送本地仓库的分支内容到远程仓库 |
git clone 远程地址 | 从远程仓库克隆内容到本地 |
git pull 远程库 | 将远程仓库对于分支的最新内容拉下来后与当前本地分支直接合并 |
git diff | 对比两个版本的差异 |
git fetch | 更新远程仓库所包含分支的最新commit-id并记录到.git/FETCH_HEAD文件 |
git diff具体说明:
- 本地工作区和暂存区的diff信息:git diff 或者 git diff file
- 暂存区和版本库的diff信息(使用git add 将工作区修改保存到了暂存区后):git diff –cached
- 版本库中不同commit、分支的diff信息(使用git commit 将暂存区修改提交到了版本库):git diff commit1 commit2 或 git diff branch1 branch2
四.Git团队协作机制
4.1 团队内协作
4.2 团队间协作
五.Git命令汇总
5.1 分支内操作命令
命令名称 | 作用 |
---|---|
git config –global user.name “用户名” | 设置用户签名(用户名) |
git config –global user.email 邮箱号 | 设置用户签名(邮箱名) |
git init | 初始化本地库 |
git status | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git commit -m “日志信息” 文件名 | 提交到本地库 |
git reflog | 查看版本信息 |
git log | 查看版本详细信息 |
get reset –hard 版本号 | 回退版本 |
5.2 分支间操作命令
命令名称 | 作用 |
---|---|
git branch {-v} | 查看本地分支 |
git branch -r | 查看远程分支 |
git branch [name] | 创建本地分支(新分支创建后不会自动切换为当前分支) |
git checkout [name] | 切换本地分支 |
git checkout -b [name] | 创建新分支并立即切换到新分支 |
git branch -d [name] | 删除本地分支 |
git branch -D [name] | 删除本地分支(强制删除) |
git merge [name] | 将名为name的分支合并到当前分支 |
git push origin [name] | 创建远程分支(本地分支推送到远程仓库) |
git push origin :heads/[name] | 删除远程分支 |
git push [remoteName] –delete [name] | 删除远程分支 |
git branch -m [oldName] [newName] | 分支重命名 |
5.3 远程仓库操作命令
命令名称 | 作用 |
---|---|
git clone [address] | 从远程仓库克隆到本地 |
git remote -v | 查看远程仓库 |
git remote add [name] [url] | 添加远程仓库并给其取别名 |
git remote rm [name] | 删除远程仓库 |
git remote set-url –push[name] | 修改远程仓库 |
git pull [remoteName] [localBranchName] | 拉取远程仓库 |
git push [remoteName] [localBranchName] | 推送本地仓库的分支内容到远程仓库 |
5.4 版本操作命令(很少使用)
命令名称 | 作用 |
---|---|
git tag | 查看版本 |
git tag [name] | 创建版本 |
git tag -d [name] | 删除版本 |
git tag -r | 查看远程版本 |
git push [remoteName] [localBranchName] | 创建远程版本 |
git push origin :refs/tags/[name] | 删除远程版本 |
5.5 子模块操作命令
命令名称 | 作用 |
---|---|
git submodule add [url] [path] | 添加子模块 |
git submodule init | 初始化子模块(只需首次检出仓库时运行一下) |
git submodule update | 更新子模块(每次更新或切换分支后都需要运行一下) |
PS:删除子模块的步骤:
git rm –cached [path]
编辑 “.gitmodules” 文件,将子模块的相关配置节点删除掉
编辑 “. git/config” 文件,将子模块的相关配置节点删除掉
手动删除子模块残留的目录
5.6 Git忽略文件、文件夹不提交
在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如:
1 |
|
5.7 其他操作命令
命令名称 | 作用 |
---|---|
git reset –hard [version] | 回退到指定版本 |
git clone -b [branchName] [address] | 拉取指定分支代码 |
git push –set-upstream origin test | 服务上未创建分支时提交代码 |
Git学习
http://example.com/2022/06/27/Git学习/