git是一个分布式版本控制器,简单来说就是可以记录每次代码的修改和提交,方便我们查看修改记录和版本的回退

工作流程

基本概念

  • 仓库
    git 是一个分布式版本控制器,其单位就是仓库,每个仓库就是当前git管理的总和

  • 远程仓库
    远程仓库有时也称为中心仓库,所有的代码push到的地方,理论上来说,因为git是分布式的,所以我们可以把任意一个仓库作为远程仓库来使用。不过一般我们为了统一,都会统一使用一个作为中心仓库。

  • 本地仓库
    就是git所管理的本地项目

  • 暂存区
    代码提交会先提交到暂存区,当时间合适的时候才推到远程服务区,在暂存区中,我们可以查看当前文件和上次修改之间的不同。

  • 分支
    在主时间线上可以分出一个分支来开发我们的新代码,当全部测试完之后,我们可以将分支push到主线上并删除当前开发使用的分支。
    在我的理解中,一个分支相当于一个暂存区空间,不同的分支独立拥有自己的暂存区

命令

git 相关命令较多,建议还是多用man git 或者 加--help 参数查看说明

基本命令

  • 初始化空仓库:git init
  • 查看当前暂存区情况(和上次commit的不同):git status
  • 添加指定文件的修改到暂存区: git add [file_name]
  • 添加当前路径下所有文件到暂存区: git add .
  • 提交代码至暂存区: git commit -m "[desc]"
  • 查改提交记录: git log
  • 查看当前暂存区情况(和上次commit的不同):git status
  • 查看远程仓库:git remote -v
  • 查看分支:git branch
  • 切换分支: git checkout [branch]
  • 从当前分支fork出新分支: git checkout -b [branch]
  • 从远程仓库拉取:git pull
  • push master 分支的所有提交至远程(其它分支同理): git push origin master
  • 查看当前文件的改动: git diff

常用

代码修改到一半,想回到上次提交,又不想commit。

  • 暂时保存当前更改,且暂存区干净(回到上次commit): git stash
  • git stash 之后恢复:git stash pop

打补丁和应用补丁

  • 生成补丁(根据当前分支和master的不同):git diff master > patch
  • 应用补丁(在master分支上):git apply patch
  • 检查补丁是否干净: git apply --check

查看指定文件详细改动历史: git log -p [file]
查看文件提交记录: git log -- [file]
查看指定commit提交的改动:git show [commit_id]

最新文章

  1. [LeetCode] Maximum Product of Word Lengths 单词长度的最大积
  2. 关于Java线程意外退出自动重启..
  3. Spring学习进阶 (三) Spring AOP
  4. C#写的CRC16检验算法
  5. iOS开发之静态库(六)—— 时空之争
  6. 获取技能的成功经验和关于C语言学习的调查 2015528
  7. iOS中plist的创建,数据写入与读取
  8. 九度OJ 1066 字符串排序
  9. Java封装的与当前时间比较,得到多少年,多少月,多少天前,多少小时前,多小分钟前
  10. PHP中put和post区别
  11. 一些关于IO流的问题
  12. Virtio: An I/O virtualization framework for Linux
  13. JDK设计模式之——工厂模式
  14. Microsoft SQL Server 17导出xlsx文件时报错:The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. (System.Data)
  15. 老男孩Python全栈视频
  16. PyInstaller打包python脚本的一些心得
  17. 获取链接的参数,判断是否是微信打开,ajax获取数据
  18. js正则表达式的积累
  19. 无线模块 RXB12-315m TXB12-315M 应用
  20. pixel像素基础

热门文章

  1. sublime text2 for mac 实现json格式化
  2. Windows 10家庭版升级到专业版,系统蓝屏
  3. 我使用的brackets插件
  4. RSA算法、SSL协议学习笔记
  5. java.lang.IllegalArgumentException: Page directive: invalid value for import 问题处理
  6. Qt 日志输出
  7. Redis学习1
  8. WinRAR(WinZip)压缩与解压实现(C#版Window平台)
  9. jQuery核心探究
  10. <Android 基础(十三)> shape