Git 基础操作、以及流程步骤

版本控制

说到版本控制,脑海里总会浮现大学毕业是写毕业论文的场景,你电脑上的毕业论文一定出现过这番景象!

1
2
3
4
5
6
7
8
9
10
11
毕业论文_初稿.doc
毕业论文_修改1.doc
毕业论文_修改2.doc
毕业论文_修改3.doc
毕业论文_完整版1.doc
毕业论文_完整版2.doc
毕业论文_完整版3.doc
毕业论文_最终版1.doc
毕业论文_最终版2.doc
毕业论文_死也不改版.doc
...

以上就是使用最原始的方式进行版本控制,但是这种方式有显著缺点:

  • 多个文件,保留所有版本时,需要为每个版本保存一个文件...
  • 协同操作,多人协同操作时,需要将文件打包发来发去...
  • 容易丢失,被删除意味着永远失去...(可以选择网盘)

为了解决以上版本控制存在问题,应运而生了一批版本控制工具:VSS、CVS、SVN、Git等,其中Git属于绝对霸主地位。

注意:一般版本控制工具包含两部分

  • 客户端(本地):本地编写内容以及版本记录
  • 服务端(网盘):将内容和版本记录同时保存在远程(可有可无)

GIT介绍  

Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。 Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。Git 是根据GNU通用公共许可证版本2的条款分发的自由/免费软件,安装参见:http://git-scm.com/

GitHub是一个基于Git的远程文件托管平台(同GitCafe、BitBucket和GitLab等)。

Git本身完全可以做到版本控制,但其所有内容以及版本记录只能保存在本机,如果想要将文件内容以及版本记录同时保存在远程,则需要结合GitHub来使用。使用场景:

  • 无GitHub:在本地 .git 文件夹内维护历时文件
  • 有GitHub:在本地 .git 文件夹内维护历时文件,同时也将历时文件托管在远程仓库

其他:

    集中式:远程服务器保存所有版本,用户客户端有某个版本
    分布式:远程服务器保存所有版本,用户客户端有所有版本

Git使用
- 什么是GIT,eg:如下

- 张开的故事:资源共享网站
- 小弟弟系列
- 小芳系列

初始化操作(命令在下面):

  初始化后,会在当前目录自动创建 .git 文件夹,该文件是Git中最重要的文件夹,因为Git相关文件以及版本都将保存在该文件夹中,有了它,再也不用担心我好多文件来记录版本了,通过Git命令可以将所有版本保存在 .git 文件中。

 

目前已使用Git的四个命令,这四个命令已经可以代替本地多个文件保存版本的方式:

- 第一个版本:进入程序目录:
git init   初始化,表示即将对当前文件夹进行版本控制。(新建的版本第一次要初始化操作)
git add .   当前目录中所有文件添加到【某个地方】
git commit -m '描述信息'	  第一版本git已经生成,这个描述信息中可以写第一次版本,第二次版本等等
git status	查看当前状态,若有内容修改的,会提示红字(查看Git当前状态,如:那些文件被修改过、那些文件还未提交到版本库等。)
git log    查看提交记录,即:历史版本记录

- 新功能: 李浩专区

开发到了一半,紧急修复线上BUG

git stash----->>下面三行是步骤
			
	解决bug
	git add .
	git commit -m '修复bug完毕'

git stash pop 
	可能出现冲突,出现之后不要着急,手动解决冲突
eg:冲突警告
	Auto-merging templates/index.html
	CONFLICT (content): Merge conflict in templates/index.html

开发功能完毕

git add . 
git commit -m '解决冲突后,继续开发后续功能'

PS:

  这些编号的,都是输入这个命令之后,后面加编号名称,记得有空格

git stash           将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态(白话:目前位置,共写了5个版本,现在正在写5版本中的东西,输入这个命令,那么正在写的代码会暂时保存到其他地方,此时会回归到5版本从未做过任何修改的状态,注意:也可以这么说,可以用这个把工作区域弄成干净的状态,因暂时保存到其他地方,就相当于这样了)
git stash pop       将第一个记录从“某个地方”重新拿到工作区(可能有冲突);(白话:跟上面的git stash联合起来看,就是修改了5版本的问题之后,会和5版本所写的新内容进行合并,合并的时候有可能冲突,这个时候就需要手动来解决冲突)
git stash list      查看“某个地方”存储的所有记录(查询到的是带编号的)
git stash clear     清空“某个地方”
git stash apply     编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突) ----->>后面跟编号,表示把这个编号的版本重新拿到工作区;跟pop的区别是,pop是拿到的第一个,也就是正在编辑的这个。
git stash drop      编号,删除指定编号的记录      PS:注意用pop和apply的区别

git reflog----->>查看都有那些版本标识

git reset --hard ‘后面跟版本标识‘  表示:回到某个版本

git stash list 是里面存放的所有东西

这个apply后面跟编号,指的是获取到某个编号的,而pop之的是第一个

 

 PS:add后面跟文件名表示:只是把这个文件名增加到暂存区;而小数点表示:当前所有的文件都增加到暂存区

下面一幅图完美诠释以上操作:

  即可更新状态,也可回滚。

工作区:当前开发程序所在目录称为工作区,即:工作开发都是在该目录,该区域的文件会有状态的变化且状态由git自动检测,如果程序中文件做任何操作(增、删、改),文件状态均会被检测到,可以使用 【git status】命令查看。

版本库:工作区检测到有文件发生变化,那么意味着较上一个版本之后对程序进行了修改,修改完成之后,可以当做下一版本进行提交,那么就是执行 【git add .】 将所有文件提交到暂存区,然后再执行【git commit -m '又一个版本'】提交到版本库的分支即可,之后可以使用【git log】命令查看版本记录。

 ———————————————————————

http://www.cnblogs.com/haiyan123/p/7989167.html  可参考博客

总结开发流程步骤:

项目背景:这个创业者想开发一个资源共享的系统

阶段一:顺利上线代码

首先在你创建的项目的文件夹里面右键--->点击Gir Bash Here---->把git运行起来。

1、初始化:git  init

2、如果你第一次使用git的时候,需要配置一下。如果你已经配置了,以后就不用配置了>>>如下:
  git config --local user.name  'xxx'
  git config --local user.email  'xxx@example.com'

  注意:执行git commit 命令时,可能会提示进行用户和邮箱的配置,该配置用于记录当前版本由那个用户提交

3、把当前的目录以及及所有的子文件添加到git:

  git add .    #所有的文件

  git templates/index.html   #具体添加的文件

4、真实的把数据提交上线,设置版本:git commit -m "描述信息"     注意:这个描述信息一定好好写

5、查看状态,看那个是否被修改过:git status

  一定记得先add,后commit,add之后是没有放到版本里的,只有commit的时候才有版本

6、查看有几个版本:查看版本提交记录   :git log  

7、回滚到上一个版本:git   reset --hard   版本号

8、再跳回去(查看往后的版本号):git reflog 

———————————————————————

最后需要往GitHub上进行push推送的时候  会提示输入用户名和密码的,然后输入自己的github注册的用户名,和自己邮箱密码即可。

———————————————————————

ps:

红色》》  未管理的状态  git status
绿色》》  已经归我管理的状态  git add.
白色》》  已经移走的状态    git commit -m "描述信息"

———————————————————————

PS:

  git常用命令速查表

 

 详细参考:http://www.cnblogs.com/wupeiqi/p/7295372.html

 

附属一张大神画的流程图:

 

 

posted @ 2017-09-18 19:28  Heartbreak-Utopia  阅读(245)  评论(0编辑  收藏  举报