git操作命令(第一次拉取代码、git diff、git stash、git回滚、其它基础操作命令)

一. 新拉取远程仓库中的代码

  1. 本地新建文件夹
  2. 在该文件夹下执行如下命令,创建本地git仓库
    git init
  3. 连接远程仓库
    git remote add origin http://host:port/xxxxx.git
  4. 拉取远程master分支代码
    git pull origin master
  5. 查看本地分支
    git branch
  6. 查看本地及远程所有分支
    git branch -a
  7. 更新分支状态
    git fetch
  8. 拉取远程另外一个分支到本地
    git checkout -b dev2 origin/dev2
  9. 重置远程仓库地址
    git remote set-url origin http://host:port/…

二. git diff命令

  1. 直接输入git diff
    查看尚未暂存的文件更新了哪些部分;

三. git stash命令

  1. git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
  2. git stash save ‘message’:备份工作区内容,同时添加备注信息。
  3. git stash save -a “messeag” :没有加 -a 这个option选项,代码开发可能是在原代码上进行修改的。而对于在项目里加入了代码新文件的开发来说,-a选项才会将新加入的代码文件同时放入暂存区。
  4. git stash apply: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。但是不会将该stash记录删除
  5. git stash drop: 把最近的一条stash记录删除。
  6. git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复,同时会删除这条stash记录,相当于git stash apply和git stash drop一起执行了。
  7. git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
  8. git stash clear: 清空Git栈,原来存储的所以stash的节点都消失了。

应用场景:
使用git的时候,我们往往使用branch解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的bug,我们往往会把完成一半的代码 commit提交到本地仓库,然后切换分支去修改bug,改好之后再切换回来。这样的话往往log上会有大量不必要的记录。其实如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急Bug,那么使用’git stash’就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这个时候stash命令就大有用处了,前提是我们的代码没有进行commit,哪怕你执行了add也没关系,我们先执行git stash命令,什么意思呢?意思就是把当前分支所有没有commit 的代码先暂存起来,这个时候你再执行git status你会发现当前分支很干净,几乎看不到任何改动,你的代码改动也看不见了,但其实是暂存起来了。执行git stash list你会发现此时暂存区已经有了一条记录。这个时候你可以切换会其他分支,赶紧把bug修复好,然后发布。之后一切都解决了,你再切换回来继续做你之前没做完的功能,但是之前的代码怎么还原呢?git stash apply你会发现你之前的代码全部又回来了,就好像一切都没发生过一样,紧接着你最好需要把暂存区的这次stash记录删除,执行:git stash drop就把最近一条的stash记录删除了,是不是很方便?其实还有更方便的,你可以使用:git stash pop来代替apply命令,pop跟apply的唯一区别就是pop不但会帮你把代码还原,还自动帮你把这条stash记录删除,省的自己再drop一次了,为了验证你可以紧接着执行git stash list命令来确认是不是已经没有记录了。而且我们可以多次将未提交的代码压入到栈中,当你多次使用’git stash’命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,'git stash list’命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用’git stash apply stash@{1}'就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用’git stash clear’来将栈清空。

四. 撤销&回滚操作(git reset、git revert、tag回滚)

  1. git reset和git revert回滚方式,见博文:https://blog.csdn.net/asoar/article/details/84111841
  2. 更推荐的一篇博文:https://blog.csdn.net/yxlshk/article/details/79944535
  3. tag回滚:
    (1)切换分支到master
git checkout master

(2)查看标签tag

$ git tag
qstesttag1
qstesttag2
qstesttag3

(3)查看某个标签tag的详情

$ git show qstesttag1
commit bb0ee590b0d05b8ebb0ef04f44fc2f151ea3ba73

(4)通过commit id回退

git reset --hard bb0ee590b0d05b8ebb0ef04f44fc2f151ea3ba73

(5)此时需要强制推送到远程仓库中(注意需要暂时去掉gitlab中master分支的protected,否则push会失败)(此命令一定谨慎使用!)

git push -f origin master

在这里插入图片描述
(6)push成功后,gitlab中记住修改回protected。

五. 其它操作命令

  1. 本地创建分支
git checkout -b 新分支名

执行该指令后,会在本地创建一个新分支,该分支是从当前分支上检出的,所以所有文件内容都和当前分支一模一样
2. 删除本地分支(先切换到别的分支上)

git branch -d 要删除的本地分支名
git branch -D  要删除的本地分支名(强制删除)
  1. 删除远程分支(有必要的情况下执行)
git push origin --delete 远程分支名
  1. 查看git的提交记录
git log
  1. 本地分支和远程分支建立联系 (使用git branch -vv 可以查看本地分支和远程分支的关联关系)
 git branch --set-upstream-to=origin/远程分支的名字 本地分支的名字 
  1. 查看git版本号
git tag 
  1. 创建tag版本(在commit之后,push之前执行)
git tag 1.0.2 

默认情况下,git push 并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。其命令格式如同推送分支,运行 git push origin [tagname] 即可

1)push单个标签到远程分支

git  push  origin  v2019

2)push 本地所有的标签到远程分支

git  push  origin  --tags
  1. 拉取本地不存在的远程分支到本地,并切换
git checkout -b dev(本地分支名称) origin/dev(远程分支名称)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值