git 源代码自动检查_Git源代码管理及版本控制

源代码管理及版本控制:

git 比svn更时髦

github

源代码管理,版本管理

对程序员来说,最重要的是代码

公司花了钱,就要获取源代码

所以源代码要有科学的办法管理起来

大家在做项目时,是如何管理源代码的

做一个tag标记,区分不同的版本

一个app上线,肯定还是有bug,用户体验也永远有提升的空间

当一个版本上线后,有人改bug,有人写新功能

都不能在原来的项目基础上修改代码

花三个月时间 上线

有客户反映有bug,如果上线一月有bug,

解决:

备份 保持代码在发布时的状态

做一个新功能添加动画效果失败,修改了n多代码,还得向后退,

血的教训

这时就需要版本管理

能够把开发过程中每一次代码变更都记录下来

并且提供了几种手段防止之前的问题

管理水平: 一个行业的标准

为什么要代码管理

ISO编码(国际标准化组织)

对于软件,也同样提出一个标准

软件到达什么程度,才能是一个合格的标准

产品质量:产品包 产品包生产过程

CMMI 软件成熟度的标志

在大公司中都会有认证的

一个软件的资质 CMMI 招标时会用,一个软件值多少钱

在大公司很重要

ISO和CMMI 都软件都有严格的要求,必须有

配置管理的一项 怎么管理你的源代码

源代码的管理的认识

1.保证源代码的完整

2.保证源代码的保密

代码产生的历史过程

对源代码管理要有历史观

对公司来说,他会对每一天产生的源代码都有记录

奖金:项目管理的手段 改bug的数量 多bug,罚钱 代码的行数(插件,查看代码的行数)

测试阶段 优化代码,测试bug,

以上管理不合理

就用版本控制 分文件管理,记录每一天的工作成果

一个产品发了1.0 还会发2.0..

不能在源包上修改新功能或者是修改bug

产品有一定的周期性,会按照1.0 2.0 这样的周期是迭代

iphone1 能直接做到iphone6的功能,这就不会有了安卓,但是为啥没这么做,因为没有这些功能,如果你把以后的都加上了,上线之后,你要做什么

产品的开发是需要有开发规律的

多人开发,

如果所有代码放在同一个文件中

版本管理

1.集中式 老板弄服务器,每个人的都提交到老板那,开发者只有一份新的  本地只有最新的代码 版本的历史是看不到的

有人 程序员 不爽 觉得麻烦,总是经过老板的同意

于是有了git

2.分布式  (由程序员开发出  linux系统的开发者之一)

: git 对全球程序员的第二个贡献 所有的平台都可以使用

历史记录也会在本地有一份,可以把整个版本库拖在本地

git是不是只有程序员可以用 NO

所有在电脑上写文本的人,比如一个书刊的发展

曹雪芹 红楼梦 ....如果那个时代有git,那么你就知道了红楼梦的草稿

当前工作目录 pwd

第一行 pwd 不是桌面,则想办法进入桌面

2.cd desktop 到达桌面  (cd 进入文件夹)

3.创建文件夹 mkdir mygit

cd mygit 进入mygit

git 命令行 敲git 进入git

git init 初始化git,打开git没有任何东西,其实是有的,只是是隐藏文件.git

会创建一个git仓库 .git,内部有很多文件

ls

HEAD

hooks 钩子 当你需要对git的功能自定义时,可以使用

objects 保存的一些对象 数据

branches 分支 1.0版本上线后,再开发新功能时,就是在分支上开发的.主干是默认分支 (所有被版本控制的控制都在这里)

description

苹果对git的支持很到位

所有git的功能都是有.git这个文件夹控制的

创建文件,改为纯文本状态

开始写红楼梦

写完保存在myGit文件夹中

雪琴吃午饭去,在之前把写好的作品放在git库中

git status 检查git库的状态

先回到git库中

cd..

nothing added to commit but untracked files present (use "git add" to track)

没有提交的内容,需要使用用git add 命令(注意:后面带后缀.txt)

Changes to be committed:

(use "git rm --cached ..." to unstage)

new file:   hlm.txt

Untracked files:

(use "git add ..." to include in what will be committed)

.DS_Store

这个新文件被git 追踪了

命令 git commit -m “第一回成功了”(-和m之间不能有空格)

先做配置

git config --global user.name “zhangmao” 配置当前使用的用户名

git config --global user.email “1101..@qq.com” 配置当前使用的用户名

总结用过的命令

git 调起git程序

git config 列出或修改git配置

git config —global user.name 配置用户名

git config —global user.email 配置邮箱

init 初始化一个git库

add 要求git跟踪文件 (将文件添加到版本库管理之下)

commit 提交文件到git库 需要用到一个-m 后加注释 将要根据注释知道自己做了什么-m建立一个说明

工作区 添加add命名后,会把文件copy一份到git库中,同时版本库会追踪文件的变化,当一个文件进入缓冲区,再使用commit后,正在进入到版本库中,主分支

图 廖雪峰的官方网站 (看)

写第二回

git status >> modified..

git add (把文件中工作区赋值到缓存区)

git add .

git commit -m “写好第二回”

回顾今天的事情

git log 可以看到刚配置的邮箱和用户名 commit 后有一个信息摘要,是一个id,唯一的标志了你的操作

格式化log的方式

git log —pretty=oneline 把log格式化为一行

雪琴 感觉第一章写的不好,就想要修改

修改后

git status

发现修改了

git diff  可以列出文件区别 ,比较原文件和修改后的文件

感觉不错,决定提交

git commit -a 自动调用了git add

git commit -a -m “修改了第一回标题” (把add命令省略)

git log 查看修改记录

雪琴 开始写第三回

第二天

感觉之前写的不行  回滚

git status

git checkout hlm.txt   把工作区中尚未提交的给去掉

git reset --hard 强制 回滚

git reset —hard 回滚到哪写哪的id

总结刚使用的命令

git log 查看所有的提交记录

git diff 比较文件的异同

git checkout 命令 可以回滚未add的修改

git reset 命令 可以回滚已经add的修改

git reset 命令也可以回滚commit的修改

发现后悔了,我之前写的是对的

git log

git reflog 记录了你的所有操作 可以得到操作的id,根据id就可以回到那个id

git log 查看所有的操作记录

曹雪琴找好人帮他写

给他开辟一个新的地方写,不影响原来的写作

开辟分支,让好友在分支上写

git branch

*master  (master 表示默认分支,) (*表示在哪个分支)

git branch zyz

git checkout zyz   切换分支到zyz

于是把电脑给好友,让好友写作

继续写作

第三回

好友提交

git commit -a -m "第三回完成"

感觉好友写的好,决定合并两人代码

1.切换自己的分支 自己的 分支没有好友的内容

git checkout master

2.git merge zyz 合并zyz的内容

总结

branch 查看分支 ,创建分支

checkout 切换分支

merge 合并分支

分支这个作用是很有用的,当你正式版

git创建分支非常快

曹学琴回来写第四回

提交

git commit -a -m "第四次完成"

好友来

git checkout zyz

发现没有曹的第四

合并分支

git merge master

好友写第五回

曹回来,决定第五回不行

于是自己亲自写第五回

切换到自己的分支

自己写

提交

发现好友一部分还可以 ,就合并

git merge zyz

发现冲突

当发生冲突时,需要手动的修改冲突,解决了冲突之后再次提交就可以了

总结:合并分支可能产生冲突,多人同时修改一个文件时,也会产生冲突

曹决定发布一个预览版

发布版本起一个版本号

git tag

以上关于git库的本地管理

接下来远程管理

曹出差,想要出差也能写作

需要网络间接到版本库

自己的电脑不行,因为可能是动态IP

这时就需要服务器

曹不是搞IT的,不会搞服务器,也买不起服务器(一台服务器好几千)

曹想借,比人告诉他不用借,

有个网站可以免费试用github

国内也有一个类似的网站

git.osChina.net 国内在线的git库 (服务器快,在国内 而且是中文)

两者的操作都是一样的

github对公开项目是免费的,私有项目是收费的

于是曹在OSChina上注册了下

登陆

在下角 新建项目

项目名 介绍 项目语言 html

GitIgnore也选html

.app之类的文件 别人也会创建一个app,怎么忽略,通过GitIgore

开源许可证 不开源

私有项目 选择

也选择文件占位符

创键.

HTTPS SSH  后跟一个URL 根据这个url 可以连接到本地的git库

怎么连

回到osChina 点用户小图标 点ssh公钥,在这里添加公钥(如何获取公钥,点击下面的提示),把公钥粘贴过来,会生成一个小名字,添加成功,返回,你f发现SSh中有你添加的公钥

通过这种方式,你就可以连接到本地库,而且数据的传送也是加密的

如果密码丢失,怎么办,找到公钥私钥删掉,会生成一个新的公钥,把得到的新公钥添加到网站上

远程库,已经添加成功

命令 clone 将远程git库复制到本地

命令行使用

先把工作目录切换到桌面

cd ~/desktop

pwd

git clone 后面是那个能够复制的地址(https)(第一次使用clone的时候,需要你在终端输入你开源社区的账号和密码)

创建一个工程,放在版本库文件夹中

工程中?表示未追踪状态

A 需要添加

M 这个文件是勾选状态

webstrom和命令行,可以混用

webstrom 只提供了有限的功能,更高级的功能需要命令行来提供

webstrom对git的支持很好

git push 把本地的库推送的远程服务器上

你push后,

到osChina,刷新,看push的内容

同理

Pull 把远程库中的内容拉到本地库

pull push 多人合作时,可以使用

打赏

微信扫一扫,打赏作者吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值