首页 > 其他 > 详细

Git学习笔记

时间:2019-03-11 19:08:52      阅读:178      评论:0      收藏:0      [点我收藏+]

为了更好的管理文件 我们需要Git这样一个强大的版本控制系统!

Git简介

Git是什么?

Git是目前世界上最先进的分布式版本控制系统【版本控制系统自动记录每次文件的改动,还可以让别人协作编辑】

Git诞生

Linux的创始人Linus在BitMover公司撤销支持的威胁下,自立门户。在两个星期时间内用C语言写成了一个分布式版本控制系统--Git.
2008年,GitHub网站上线,为开源项目提供Git存储。无数开源项目开始向GitHub迁移,如:jQuery,PHP,Ruby.
Git是在逆境下诞生出来的传世之作!

集中式&分布式的区别

Linus痛恨CVS和SVN这两个版本控制系统,它们都属于集中式版本控制系统。而Git属于分布式版本控制系统。

  • 集中式:集中式的版本库是集中存放在中央服务器的,干活的时候用自己的电脑从中央服务器获取最新版本然后再把自己修改后的版本推送给中央服务器。缺点是必须要联网才可以工作,网速慢的时候会影响工作的效率。
  • 分布式:分布式没有中央服务器,每个人的电脑上都是一个完整的版本库。现在有A和B两个人,A在自己的电脑上修改了文件,B也在自己的电脑上修改了文件,A和B只需要把各自的修改推送给对方就可以了。优点是具有安全性,一个坏了只需要从另一个人的电脑上进行拷贝就可以了。通常来说Git也会有自己的一台"中央服务器"一直保持开机,但仅仅是为了用于传输文件。

安装Git

Linux

sudo apt-get install git

Windows

从Git官方网站上下载安装程序
网速比较慢的就用百度网盘的地址

还要进行进一步的设置:

git config --global user.name "Name"  
git config --global user.email "Email"

--global参数会让这台机器上所有的Git仓库都使用这个配置,但是也可以对某个仓库制定不同的用户名和Email地址。

创建版本库

版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

创建版本库的流程:
1.找一个合适的地方创建一个空目录;windows下请保证目录名中不含有中文
2.通过git init命令把这个目录变成Git可以管理的仓库;

git init
Initialized empty Git repository in /Users/michael/learngit/.git/

之后就会发现目录下多了一个.git的目录。是作为隐藏文件存在的。

这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。

把文件添加到版本库

只能跟踪文本文件的改动,如TXT文件,HTML,程序源代码等。  
图片和视频可以记录大小的变动,显然没有办法记录你修改了什么样的地方。
强烈推荐使用UTF-8编码的纯文本,而Word文档这样的二进制存储的文件,Git就没有办法提供改动追踪。  
不要使用windows自带的记事本编辑纯文本文件,他们在文件之前添加了0xefbbbf(16)的字符。并且使用的IDE要确认已经设置为UTF-8编码。

下面是添加文件test.cpp到Git仓库的过程:
1.先把文件放到Git仓库的目录下,再通过

git add test.cpp

命令把文件添加到仓库。
2.在所有要添加的文件添加完成之后,可以通过

git commit -m "Message You Want to Mark."

进行文件添加结束后的说明。

注意:
一个commit命令可以提交多个文件,只需要一直add就可以了,也可以通过add命令一次add多个文件。

记住命令:

git init
git add <filename>
git commit -m "Message"

版本问题

git status

查看现在的仓库状态,可以查看现在有什么修改没有被提交。

git diff

可以查看未被提交的文件进行的修改。

Git学习笔记

原文:https://www.cnblogs.com/Xiaojianxiang/p/10512473.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!