Git的使用

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

  转载请注明: java_学习记录 Git的使用

 上一篇
java基础_小记篇 java基础_小记篇
java基础集合篇1.hashmap结构;什么对象能做为key 答:可以是任意对象或数据类型 但是做为key的数据有如下要求: Map集合存储数据的主要目的是为了查找 而List集合是为了输出 自己定义的类如果要想实现对象比
2019-05-10
下一篇 
Vue学习案例入门(一) Vue学习案例入门(一)
话不多说,上代码 1.差值表达式的使用 !DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="vie
2019-03-18
  目录