Git很简单--图解攻略
Git
- Git 是目前世界上最先进的分布式版本控制系统(没有之一)
作用
- 源代码管理
为什么要进行源代码管理?
- 方便多人协同开发
- 方便版本控制
Git管理源代码特点
1.
Git是分布式管理.服务器和客户端都有版本控制能力,都能进行代码的提交、合并、.

2.Git会在根目录下创建一个.git隐藏文件夹,作为本地代码仓库
Git操作流程图解

工作区暂存区和仓库区

工作区
- 对于
添加、修改、删除文件的操作,都发生在工作区中
暂存区
- 暂存区指将工作区中的操作完成小阶段的存储,是版本库的一部分
仓库区
- 仓库区表示个人开发的一个小阶段的完成
- 仓库区中记录的各版本是可以查看并回退的
- 但是在暂存区的版本一旦提交就再也没有了
Git单人本地仓库操作
1 .安装git
sudo apt-get install git
2.查看git安装结果
git
3.创建项目
在桌面创建
test文件夹,表示是工作项目Desktop/test/
4.创建本地仓库
- 进入到
test,并创建本地仓库.git 新创建的本地仓库
.git是个空仓库cd Desktop/test/
git init
- 进入到
5.配置个人信息
git config user.name '张三'
git config user.email 'zhangsan@163.com'

默认不配置的话,会使用全局配置里面的用户名和邮箱 全局git配置文件路径:~/.gitconfig
6.新建py文件
在项目文件
test里面创建login.py文件,用于版本控制演示

7.查看文件状态
- 红色表示新建文件或者新修改的文件,都在工作区.
- 绿色表示文件在暂存区
新建的
login.py文件在工作区,需要添加到暂存区并提交到仓库区git status
- 8.将工作区文件添加到暂存区
# 添加项目中所有文件
git add .
或者
# 添加指定文件
git add login.py9.将暂存区文件提交到仓库区
commit会生成一条版本记录-m后面是版本描述信息git commit -m '版本描述'
10.接下来就可以在login.py文件中编辑代码
- 代码编辑完成后即可进行
add和commit操作 提示:添加和提交合并命令
git commit -am "版本描述"
11.查看历史版本
git log
或者
git reflog

git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log 则不能察看已经删除了的commit记录
12.回退版本
方案一:
HEAD表示当前最新版本HEAD^表示当前最新版本的前一个版本HEAD^^表示当前最新版本的前两个版本,以此类推...HEAD~1表示当前最新版本的前一个版本HEAD~10表示当前最新版本的前10个版本,以此类推...git reset --hard HEAD^

方案二:当版本非常多时可选择的方案
通过每个版本的版本号回退到指定版本
git reset --hard 版本号
13.撤销修改
- 只能撤销工作区、暂存区的代码,不能撤销仓库区的代码
撤销仓库区的代码就相当于回退版本操作
撤销工作区代码
新加代码
num3 = 30,不add到暂存区,保留在工作区git checkout 文件名
撤销暂存区代码
新加代码
num3 = 30,并add到暂存区# 第一步:将暂存区代码撤销到工作区
git reset HEAD 文件名
# 第二步:撤销工作区代码
git checkout 文件名
14.对比版本
对比版本库与工作区
- 新加代码
num3 = 30,不add到暂存区,保留在工作区 git diff HEAD -- login.py
- 新加代码
对比版本库
- 新加代码
num3 = 30,并add到暂存区 git diff HEAD HEAD^ -- login.py
15.删除文件:删除文件分为确定删除和误删
在项目中新建
test.py文件,并添加和提交到仓库确定删除处理:
# 删除文件
rm 文件名
# git确定删除文件,对比添加文件git add
git rm 文件名
# 删除后记录删除操作版本
git commit -m '删除描述'
误删处理:撤销修改即可
# 删除文件
rm 文件名
# git撤销修改
git checkout -- 文件名Git远程仓库Github
- 要使用git命令操作仓库,需要进入到仓库内部
- 要同步服务器代码就执行:
git pull - 本地仓库记录版本就执行:
git commit -am '版本描述' - 推送代码到服务器就执行:
git push - 编辑代码前要先
pull,编辑完再commit,最后推送是push
代码冲突
- 提示:多人协同开发时,避免不了会出现代码冲突的情况
- 原因:多人同时修改了同一个文件
- 危害:会影响正常的开发进度
- 注意:一旦出现代码冲突,必须先解决再做后续开发
3.解决冲突
- 原则:谁冲突谁解决,并且一定要协商解决
- 方案:保留所有代码 或者 保留某一人代码
解决完冲突代码后,依然需要
add、commit、push
标签
- 当某一个大版本完成之后,需要打一个标签
作用:
- 记录大版本
备份大版本代码
补充:删除本地和远程标签
# 删除本地标签
git tag -d 标签名
# 删除远程仓库标签
git push origin --delete tag 标签名分支
- 作用:
- 区分生产环境代码以及开发环境代码
- 研究新的功能或者攻关难题
- 解决线上bug
- 特点:
- 项目开发中公用分支包括master、dev
- 分支master是默认分支,用于发布,当需要发布时将dev分支合并到master分支
- 分支dev是用于开发的分支,开发完阶段性的代码后,需要合并到master分支
- 作用:
Git很简单--图解攻略的更多相关文章
- git小白入门全攻略
git是什么(写在前边的叨叨,就是给一点不懂的小白打个比喻,大佬请自行跳过) git在平时的开发中用的太频繁了,以至于我都不知道如何去形容它.囧. 假设我们开发的工作类似于图书整理,写的代码就是很多人 ...
- 拿nodejs快速搭建简单Oauth认证和restful API server攻略
拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...
- git实用攻略(二)
最近团队的版本控制从svn切换到了git,虽说已经使用git有2年多了,也写了一个实用攻略,但是github上的项目使用经验和公司内部团队协作的使用经验还有很多不同.补充下新的使用体会. 首先还是看一 ...
- 图解:SQL Server SSIS包和job的部署攻略
原文:图解:SQL Server SSIS包和job的部署攻略 以下将建立一个SQL Server SSIS包 然后在job中使用这个包,并将job部署到目标机器 1. 首先建立ssis包,使用sql ...
- GitHub超详细图文攻略
GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git 分类: 转载2014-03-25 21:10 10641人阅读 评论(2) 收藏 举报 GitHubbr ...
- Linux Shell脚本攻略 读书笔记
Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝:最有价值的当属文本处理,对这块我单独整 ...
- VSCode插件开发全攻略(十)打包、发布、升级
更多文章请戳VSCode插件开发全攻略系列目录导航. 发布方式 插件开发完了,如何发布出去分享给他人呢?主要有3种方法: 方法一:直接把文件夹发给别人,让别人找到vscode的插件存放目录并放进去,然 ...
- VSCode插件开发全攻略(一)概览
文章索引 VSCode插件开发全攻略(一)概览 VSCode插件开发全攻略(二)HelloWord VSCode插件开发全攻略(三)package.json详解 VSCode插件开发全攻略(四)命令. ...
- 打造一个高逼格的android开源项目——小白全攻略 (转)
转自:打造一个高逼格的android开源项目 小引子 在平时的开发过程中,我们经常会查阅很多的资料,最常参考的是 github 的开源项目.通常在项目的主页面能看到项目的简介和基本使用,并且时不时能看 ...
随机推荐
- mac ASP.NET5
不写1行代码,在Mac上体验ASP.NET 5的最简单方法 昨天微软发布了ASP.NET 5 beta2(详见ASP.NET 5 Beta2 发布),对ASP.NET 5的好奇心又被激发了. 今天 ...
- css动画 文字闪烁效果
/*定义页面基础CSS*/ body{ font-family: 'microsoft yahei',Arial,sans-serif; color: #EFEFEF; background: #22 ...
- 3.5星|《刷屏:视频时代的风传法则》:YouTube热门视频回顾与分析
刷屏:视频时代的疯传法则 作者2010年加入YouTube.本书是作者对YouTube上的热门视频的回顾与分析.第2-9章各讲一个类别的热门视频:恶搞.混音.网络歌曲.广告.现场目击.知识与科技.小众 ...
- August 18th 2017 Week 33rd Friday
If you shed tears when you miss the sun, you also miss the stars. 如果你因为错过太阳而哭泣,你也将会错过繁星. If you have ...
- July 30th 2017 Week 31st Sunday
Eternity is not a distance, but a decision. 永恒不是一段距离,而是一种决定. What can be called as eternity? Wealth ...
- Monster: half man, half beast and very scary.
Monster: half man, half beast and very scary. 怪物,半人半兽很吓人.
- ZT 第9章 Framework的启动过程
所在位置: 图书 -> 在线试读 -> Android内核剖析 第9章 Framework的启动过程 9.3 zygote的启动 前面小节介绍了Framework的运行环境,以及Dalvi ...
- [BZOJ 2730][HNOI 2012] 矿场搭建
2730: [HNOI2012]矿场搭建 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2113 Solved: 979[Submit][Statu ...
- 015.2Condiction接口
Condiction对象能够让线程等待,也能够唤醒相应的线程,通过下面方法,具体看代码:await();signal();signalAll(); 使用步骤:1)创建锁2)通过锁拿到Condictio ...
- Ubuntu 14.04 下安装Skype
操作1: Ubuntu 14.04 下安装Skype,使用 Ctr+Alt+T组合键打开终端Terminal,输入如下即可: wget -O skype.deb http://download.sky ...