Git的故事
Git
Git的概念
首先我们要知道git是什么,最根本的概念是版本控制,顾名思义,就是git可以帮助我们控制自己写的代码或者文档的版本控制.用以管理不同时间,不同协作者之间同一个项目的不同版本,或者说不同的状态.
上面说了这么多,最简单的总结来说,git就是一种版本控制器,通常用在团队开发的时候管理代码所使用的的软件.
Git的安装
一般我们用的系统只有三种,即windows,linux和mac
windows和mac的安装:
官网https://git-scm.com/downloads,下载对应软件即可
linux的安装:
yum install git
Git的配置
在安装完成之后,我们需要配置git的用户名和邮箱,可以选择全局配置或者局部配置
全局配置用户
# 在cmd或者bash的窗口中
git config --global user.name '用户名'
git config --global user.email '用户邮箱'
"""
上面添加的全局信息是存储在
C:\Users\用户文件夹\.gitconfig 的文件中
如果不想用指令添加全局用户的话,可以直接编辑该文件
"""
局部配置用户
"""
首先需要在仓库的目录下,右键打开Git Bash Here
指令如下:
"""
git config user.name '用户名'
git config user.email '用户邮箱'
"""
局部配置的优先级大于全局用户
"""
Git的指令
其实Git支持大多数Linux的原生指令,比如vim,ls,cat,cd等等.
Git的大致流程分两大类,即上传和下载,上传是把本地的数据上传到服务端,下载则是把服务端的数据下载到客户端.
注意:一般情况下,在上传(push)数据之前,要先从服务端(pull)下载一次,这是操作习惯.
上传的流程如下:
创建文件夹(mkdir) -> git初始化(git init) -> 提交至缓存区(git add 文件名) -> 从缓存区到版本库(git commit -m ‘提交的信息注释’) -> 从版本库提交至服务端(push)
下载则非常简单,直接用pull,或者clone即可
"""
1. 查看存在的git仓库
git status
2. 定义git仓库
git init (仓库名) # 不添加仓库名会定义当前文件夹为git仓库
3. 提交至缓存区
git add README.md
~3.缓存区的退回,即add的逆运算
git reset HEAD . # 撤销所有暂存区的提交
git reset 文件名 # 撤销某一文件的暂存区的提交
4. 从缓存区到版本库
git commit -m "注释信息"
5. 从版本库提交至服务端
在此之前,我们要配置服务端的远程源,这里我们用的是gitee的远程源,远程源一般有两种方式:
(1)https协议方式
git remote add origin https://gitee.com/用户名/仓库名
(2)ssh协议方式
git remote add origin git@gitee.com:用户名/仓库名
我们可以用
git remote -v 来查看当前配置的远程源
提交至服务端:
git push -u 远程库的代号(默认是origin) 本地的版本(默认是master)
比如:
git push -u origin master
6. 从服务端下载至本地,clone和pull还是有区别的
区别在于,clone是从服务端克隆一个一模一样的版本库到本地,复制的是整个版本库.而pull是从服务端取到一个分支更新到本地.
git pull 远程库的代号(默认是origin) 本地的版本(默认是master)
git clone 远程库的代号(默认是origin) 本地的版本(默认是master)
比如:
git pull origin master
git clone origin master
"""
Git的故事的更多相关文章
- 如何让Git适应敏捷开发流程?
一旦涉及到版本控制系统,Git实际上代表敏捷开发的水平.Git作为一款强大的开源系统,有较强的灵活性,可以按需匹配任何开发团队的工作流程.而这种分布式相比较集中式来说,可以赋予系统更好的性能特征,且允 ...
- 代码托管从业者 Git 指南
本文作者:李博文 - CODING 后端开发工程师 前言 六七年前,我机缘巧合进入了代码托管行业,做过基于 Git 支持 SVN 客户端接入.Git 代码托管平台分布式.Git 代码托管读写分离.Gi ...
- Mac 开发者常用的工具
转载:http://www.oschina.net/news/53946/mac-dev-tools 在写 Mac 程序员的十个武器之前,我决定先讲一个故事,关于 Mac 和爱情的.(你们不是问 Ma ...
- 【转】Mac 程序员的十种武器
http://chijianqiang.baijia.baidu.com/article/3733 上 在写 Mac 程序员的十个武器之前,我决定先讲一个故事,关于 Mac 和爱情的.(你们不是问 M ...
- 一个 Git 分支协作模式的进化故事
从不用版本管理到使用 Git 分支管理的故事,也就是从这个时候开始的... 某公司只有一个程序员,一开始并没有版本管理的概念.项目开发只有一个人在参与,所以也没用版本管理工具. 后来,老板又招了两个程 ...
- Git幕后的“故事”
因为做操作系统实验的原因,所以通读了一遍<Understanding git conceptually>,觉得确实不错,于是就简单地记录一下.有的地方理解的还不是很深,可能不够准确,等抽时 ...
- github与gitlab与git三个基佬的故事
我们了解了git是以个人为中心,但是人人都得数据交互呀..python程序员每天都忙着进行py交易 交互数据的方式 使用github或者码云等公有代码仓库,托管代码的地方,谁都可以看 公司内部使用gi ...
- Git历险记(四)——索引与提交的幕后故事
我想如果看过<Git历险记>的前面三篇文章的朋友可能已经知道怎么用git add,git commit这两个命令了:知道它们一个是把文件暂存到索引中为下一次提交做准备,一个创建新的提交(c ...
- 我与PHP和git不得不说的故事(梦开始的地方,从入门到放弃记录第一章)
·关于下载 阿瑶瑶跟wampsever官网搏斗了一下午,其实我觉得教材可能在PUA我.谷歌说它给的网址安全证书过期,然后下载以断网收场.(阿瑶的第一战,以失败告终) [经过我玲姐指点,下载路径变为迅雷 ...
随机推荐
- php开发面试题---游戏面向对象设计与分析实例
php开发面试题---游戏面向对象设计与分析实例 一.总结 一句话总结: 不要光空想,多看几个实例就知道自己的游戏该怎么设计了 根据实例去理解面向对象编程的的六大原则 1.英雄种类分别有:战士.法师. ...
- ICPC Asia Nanning 2017 F. The Chosen One (高精度运算)
题目链接:The Chosen One 比赛链接:ICPC Asia Nanning 2017 题意 \(t\) 组样例,每组给出一个整数 \(n(2\le n\le 10^{50})\),求不大于 ...
- PAT_A1059#Prime Factors
Source: PAT A1059 Prime Factors (25 分) Description: Given any positive integer N, you are supposed t ...
- Ubuntu12.04开机自动挂载windows分区
最近使用Ubuntu12.04时不知到怎么搞的原本能自动识别的Windows的C .D .E盘突然间无法识别了,于是上网搜了一下Ubuntu12.04下自动挂载Windows NTFS分区的方法. 还 ...
- mysql shell脚本
mysql shell连接脚本 本地连接及远程链接 #!/bin/bash #连接MySQL数据库 Host=127.0.0.1 User=username PASSWORD=password POR ...
- 【CF886E】Maximum Element
题目 考虑正难则反,答案即为\(n!-\text{返回值为n的排列数}\) 一个排列的返回值为\(n\),当且仅当在\(n\)出现之前没有一个数后面有连续\(k\)个小于它的数 设\(f_i\)表示\ ...
- element ui 弹出组件的遮罩层在弹出层的上面的解决方法
<el-dialog title="收货地址" :visible.sync="dialogFormVisible" :modal-append-to-bo ...
- Linux 进程间通信 消息队列
1.特点: 消息队列是IPC对象的一种 消息队列由消息队列ID来唯一标识 消息队列就是一个消息的列表.用户可以在消息队列中添加消息.读取消息等. 消息队列可以按照类型来发送/接收消息(消息的类型是正整 ...
- Mysql流程解析
Mysql流程解析 流程图 流程图解析 客户端发送一条sql语句. 1.此时,mysql会检查sql语句,查看是否命中缓存,如果命中缓存,直接返回结果,不继续执行.没有命中则进入解析器. 2.解析器会 ...
- git删除远程服务的文件夹
首先查看当前分支:git branch -a 删除缓存的idea:git rm --cached -r .idea 提交gitiginore文件,将.idea从源代码仓库中删除(-m 表示注解): ...