Git使用
Git使用
1、配置git: (1 )设置用户名称和登录邮箱
git config --global user.name '用户名称'
git config --global user.email '用户邮箱'
(2)生成密钥:
ssh-keygen -t rsa -C '登录邮箱'
注意:这里不需要输入密码 :三次enter
打开.ssh文件夹下的id-rsa.pub文件的内容,全部复制,登录git服务器,个人账户->设置->ssh key菜单项,添加一个 粘贴即可
如图所示:
2、克隆远程项目
git clone 远程项目地址
3、初始化本地项目&&添加项目 (1).初始化本地项目
git init
(2).添加项目
git remote add origin 远程项目地址
4、开始初步使用
git status 查看本地分支文件信息,确保更新时不产生冲突
git add -u 将工作区的“新建/修改”添加到暂存区
git commit -m '注释' 暂存区的内容提交到本地库
5、完成代码提交
git pull origin master
git push origin master
操作详情:点击此处
常用:
git init:初始化本地库
git status:查看工作区、暂存区的状态
git add <file name>:将工作区的“新建/修改”添加到暂存区
git rm --cached <file name>:移除暂存区的修改
git commit <file name>:将暂存区的内容提交到本地库
提示:需要再编辑提交日志,比较麻烦,建议用下面带参数的提交方法
git commit -m "提交日志" <file name>:文件从暂存区到本地库
日志:
git log:查看历史提交
tip:空格向下翻页,b向上翻页,q退出
git log --pretty=oneline:以漂亮的一行显示,包含全部哈希索引值
git log --oneline:以简洁的一行显示,包含简洁哈希索引值
git reflog:以简洁的一行显示,包含简洁哈希索引值,同时显示移动到某个历史版本所需的步数
版本控制:
git reset --hard 简洁/完整哈希索引值:回到指定哈希值所对应的版本
git reset --hard HEAD:强制工作区、暂存区、本地库为当前HEAD指针所在的版本
git reset --hard HEAD^:后退一个版本
提示:一个^表示回退一个版本
git reset --hard HEAD~1:后退一个版本
提示:波浪线~后面的数字表示后退几个版本
比较差异:
git diff:比较工作区和暂存区的所有文件差异
git diff <file name>:比较工作区和暂存区的指定文件的差异
git diff HEAD|HEAD^|HEAD~|哈希索引值 <file name>:比较工作区跟本地库的某个版本的指定文件的差异
分支操作:
git branch -v:查看所有分支
git branch -d <分支名>:删除本地分支
git branch <分支名>:新建分支
git checkout <分支名>:切换分支
git merge <被合并分支名>:合并分支
提示:如master分支合并 hot_fix分支,那么当前必须处于master分支上,然后执行 git merge hot_fix 命令
提示:合并出现冲突
①删除git自动标记符号,如<<<<<<< HEAD、>>>>>>>等
②修改到满意后,保存退出
③git add <file name>
④git commit -m "日志信息",此时后面不要带文件名
本地库跟远程库交互:
git clone <远程库地址>:克隆远程库
功能:①完整的克隆远程库为本地库,②为本地库新建origin别名,③初始化本地库
git remote -v:查看远程库地址别名
git remote add <别名> <远程库地址>:新建远程库地址别名
git remote rm <别名>:删除本地中远程库别名
git push <别名> <分支名>:本地库某个分支推送到远程库,分支必须指定
git pull <别名> <分支名>:把远程库的修改拉取到本地
提示:该命令包括git fetch,git merge
git fetch <远程库别名> <远程库分支名>:抓取远程库的指定分支到本地,但没有合并
git merge <远程库别名/远程库分支名>:将抓取下来的远程的分支,跟当前所在分支进行合并
git fork:复制远程库
提示:一般是外面团队的开发人员fork本团队项目,然后进行开发,之后外面团队发起pull request,然后本团队进行审核,如无问题本团队进行merge(合并)到团队自己的远程库,整个流程就是本团队跟外面团队的协同开发流程,Linux的团队开发成员即为这种工作方式。
保存当前未commit的代码:
git stash
保存当前未commit的代码并添加备注:
git stash save
"备注的内容"
列出stash的所有记录:
git stash list
删除stash的所有记录:
git stash clear
应用最近一次的stash:
git stash apply
应用最近一次的stash,随后删除该记录:
git stash pop
删除最近的一次stash:
git stash drop
当有多条 stash,可以指定操作stash,首先使用stash list 列出所有记录:
git stash list
stash@{0}: WIP on ...
stash@{1}: WIP on ...
stash@{2}: On ...
应用第二条记录:
git stash apply stash@{1}
pop,drop 同理。
移除部分提交
根据之前的提交备注找出我们需要删除的版本
git log
假设:删除commit1和commit2版本,保留commit3 那么有以下两种方式,注意:想要删除的版本是前一个版本的id,比如想要删除commit2那么就需要写commit1的id,想要删除commit1需要写first commit的id。必然保留一个版本下来。
git rebase -i
<想要删除的commit id>git rebase -i HEAD~3
#数字代表需要删除的个数,顺序从后往前排列,那么根据假设我们应该输入HEAD~1才能到达commit,输入HEAD~2只会显示commit3和commit2。
由于第二种方法方便,我采用这一种方法
输入命令后便会进入下面视图
保存退出之后就直接删除了,现在只剩下了commit3.txt的提交版本,并输入以下命令更新远程仓库
git push --force
(强推更新)
git rebase --abort
(取消基变)
————中国好码农
猜你喜欢
Laravel邮箱推送
阅读 819Laravel发送邮件
在 Laravel 中集成 Swoole 实现 WebSocket 服务器
阅读 1046基于 LaravelS 扩展包把 Swoole 集成到 Laravel 项目来实现 WebSocket 服务器,以便与客户端进行 WebSocket 通信从而实现广播功能。
基于 Swoole 实现简单的 WebSocket 服务器及客户端
阅读 507基于 Swoole 实现简单的 WebSocket 服务器及客户端
学习vue-cli与准备
阅读 548vue-cli初体验
LaravelS基于Swoole实现高性能 HTTP 服务器
阅读 815LaravelS基于Swoole 配置nginx等
Swoole 实现长连接
阅读 819Swoole 实现长连接,心跳
抖音接入
阅读 1544PHP 接入抖音开放平台
Laravel7跨域更新
阅读 548Laravel跨域更新了