场景GIT

场景:从git库中克隆项目

  • git clone <仓库URL> [<本地目录>]
  • 本地目录不指定按照项目名创建同名目录
git clone git@gitee.com:xxxxx.git  <--默认项目同名目录
git clone git@gitee.com:xxxxx.git  dirprj <-- 创建到dirprj目录里

场景:设置git别名

  • 后续实例都按照别名进行演示
  • 直接修改用户目录下.gitconfig这个隐藏文件
[alias]
	st = status
	co = checkout
	br = branch
	l = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --decorate
  • st – 状态命令
  • co – 检出命令
  • br – 分支命令
  • l – 日志命令

场景:本地检出分支

  • 远端有分支但是本地没有这个分支,需要切换到这个分支
git remote update //先更新一下远端信息,如果本地已经包含了远端分支信息,此语句可以忽略
git co -b branchName origin/branchName //远端分支branchName创建一个本地分支

场景:查看本地分支追踪远端的分支信息

git branch -vv 查看详细信息,其中能看到本地连接最终的远程的分支信息

场景:本地分支追踪远端分支信息有误进行修改

  • 先查看本地分支追踪远端哪个远端分支
git branch -vv  
  • 发现追踪的分支有错误,可以修改远端追踪的分支
git branch -u origin/newbranch //把追踪的远端分支修改为newbranch
//或者
git branch --set-upstream-to=origin/newbranch //把追踪的远端分支修改为newbranch
  • 如果我们需要追踪的分支,远端不存在。
//那我们在当前分支再创建一个新的分支
git branch -b newbranch2
//然后再进行推送就可以新建一个远端的分支了
git push --set-upstream origin newbranch2 //因为远端不存在newbranch2所以推送的时候进行设置

场景:分支修改名称

git branch -m oldbranch newbranch //把oldbranch 修改名称为 newbranch

场景:本地分支切换

  • 如果本地有多个分支之间互相切换采用
git co branchName //切换到branchName分支

场景:代码更新并提交到本地

git add .    //本地修改都已经更新到索引中
git commit -m "增加注释" //提交到本地版本库

场景:提交代码到远端

  • 第一次push
git push  --set- upstream origin branchName //推送到远端的 branchName
  • 之后再push,远端已经存在分支
git push 

修改最近一次提交的注释

git commit --amend -m "新的注释"

场景:打标签并推送到远端

  • 在branchName上打标签并推送到远端仓库
git co branchName //切换到branchName分支,如果已经在这个分支上可以忽略
git tag -a tagname -m "说明"  //创建tag
git push origin tagname  //推送tagname到远端仓库

场景:查询标签

git tag -l "v*"   //查找v开头的分支

场景:删除标签

git tag -d tagname //删除tagname标签 

场景:切换到标签

git co tagname

场景:提交回滚操作

这个有两种做法

  • 方法一:利用reset退回上一次操作
git reset HEAD~1  //默认mixed的,讲提交的内容从提交记录中和cache中删除,本地不回滚
git co . //本地不回滚有个好处是可以确认一下,之后执行checkout将本地的变更回滚调
git push -f //这个时候其实本地仓库落后远程仓库一个版本,所以push的时候需要强制用旧版本覆盖新版本这里加-f参数
  • 方法二:利用revert功能
git revert commitId //这样可以按照commitId对应变更生成一个反向的操作,同时会生成一个新的commit
git push // 因为是新的commit可以直接Push

场景:将其他分支的功能整合到当前分支

  • 这里使用cherry-pick功能。cherry-pick用法有一下几种情况
git cherry-pick <commit_id>  //将commit_id对应的更改,在本分支生效
git cherry-pick <commit_id1> <commit_id2> <commit_id3> //一次将多个提交,在本分支生效
git cherry-pick <commit_id1>...<commit_id2> //将(commit_id1,commit_id2]之间所有的提交都在本分支生效。左开右闭
git cherry-pick <commit_id1>^...<commit_id2> //将[commit_id1,commit_id2]之间所有的提交都在本分支生效。左闭右闭
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wp500

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

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

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

打赏作者

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

抵扣说明:

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

余额充值