(图源网络,侵删)
Workspace 工作区
Index / Stage 暂存区
Repository 仓库区(或本地仓库)
Remote 远程仓库
目录
基本操作
-
基础命令
- git config user.name/email //查看用户名/邮箱 - git config --global user.name/email "......" // 设置用户名/邮箱 - git init //初始化git仓库 - git branch -r //查看远程仓库的分支 - git remote -v // 查看远程地址 - git update-index --assume-unchanged 文件名 //忽略本地文件 - git update-index --no-assume-unchanged 文件名 //取消忽略 - git stash //将当前暂存区内容连带工作区相同的内容存入git栈 - git stash apply //恢复git栈中的内容到工作区间 - git stash list //查看当前git栈下是否存在内容
- 远程项目操作的相关命令
- 在文件某个目录下点击右键Git Bash Here(在下载好git的前提下)
PS:在执行git操作的时候,先用git remote -v 查看是不是想要关联的远程地址,不是的话,用git remote rm origin 删除,然后再git remote add origin http........或者git remote origin set-url http.........- git remote add origin http.... //关联远程仓库 - git remote set-url origin http... //重置关联的远程仓库 - git clone http:.......... //拷贝一份远程仓库,也就是下载一个项目到本地仓库/版本库) - git pull //从远程库把文件拉下来,拉取所属分支最新的代码,先建立和远程库分支连接关系 - git pull origin master --allow-unrelated-histories //强制把文件拉下来(GitHub建好带ReadMe文件远程仓库在pull的时候会报本地和远程库不关联,可以用这个命令pull) - gitk //打开可视化界面 - git checkout dev // 切换到dev分支下 - cat XXX //查看该文件下内容 - git add -A //将自己改动的所有文件添加到暂存区 - git commit XXX -m "注释" // 把暂存区的所有内容提交到当前分支上 - git status //查看修改状态 - git diff XXX //查看修改了什么内容 - git diff --check //查看合并时的冲突是否解决完毕 - git checkout master //切换到master分支 - git merge dev //在master分支上把dev分支上的内容合并到master上 - git push -u origin master //将代码往所属分支推,把本地仓库分支master内容推送到元仓库去
- 版本回退
- git log //查看历史记录 - git log --pretty=oneline //可减少显示内容 - git log --graph //查看提交日志(图像模式) - git reset --hard HEAD^ //把当前版本回退到上一个版本 - git reset --hard HEAD~100 //回退到前100个版本
- 撤销修改
1 . 如果知道要删掉哪些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区,最后commit掉
2 . 直接恢复到上一个版本,则使用
3 . 直接使用撤销命令:git reset --hard HEAD^
PS:若在修改完后没有add放入暂存区,checkout 后其修改会被撤销,若是放入了暂存区,则不会git checkout -- xxx // “ -- ” 的前后均有空格)
- 删除文件操作
rm XXX //删除XXX文件
git checkout -- XXX //恢复XXX文件
git clean -文件名 // 清除在当前分支控制新建的文件或者文件夹
- 创建与合并分支
- git checkout -b dev //创建并切换分支
PS:git checkout 命令加上 –b参数表示创建并切换,相当于如下2条命令:git branch dev创建 和 git checkout dev切换
- git branch //查看当前的分支
- git brach name //创建分支
- git reflog //获取所有版本号
- git reset hard + 版本号 //恢复该版本的内容
- git merge //合并某分支到当前分支
- git branch -d name //删除分支
基本的分支简介
- master分支
主要是我们的线上环境代码分支,该分支是不可去直接操作的分支。
- dev分支(development)
开发分支,新的需求开发都可以合并到该分支进行。
- debug分支
可以理解为修补漏洞的分支,比如当前版本v1发布后有bug出现,可以创建该分支来修补。
- personal分支
个人分支,通常是会先从master pull最新的代码,然后checkout -b 来创建属于自己的个人分支。
日常项目修改操作
1、每次修改前要先git pull保证本地代码和远程仓库代码一致,防止修改后要push时出现冲突
2、git status //看一下状态
3、git add -A //将修改存入暂存区
4、git commit -m "..注释.." //提交到仓库
遇到过的error及当时的解决方法
- git文件冲突合并的报错:Your local changes to the following files would be overwritten by merge - 七度丢失的梦 - 博客园 (cnblogs.com)
- error: The following untracked working tree files would be overwritten checkout ....... Tease move or remove them before you switch branches
- 解决:强制执行或自行删除
- fatal: unable to access 'https://......': Failed to connect to 127.0.0.1 port 17890 after 2020 ms: Couldn't connect to server
- 解决:取消代理(git config --global --unset http.proxy)
- 忘记username、password
- 解决
可以登录coding/gitee/github查看邮箱名,username可能不是用户名,而是邮箱号
- 解决
- Git 的使用——提交避免输入用户名和密码 - 知乎 (zhihu.com)