Git学习


一.Git简介

1.1 Git工作机制

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 什么是分支

  1. 在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支;
  2. 使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行;
  3. 对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。

2.4 分支的好处

  1. 同时并行推进多个功能开发,提高开发效率;
  2. 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

三.远程仓库

常用的远程仓库包括GitHub和Gitee。

3.1 远程仓库的创建

  1. GitHub仓库的创建

GitHub创建新仓库

GitHub创建仓库成功

  1. Gitee仓库的创建

Gitee创建仓库

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
2
3
4
5
6
7
8
9
# See https://help.github.com/articles/ignoring-files/ for more about ignoring
# dependencies
/node_modules
# production
/dist
# misc
.DS_Store
npm-debug.log*
.idea

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学习/
作者
DustWind
发布于
2022年6月27日
许可协议