【基本指令】

git init :使目标文件夹变成一个仓库

git add <文件名,含后缀> : 告诉git我要添加文件了

git commit -m "<提交说明>" :向仓库提交add的文件,并且写一个小说明,可以add很多文件后一起commit

git log : 康康最近提交了啥,修改了啥,其中Head表示的是当前的版本,Head就是上个版本,Head^就是上上个版本,以此类推

git reset --hard HEAD^ :返回上一个版本(依据HEAD寻找)

git reset --hard <版本号> :依据版本号回退/复原,只需要输入版本号前几位就可以了,git会自己去找

git reflog : 得到命令记录

git status : 查看状态

git checkout -- <文件名> : 删除工作区的修改

git reset HEAD <文件名> : 删除缓存区的修改

【远程仓库push和clone】

SSH Key 相关内容 : https://www.liaoxuefeng.com/wiki/896043488029600/896954117292416

创建Github上面的仓库 : https://www.liaoxuefeng.com/wiki/896043488029600/898732864121440

git remote add origin git@github.com:<用户名>/<仓库名> :关联远程仓库(实在不行Github仓库那里有提示)

关联一个远程库时必须给远程库指定一个名字,origin是默认习惯命名;

git push -u origin master : push内容到远程仓库中去

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令

git push origin master : 关联后只要这样就可以push内容了

git remote -v :查看远程库信息

git remote rm <名字> : 解除远程库和本地库的关系

git clone git@github.com:<用户名>/<仓库名> : 从远程库克隆一份仓库到本地库

【分支】

git checkout -b <名字> :创建并切换到该分区,相当于这两条命令 ($ git branch dev $ git checkout dev)

git branch : 查看当前分支

git merge :将当前分支合并至X分支

git branch -d :删除X分支 , 使用大写的D可以强行删除还未成果完成合并的分支(当然,这类情况发生的时候,git会提醒你的)

下面的更新后的更科学的switch切换

git switch -c :创建并切换到该分区

git switch :切换到X分支

git merge --no-ff -m "xxxxxxxxx" 在no-ff模式下进行合并

git stash :存储当前的工作并隐藏,可以在之后恢复

git stash list : 查看已存储的工作现场

git stash apply : 恢复,恢复后不会删除stash

git stash pop : 恢复,同时删除stash

这部分注意是用来处理bug的情况,详见廖老师的原教程 https://www.liaoxuefeng.com/wiki/896043488029600/900388704535136

【远程仓库与多人协作】

git remote : 查看远程库的信息,使用 git remote - v 可以查看详细信息

git push <远程库名/一般是origin> <分支名> :推送,比如$ git push origin master

在默认情况下,远程clone下来的项目只可以得到master(主分支)

git checkout -b <分支名> <远程仓库名>/<分支名> :建远程的某个分支到本地,比如 $ git checkout -b dev origin/dev

git pull : 抓取最新的提交(比如你和同伴同时在dev上修改,此时就需要先把提交pull下来,然后合并分支,再继续修改)

推送失败,因为你的小伙伴的最新提交和你试图推送的提交有冲突,解决办法也很简单,先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送

这一部分可以详见廖老师的教程 https://www.liaoxuefeng.com/wiki/896043488029600/900375748016320

在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;

*git rebase : 使合并操作变“直”,感觉是不一定有必要的骚操作,廖老师教程:https://www.liaoxuefeng.com/wiki/896043488029600/1216289527823648

【标签】

Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针

git tag : 给对应的分支打上标签,name就是名字,默认是给HEAD打标签

git tag <commit码> :给对应的commit码的修改打上标签

创建带有说明的标签,用-a指定标签名,-m指定说明文字。比如$ git tag -a v0.1 -m "version 0.1 released" 1094adb

git tag : 查看所有标签

git show : 查看某个标签的信息

注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

git tag -d :删除某个标签

git push origin :将某个标签推送至远程

git push origin --tags : 一次性推送所有尚未推送的标签

【结语】

七七八八也写了不少了,再次感谢廖雪峰老师的git教程!

总结相关 https://www.liaoxuefeng.com/wiki/896043488029600/900062620154944

最新文章

  1. SPSS数据分析—多分类Logistic回归模型
  2. Soundslice – 美妙乐谱!Web 技术高大上的应用
  3. 【F#】核心数据多线程处理的首选
  4. T-SQL 常用语句学习
  5. 小结IE6的坑
  6. dataTables 插件学习整理
  7. 【Spark篇】---SparkSQL中自定义UDF和UDAF,开窗函数的应用
  8. C# Quartz定时任务corn时间设置详解
  9. aspx 页面中 js 引用与页面后台的数据交互 --【 后台调用 js 】
  10. 拉格朗日乘子法&amp;KKT条件
  11. JavaEmail-邮箱
  12. 用U盘制作EXSI启动盘
  13. SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)
  14. aips初步设想
  15. BZOJ 2440 [中山市选2011]完全平方数 | 莫比乌斯函数
  16. XGB 调参基本方法
  17. oracle pl/sql程序
  18. windows10安装配置scikit-learn步骤
  19. 系统导出数据到excel,数据量过大(大约10W)条,导致服务器 cpu 100%解决方法
  20. 【转】javascript中值传递,地址传递,引用传递的问题(使用js创建list对象时会用到)

热门文章

  1. MYSQL 悲观锁和乐观锁简单介绍及实现
  2. SpringBoot 配置文件以及依赖 加上跨域配置文件
  3. 采用lua脚本获取mysql、redis数据以及jwt的校验
  4. 看完我的笔记不懂也会懂----javascript模块化
  5. GDB调试:从入门到入土
  6. 阿里巴巴Druid,轻松实现MySQL数据库连接加密!
  7. Numpy的终极备忘录
  8. PAT-1154(Vertex Coloring )+map使用+vector建图+set的使用
  9. 《Selenium自动化测试实战》新书上市,有需要朋友们可以了解下,欢迎大家多提宝贵意见
  10. Linux速通 随笔整理