虽然大家肯定都知道这两个概念,但是还是要先说两句废话的……

Git -> 分布式版本控制系统,用来记录一个或者多个文件的变化。

GitHub -> 代码托管中心,用来提供Git服务的地方。

安装Git

这个没什么好说的,一路next就可以了。

安装过程中有两个地方要顺带提一下

1)推荐使用什么编辑器作为git默认的文本编辑器

Linux下默认使用的就是vim编辑器,当然你也可以选择Notepad++等等编辑器。这里我们暂时就保持默认设置。

保持默认设置,我们用git commit的时候,效果就是这样的

如果不熟悉vim这个文本编辑器,可以使用

git config --global core.editor notepad

这个命令可以把编辑器更改为记事本,等我们提交的时候就变成酱紫:

2)用什么方式连接本地库和远程库

这里我们也保持默认设置,使用更加通用的OpenSSL连接方式

OpenSSL是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有SSL协议实现、大量对称/非对称/摘要算法

更改环境变量

装完git过后,我们还需要设置一下你的用户名和邮箱

git config --global user.name "youname"

git config --global user.email "aa@qq.com"

这两项用来标志提交者身份,是必须要设置的,不然等你提交的时候,git就会对你发出灵魂的拷问,你是谁?到底是谁提交了代码?

git config -l

查看我们的环境变量,环境变量就已经多了这三项了……

Git代码管理结构

  • 工作区(Working Directory)

工作目录,你直接编辑代码的地方

通过git add可以把工作区的代码提交到暂存区

  • 暂存区(Stage 或 Index)

代码暂时存放的区域,是工作区和版本库之间的桥梁,一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

通过git commit可以把暂存区的代码提交到本地库中

  • 版本库(commit History)

存放已经提交的代码

我们执行push命令的时候,就是把这个区的代码 push 到远程仓库了。

我网上找了个图,我觉得这个图非常好,总结的清晰易懂

Git文件的生命周期

Git文件大概分成四种类型

Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制.。

通过git add 状态变为Staged

Staged: 暂存状态.

执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态.

执行git reset HEAD filename取消暂存, 文件状态回到上一个状态(Modified/Untracked)

Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作。

这个类型的文件通过git add可进入暂存staged, 使用git checkout 则丢弃所有修改的地方(git checkout即从暂存区中取出文件, 覆盖当前修改), 回到unmodify状态

Unmodify: 文件已经入库, 未修改。

这种类型的文件如果它被修改, 而变为Modified,如果使用git rm移出版本库, 则成为Untracked

git push 的符号笔有什么用_Git自救指南(一)——工欲善其事,必先利其器,基本概念概览...相关推荐

  1. git push 的符号笔有什么用_Git 标签(tag)作用、分支区别及常用命令

    Git 跟其它版本控制系统一样,可以对某一时间点上的版本打上标签.在做版本发布的时候经常会用到.尽管 Git 只实现了一种标签对象,但是有两种基本的标签类型,通常称为轻量级的(lightweight) ...

  2. git push 的符号笔有什么用_如何同步多个 git 远程仓库

    点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:taadis my.oschina.net/taadis/blog/3073220 ...

  3. diff git 代码实现_Git 自救指南:这些坑你都跳得出吗?

    每天都会写架构师文章,Java技术文章天天更新,感兴趣的点个关注再走呗! Git 虽然因其分布式管理方式,不完全依赖网络,良好的分支策略,容易部署等优点,已经成为最受欢迎的源代码管理方式. 但是一分耕 ...

  4. diff git 指定时间_Git 自救指南

    Git 虽然因其分布式管理方式,不完全依赖网络,良好的分支策略,容易部署等优点,已经成为最受欢迎的源代码管理方式.但是一分耕耘一分收获,如果想更好地掌握 git,需要付出大量的学习成本.即使在各种 G ...

  5. 执行git push出现Everything up-to-date

    在github上git clone一个项目,在里面创建一个目录,然后git push的时候,出现报错"Everything up-to-date" 原因: 1)没有git add ...

  6. Git 常用操作(6)- 推送到远程仓库(git push)删除远程分支(git push origin --delete)

    1. git remote add--添加远程仓库 在GitHub 上创建的仓库路径为 "git@github.com:用户名/git-tutorial.git".现在我们用git ...

  7. Git 常用操作(5)- git clone/git checkout -b/git diff/git push/git pull

    1. git clone--获取远程仓库 当 git fetch 命令从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容.它只会获取数据然后 让你自己合并. 然而,有一个命令叫作 git p ...

  8. git push origin与git push -u origin master的区别

    $ git push origin 上面命令表示,将当前分支推送到origin主机的对应分支. 如果当前分支只有一个追踪分支,那么主机名都可以省略. $ git push 如果当前分支与多个主机存在追 ...

  9. git push代码时的‘git did not exit cleanly (exit code 1)‘问题解决

    git push代码时的'git did not exit cleanly (exit code 1)'问题解决 参考文章: (1)git push代码时的'git did not exit clea ...

最新文章

  1. 【实例】销售合同VA41屏幕字段增强实例
  2. 微信开发系列之五 - 将SAP UI5应用嵌入到微信中
  3. mysql获取下一条自增的id_mysql获取一个表中的下一个自增(id)值的方法
  4. Spring for Apache Hadoop 1.0 GA
  5. 项目管理学习总结(10)——项目经理需要具备8点管理素质
  6. wamp phpcms部署网站问题
  7. nagios监控mysql服务_nagios监控mysql服务
  8. Linux 命令(53)—— exit 命令(builtin)
  9. java设计模式----简单工厂
  10. 如何将wiki个人空间共享给其他人_青年居室的共享空间设计
  11. Javascript第五章为什么用firstChild获取table中最后一个节点会取到text或者tbody第十一课
  12. Mac系统如何通过自带的工具进行磁盘修复
  13. 数据结构实践——用哈希法组织关键字
  14. python3 ZIP文件密码破解
  15. oracle--rman备份纪要
  16. http://blog.csdn.net/lnb333666/article/details/8546497
  17. python实现画樱花树
  18. Android 对apk进行签名
  19. Win11安卓子系统(WSA)怎么卸载?
  20. java 编码app_智慧职教mooc的APPJava编码技术(四川交通职业技术学院)答案搜题公众号...

热门文章

  1. 使用genext2fs制作ramdisk
  2. OpenCV学习之Scalar数据类型
  3. mysql mysql的所有查询语句和聚合函数(整理一下,忘记了可以随时看看)
  4. 行为型模式:中介者模式
  5. 在 Azure Resource Manager 中为虚拟机设置密钥保管库
  6. 在数据库‘master’中拒绝CREATE DATABASE权限 的问题
  7. C#应用程序单例并激活程序的窗口 使其显示在最前端
  8. 京东SSO单点登陆实现分析
  9. Spring EL方法调用实例
  10. mysql 迁移表时忽略索引_Mysql迁移新环境索引损坏