Git是什么?
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
Git有什么特点?简单来说就是:高端大气上档次!下面简单介绍下git本人使用记录
ssh公钥是用来和git服务器进行数据交换的,一般生产的SSH 密钥存储在其 ~/.ssh 目录下,正常情况下会有id_rsa(这是私钥,自己用来解锁服务端传过来数据的)和id_rsa.pub(公钥,服务端解锁数据的)
简单操作
一.生成git公钥
1.生成公钥命令
ssh-keygen -o -t rsa -C "403808052@qq.com" -b 4096
2.执行查看公钥的命令
cat ~/.ssh/id_rsa.pub
3.将生成的公钥复制到码云公钥上,一般公钥都是以你的邮箱结尾的.
二.gi本地代码上传
1.把本地写好的项目放到码云或者github上(该目录下右键 Git Bash Here打开命令)
git init // 项目初始化
git add . // 添加文件(切记add后面有空格)
// 把你需要的本地文件推送到缓存区(辅助命令,查看你的状态,红色代表工作区,绿色代表缓存区)
git status
git commit -m "代码提交" // 从本地仓库的暂缓区到本地仓库
git remote add origin +地址 // 创建一个本地仓库
git remote // 查看本地仓库是否创建成功
git remote // 查看本地仓库是否创建成功
git pull --rebase origin master // 把你离线的东西拉回本地仓库(辅助)
git push origin master // 把远程仓库推送到线上
2.报错问题
// 报错信息
* branch master ->FETCH_HEAD
atal:refusing to merge unrelated histories
3.在操作过程中有可能会遇到以下错误只要以下操作即可
$ git pull origin master --allow-unrelated-histories
这样就算上传成功了
三.合并分支/git冲突/忽略文件
1.加上–no-ff 参数就可以用普通模式合并,合并后的历史有分支
//强制添加忽略文件(-f 参数)
git merge --no-ff -m "xxx" dev
2.查看分支合并图
git log --graph
3.git设置忽略文件
//强制添加忽略文件(-f 参数)
git add -f info.log
4.git冲突
什么情况下回出现冲突
在不同的分支上改动了相同的文件,git就懵逼了,不知道该怎么合并
解决方案:
当git无法自动合并分支是,就必须首先解决冲突。解决冲突后,在提交,合并完成。解决冲突就是把Git 合并失败的文件手动编辑为我们希望的内容,再提交。
五.关于版本回退
1.版本回退
git reset –hard HEAD^ (^代表一个版本)
2.删除
现在有两个操作选择:
git rm filename 删除掉 然后再提交 (正常删除)
git checkout – filename 恢复到原来的版本(失误删除)
2.撤销修改
git checkout – filename filename没有被放到暂存区
git reset HEAD <file> (暂存区 返回上一个版本)
常用命令
分支操作
git branch 创建分支
git branch -b 创建并切换到新建的分支上
git checkout 切换分支
git branch 查看分支列表
git branch -v 查看所有分支的最后一次操作
git branch -vv 查看当前分支
git brabch -b 分支名 origin/分支名 创建远程分支到本地
git branch --merged 查看别的分支和当前分支合并过的分支
git branch --no-merged 查看未与当前分支合并的分支
git branch -d 分支名 删除本地分支
git branch -D 分支名 强行删除分支
git branch origin :分支名 删除远处仓库分支
git merge 分支名 合并分支到当前分支上
暂存操作
git stash 暂存当前修改
git stash apply 恢复最近的一次暂存
git stash pop 恢复暂存并删除暂存记录
git stash list 查看暂存列表
git stash drop 暂存名(例:stash@{0}) 移除某次暂存
git stash clear 清除暂存
回退操作
git reset --hard HEAD^ 回退到上一个版本
git reset --hard ahdhs1(commit_id) 回退到某个版本
git checkout -- file撤销修改的文件(如果文件加入到了暂存区,则回退到暂存区的,如果文件加入到了版本库,则还原至加入版本库之后的状态)
git reset HEAD file 撤回暂存区的文件修改到工作区
标签操作
git tag 标签名 添加标签(默认对当前版本)
git tag 标签名 commit_id 对某一提交记录打标签
git tag -a 标签名 -m '描述' 创建新标签并增加备注
git tag 列出所有标签列表
git show 标签名 查看标签信息
git tag -d 标签名 删除本地标签
git push origin 标签名 推送标签到远程仓库
git push origin --tags 推送所有标签到远程仓库
git push origin :refs/tags/标签名 从远程仓库中删除标签
常规操作
git push origin test 推送本地分支到远程仓库
git rm -r --cached 文件/文件夹名字 取消文件被版本控制
git reflog 获取执行过的命令
git log --graph 查看分支合并图
git merge --no-ff -m '合并描述' 分支名 不使用Fast forward方式合并,采用这种方式合并可以看到合并记录
git check-ignore -v 文件名 查看忽略规则
git add -f 文件名 强制将文件提交
git创建项目仓库
git init 初始化
git remote add origin url 关联远程仓库
git pull
git fetch 获取远程仓库中所有的分支到本地
忽略已加入到版本库中的文件
git update-index --assume-unchanged file 忽略单个文件
git rm -r --cached 文件/文件夹名字 (. 忽略全部文件)
取消忽略文件
git update-index --no-assume-unchanged file
拉取、上传免密码
git config --global credential.helper store