git的基础命令(一)

版本回退
1. 回退到指定版本
// 回退到上一版本是HEAD^ , 上上一版本是HEAD^^
// 也可以简化成  HEAD~2 : 后面的数字代表回退几次
git reset --hard HEAD^^

// 或者如下
git reset --hard HEAD~2

// 或者后面跟commit id 这样就是恢复到指定的commit
// 这里的commit id 不一定指历史版本,
// 当你知道你删除的提交的commit值,也可以用来恢复你删除的数据
git reset --hard d08e72
2. 查找所有的操作记录
git reflog

// 下面展示的是所有你的操作记录以及包括commit值
d08e72f (HEAD -> master) HEAD@{0}: reset: moving to d08e72f
1145400 HEAD@{1}: commit: 删除test文件
d08e72f (HEAD -> master) HEAD@{2}: reset: moving to d08e72f
2275ebd HEAD@{3}: reset: moving to HEAD~1
d08e72f (HEAD -> master) HEAD@{4}: commit: hahah
2275ebd HEAD@{5}: commit: 格式化代码
93585d4 HEAD@{6}: reset: moving to 93585d4
8b00dfa HEAD@{7}: reset: moving to 8b00dfa
8b00dfa HEAD@{8}: reset: moving to HEAD^
93585d4 HEAD@{9}: commit: add test
8b00dfa HEAD@{10}: commit: mod asdt.txt
aa3ea1b HEAD@{11}: commit (initial): first commit
撤销修改
1. 修改了工作区的内容,但是还未进行 add 操作
// 该命令表示 把readme文件在工作区修改的内容全部撤销掉
git checkout -- readme.txt
2. 修改了工作区的内容,并且进行了add操作,添加到了暂存区
// 把暂存区修改的内容撤销掉,重新放回工作区
git reset HEAD readme.txt
// 然后调用第一步中 checkout的命令 丢弃工作区中的修改就可以了
3. 修改了工作区的内容,并且进行了add和commit的操作,但是没有推送到远程
// 这个时候就只能进行版本回退了
git reset --hard HEAD~1

// 或者 代表回退到上一版本
git reset --hard HEAD^   
删除文件
1. 删除工作区和仓库中的文件
// 1. 删除工作区的文件
rm test.txt
// 2. 从版本库中删除
git rm test.txt
// 3. 并提交这次记录
git commit -m "del test.txt"
2. 工作区的文件给误删了
// 该命令就是把版本库中的版本替换工作区中的版本
git checkout -- test.txt
添加远程仓库
1. 配置ssh秘钥
  1. 根据邮箱生成秘钥
// 该命令是 在本地生成秘钥 目录是在 ~/.ssh/ 下面
ssh-keygen -t rsa -C "test@qq.com"

// 执行完上面的命令 会生成id_rsa和id_rsa.pub两个文件
// 我们需要把id_rsa.pub中的公钥配置到GitHub上
➜  learngit git:(master) ✗ tree  ~/.ssh
/Users/liujingping/.ssh
├── id_rsa
├── id_rsa.pub
└── known_hosts
  1. 在GitHub上添加SSH keys就行了

在这里插入图片描述

2. 把本地仓库推送到远程仓库
// 1. 关联到远程擦那个苦
// 这里需要把 ljp345775 替换成自己的账户名
// 这里的origin 是默认的远程仓库的名字
git remote add origin git@github.com:ljp345775/learngit.git
// 2. 把本地内容推送到远程
git push -u origin master

// 这个是删除本地和远程库的关联,远程库还存在
git remote rm origin 
3. 首先创建远程库,并克隆到本地
// 从远端克隆到本地
git clone git@github.com:ljp345775/learngit.git
创建合并分支
1. 创建分支
// 查看分支
git branch 

// 创建分支
git branch dev

// 切换分支
git checkout dev
git switch dev

// 创建并切换分支
git checkout -b dev 
git switch -c dev

2. 合并分支
// 合并分支 合并dev分支到当前分支
git merge dev 

// 删除分支
git branch -d dev
// 删除 为合并代码的分支
git branch -D dev

注意

当和并分支的时候没有冲突的时候,可能会使用Fast forward模式来进行合并,

demo git:(master) git merge dev
Updating 4effb33..5b5e241
Fast-forward
 a.txt    | 1 +
 test.txt | 1 +
 2 files changed, 2 insertions(+)
 create mode 100644 a.txt

当使用该模式的时候,合并完分支以后,删除分支,就会丢失分支的信息,如下图:

在这里插入图片描述

此时我们可以禁用Fast forward模式,代码如下

// --no-ff参数,表示禁用Fast forward
// 因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。
git merge --no-ff -m "merge with no-ff" dev

合并后,在分支信息中就会看到新的提交信息,如下图:

在这里插入图片描述

推送分支 拉取分支
// 把本地分支推送到远端
git push origin master

// 推送其他分支到远程,如果远端没有,就会创建
git push origin dev

// 当本地没有远程的分支时
// 该命令是把远程分支拉取到本地
git checkout -b dev origin/dev

// 从远程远程抓取最新的代码
git pull 

// 当本地分支和远程分支没有进行关联的时候 需要运行下面的命令
git branch --set-upstream-to=origin/dev dev

储藏代码 stash
// 该命令是把工作区和暂存区中的未提交的内容全部储藏起来,存储在了堆栈中
git stash

// 从stash中 取出
// 方法一:
// 恢复内容,但是stash里面的不会删除
git stash apply
// 调用一下命令进行删除
git stash drop

// 方法二:
// 恢复的同时把stash内容也删了
git stash pop
摘取代码 cherry-pick
// 该命令表示 把 6cf7f 这次的提交放入当前分支中并生成新的提交
 git cherry-pick 6cf7f
参考教程
  1. 廖雪峰老师的Git教程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ljp345775

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值