git 学习小记

BitNebulaSeeker
• 阅读 990

面试的时候有问到git的相关操作,觉得自己答得不太好,明明git rebase有专门去看过来着...所以说好记性不如烂笔头(逃)


首先上经典图, 感觉比较形象地描述了整个git的流程。
git 学习小记
我们一般的操作就是,通过clone远程库(Remote)代码到本地库(Repository),工作区(Workspace)是实时反映代码相对于Repository变动的。当我们执行add时,会把代码保存到暂存区(stage,图上好像是index?),此时执行git commit -m 会把stage区代码提交至Repository,最后push执行的是RepositoryRemote的同步。
先说一些基操吧,当复习了:

  • git clone 克隆remote到repository
  • git pull = git fetch + git merge
  • git checkout branchName 切换指定分支
  • git branch branchName 新建本地分支(不切换
  • git checkout -b branchName 新建本地分支(切换
  • git checkout commitId -b branchName 对指定commitId新建分支(切换
  • git branch branchName commitId 对指定commitId新建分支(不切换
  • git branch -track branchName remoteBranchName 新建本地分支并关联远程分支
  • git branch --set-upstream [branch] [remote-branch]建立当前分支的远程分支关联
  • git branch -d branchName 删除本地分支
  • git push origin --delete branchName 删除远程分支
  • git config [--global] user.name "[name]" 设置用户名
  • git config [--global] user.email "[email address]" 设置邮箱
  • git add ./fileName 提交workplace区代码至stage区
  • git commit -m 提交stage区代码至repository并带上信息
  • git push 提交到远程 强制回退可以-f origin oBranchName
  • git merge 合并指定分支
  • git tag tagName 打tag
  • git cherry-pick commitId 获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支(这个超好用,经常不想合并旧分支但是想合并某次提交的更新就用它!!!)
  • git log 可以查看提交日志 commmitId之类的,常跟reset一起使用
  • git reset --hard/soft/mixed HEAD~/commitId 回滚本地提交
    hard 重置stage区和workPlace,包括你commit后可能的一些改动
    soft 把respository取消的内容都放进stage区
    mixed 默认 把respository取消的内容都放进workplace里面
  • git stash /stash pop 暂时将未提交的变化移除,稍后再移入
  • git rebase git pull -- rebase 具体的要看文章理解 感觉变基这个名称非常精确了 此操作常用于解决提交远程冲突时避免自动merge产生的分叉
点赞
收藏
评论区
推荐文章
前端尾随者 前端尾随者
3年前
sourceTree 添加 ssh key 方法
1.使用git客户的生成公私钥:id\rsa、id\rsa.pub1.1设置Git的username和email:$gitconfigglobaluser.name"xxx"$gitconfig\globaluser.email"xxx.mail@xxx.com"1.2.生成SSH密钥过程:1.2.1.检查是不是已经存在密钥(
菜园前端 菜园前端
2年前
手把手教你操作Git
原文链接:项目初始化流程1.查看git仓库地址在gitee上面操作,找到自己创建的项目仓库。2.克隆项目填写自己的git仓库地址gitclonehttps://gitee.com/noxussj/courseeproject3.gitcmdPSC:\git
Wesley13 Wesley13
3年前
IO模式与现实中的例子
前言关于IO模式的区别,网络上的文章一搜一大把,但每次阅读时总觉得相当晦涩而且老容易混淆,俗话说好记性不如烂笔头,所以干脆自己写一篇便于自己理解的文章以此帮助记忆和理解,不对之处还请轻喷,先谢谢!1)同步阻塞IO(BlockingIO)BIO2)同步非阻塞IO(NonblockingIO)3)IO多路复用(IOMultipl
Stella981 Stella981
3年前
Git操作
声明:1)仅作为个人学习,如有冒犯,告知速删!2)不想误导,如有错误,不吝指教!一在idea中配置git:1.更改git的安装路径:filesettings,找到versioncontrol下的git选项;选择后点击Test按钮是否正确;!Git测试(https:/
Wesley13 Wesley13
3年前
11月14日任务
一、安装Git  \如果你已经安装好了Git,可以忽略这一步  CentOS安装Git:yuminstallgit  查看Git版本信息:gitversion  配置Git用户信息:gitconfigglobaluser.name"woider"gitconfigglob
Wesley13 Wesley13
3年前
GIT命令大全
Git命令大全Git最小配置某账号下所有的Git仓库都有效gitconfigglobaluser.name'您的名称'gitconfigglobaluser.email'您的Email'只对当前Git仓库有效gitconf
Stella981 Stella981
3年前
Git生成SSH公钥
一、设置Git全局用户名和邮箱配置gitconfigglobaluser.name"huhansan"gitconfigglobaluser.email"huhansan@qq.com"如果有对设置Git信息有疑惑的可以看这边篇文章:为什么要设置Git的邮箱和用户名(https://my.oschin
Stella981 Stella981
3年前
IntelliJ IDEA(八) :git的使用
项目管理离不开版本控制,目前主流版本控制工具大概就是SVN和Git,至于两者有啥区别这里就不详细介绍了,如果有不明白的可以上网查资料,后期如果有机会我再开篇栏目细说,而且现在市场上Git的使用率已经远远高于SVN。我们在用IDEA开发项目的时候如何熟练使用Git来控制代码版本呢?一、安装Git使用Git当然需要先安装Git,安装过程就
Stella981 Stella981
3年前
Android拓展系列(3)
前几天,又切换回ubuntu11.04系统了,体验以下unity桌面。 android系统源码(包括sdk源码)的下载主要是需要用到git工具,关于git工具的使用我会抽空专门介绍,这里用到的时候简略说明一下。1.安装git和curl命令:$sudoaptgetinstallgitcorecurl说明:
住儿 住儿
2年前
Git Rebase
什么是gitrebase?gitrebase是将更改从一个分支合并到另一个分支的两个git过程之一(另一个是gitmerge)。虽然merge总是可以简单的地合并分支,但是
绣鸾 绣鸾
1年前
Tower for Mac(Git客户端) v10.2.1(373)注册版
是一款MacOSX系统上的Git客户端软件,它提供了丰富的功能和工具,帮助用户更加方便地管理和使用Git版本控制系统。以下是Tower的一些特点:1.界面友好:Tower的界面友好,使用户能够轻松地掌握软件的使用方法。2.多种Git操作支持:Tower支持