1、git的工作区:在当前仓库中,新增,更改,删除文件这些动作,都发生在工作区里面。
2、git的暂存区:英文叫stage, 或index。在版本库.git目录下,有一个index文件。它实际上就是一个包含文件索引的目录树,像是一个虚拟的工作区。在这个虚拟工作区的目录树中,记录了文件名、文件的状态信息(时间戳、文件长度等),文件的内容并不存储其中,而是保存在Git对象库(.git/objects)中,文件索引建立了文件和对象库中对象实体之间的对应。如果当前仓库,有文件更新,并且使用git add 命令,那么这些更新就会出现在暂存区中。
3、版本库:当前仓库下,如果没有任何的提交,那么版本库就是对应上次提交后的内容。
工作区、暂存区、版本库之间的关系
git add 从工作区添加到暂存区
git commit -m "" 从暂存区提交到版本库
git diff 比较工作区和暂存区的区别
git diff --cached 比较的是暂存区和版本库的差别
git diff HEAD 可以查看工作区和版本库的差别
参考文档:https://www.cnblogs.com/ejar/p/16069815.html
前提:远程仓库已经创建
配置仓库 用户名称、邮箱地址
#配置用户名称
git config --global user.name "helloxujingliang"
#配置用户邮箱地址
git config --global user.email "3225043@qq.com"
#查看配置是否成功
git config -l
创建本地git库
git init
工作区文件添加到暂存区
git add .
暂存区文件提交到版本库
git commit -m "提交备注"
版本库关联到远程库
git remote add origin https://github.com/zhangsan/project.git
拉取远程库文件到本地版本库
git pull --rebase origin main
提交本地版本库文件到远程库
git push -u origin main
1.工作区和暂存区比较
git diff
2.暂存区和版本区比较
git diff --cached
3.工作区和版本去比较
git diff HEAD
参考文档:GIT分支常用命令 - 你我博客
查看当前本地库分支
git branch
创建分支
# 创建本地仓库分支
git branch branchName
# 切换到本地新创建的仓库
git checkout branchName
# 新建远程仓库
git push --set-upstream origin branchName
切换分支
git checkout branchName
创建并切换分支
git checkout -b branchName
合并分支
git merge branchName
删除本地仓库分支
git branch -d branchName
#强制删除本地仓库分支
git branch -D branchName
查看远程仓库分支
git branch -r
查看本地版本库和远程仓库所有分支
git branch -a
删除远程分支
git push origin --delete branchName
#或者简写
git push origin -d branchName
推送空分支到远程仓库
git push origin :branchName
分支合并
# 如果将main分支合并到master分支
# 1. 切换到master分支
git checkout master
# 2. 合并到master分支
git merge main
# 3. 解决完冲突之后,提交修改
git push
拉取远程指定分支的代码三种方式(Git三种方法从远程仓库拉取指定的某一个分支-蒲公英云)
# 拉取远程默认分支的代码
git clone http://......
# 拉取远程指定分支代码到本地
git clone -b [brancName] http://.......
常规的做法就是通过2条命令进行删除,先使用rm删除文件,再用git rm把删除的添加到暂存区,过程如下:
Git使用Linux命令,先删除本地文件
rm -rf filename.text
Git删除文件
git rm filename.text
Git添加到暂缓区、上传到版本库、拉取远程代码、提交本地版本库
git add .
git commit -m "删除了filename文件'
git pull --rebase origin main
git push -u origin main
在git项目根目录下创建 .gitignore文件,在文件中添加需要忽略的文件
#忽略node_modules目录下的所有文件
node_modules
#忽略miniprogram_npm目录下的所有文件
miniprogram_npm
git只关注文件变化,所有空目录是不会被提交的
#在每个空目录中创建gitkeep文件
find -d -empty -exec touch {}/.gitkeep \
#然后提交
git add .
git commit -m "gitkeep commit"
git pull --rebase origin master
git push -u origin master
git reset --hard commitVersionCode
git status 查看当前状态
git log 查看提交日志
git merge dev 合并dev分支至当前分支
git add . 添加当前目录全部文件至暂存区
git commit -m '测试' 提交,提交信息为测试
git push origin master 推送至远端分支(master为需要推送分支,按实际需要选择)
git pull origin master 合并远端分支至本地 (git pull 等于 git fetch + git merge)
git pull --rebase origin master rebase方式合并远端分支至本地
git branch 查看当前分支
git branch dev 创建dev分支 (dev可选)
git branch -d dev 删除dev分支
git branch -r 查看远程分支
git branch -a 查看所有分支 (包括远程分支)
git checkout master 切换至master分支
git checkout -b dev 创建dev分支并切换至dev分支
git checkout -b dev origin/dev 创建远程分支到本地
git restore file 丢弃工作区修改(file为具体文件名称)
git restore * 丢弃所有工作区修改
git restore --staged file 回退暂存区文件 不会更改文件内容
git rebase --continue rebase后继续操作
git rebase --abort 退出rebase 操作