使用前的配置
在使用 git 前,需要告诉 git 你是谁,在向 git 仓库中提交时需要用到。
- 配置提交人姓名:
git config --global user.name 提交人姓名
- 配置提交人姓名:
git config --global user.email 提交人邮箱
- 查看git配置信息:
git config --list
分区
- 工作区(写代码的地方)
- 缓存区(临时存储)
- 本地库(历史版本)
本地使用
git init
:初始化 git 仓库git status
:查看文件的状态git add [name]
:将工作区的东西提交到缓存区里面git commit -m "描述"
:将缓存区的内容提交到本地仓库里面git push origin master
:将本地仓库的东西提交到远程仓库
版本的回退与前进
git log
:显示提交记录 --onlinegit reflog
:可以显示回退的步数git reset --hard hash值
:回退到指定的版本- hash
- ^
git reset --hard HEAD^
- 几个^就表示回退几步
- ~
git reset --hard HEAD~n
- n :表示要回退几步
reset 参数说明
- –soft
- 仅在本地仓库移动HEAD指针
- –mixed参数
- 在本地仓库移动HEAD指针
- 重置缓存区
- –hard
- 在本地移动 HEAD指针
- 重置缓存区
- 重置工作区
永久文件删除的找回
- 前提:删除前,文件存在时的状态已经提交到了本地库
- 操作
- 删除操作已提交到本地仓库,只需将指针指向历史记录
git reset --hard 历史记录
- 删除操作为提交到本地库:指针位置使用 HEAD
git reset --hard HEAD
- 删除操作已提交到本地仓库,只需将指针指向历史记录
比较文件的差异
git diff [文件名]
- 将工作区的文件和缓存区的文件进行比较
git diff 本地历史记录 [文件名]
- 将工作区的文件和本地库的历史记录比较
-git diff HEAD^ a.txt
- 将工作区的文件和本地库的历史记录比较
远程仓库
- pull = fetch + merge
git fetch [远程仓库地址别名] [远程分支名]
git merge [远程仓库地址别名/远程分支别名]
git pull [远程仓库地址别名] [远程分支名]
冲突
- 如果不是基于github远程库的最新版所做的修改,不能推送,必须先拉取
- 拉取后进入冲突状态1,按照分支冲突,去修改
远程仓库相关命令
- 克隆远程仓库到本地:
git clone url
- 查看远程仓库:
git remote -v
- 添加远程仓库:
git remote add [name] [url]
- 删除远程仓库:
git remote rm [name]
- 拉取远程仓库:
git pull [远程仓库地址别名] [远程分支名]
git pull git@github.com:AmazingRain/test.git main
- 推送远程仓库:
git push [remoteName] [localBranchName]
git push git@github.com:AmazingRain/test.git feature_1
备注:pull = fetch + merge
- git fetch [远程仓库地址别名] [远程分支名]
- git merge [远程仓库地址别名/远程分支别名]
分支相关命令
- 查看本地分支:
git branch
- 查看远程分支:
git branch -r
- 创建新分支:
git branch 分支名
- 切换分支:
git checkout 分支名
- 创建新分支并切换:
git checkout -b 分支名
- 删除分支:
git branch -d 分支名
- 合并分支:
git merge 分支名
- 创建远程分支(本地分支推送到远程):
git push origin 分支名
- 删除远程分支:
git push origin :heads/[name]
tag相关命令
- 查看 tag:
git tag
- 创建 tag:
git tag [name]
git tag 1.0.0 1b2e1d63ff
- 删除 tag:
git tag -d [name]
- 查看远程 tag:
git tag -r
- 创建远程 tag:
git push origin name
- 删除远程分支:
git push origin :refs/tags/[name]
跨团队协作
- fork
- 克隆
- 修改、提交推送到远程
- pull/request
- 审核、合并
git 忽略清单
将不需要被 git 管理的文件名字添加到 .gitignore
文件中,在执行git命令的时候,git就会忽略这些文件。
- 创建
.gitignore
文件 - 进行配置,比如提交时忽略
node_modules
文件夹 ,配置为:/node_modules