前言

Git

平时我都是用SVN进行版本,终于是花了一下午的时间简单把Git入门了一下。平时用小乌龟的话,Git和SVN一样还是很容易入门的。

Git基本概念及命令行

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

创建出来的.git内的是仓库区

.git外面的目录是工作区

Git常用命令行

git init xx:在右键的位置创建一个名为xx的文件夹

git status:查看当前文件夹状态:

git add a.txt:将a.txt这一未被管理的文件放进暂存区

git add .:将所有的当前修改放进暂存区

git commit -m“创建了xxx”:将暂存区的变化生成一个新的版本,“”中的内容是日志

git log:输出之前的版本变化

git clone xx:从服务器上克隆项目

touch .gitignore :创建一个忽略文件

touch xx.txt:创建一个xx.txt文件

vim命令行

vim编辑器: i 编辑模式

esc 退出当前模式

shift+zz退出vim

访问Git的方式

https方式:

第一次克隆需要我们输入账号密码(私有项目)

ssh方式:

  1. ssh是一种开源非对称加密通信协议,
  2. ssh只是一种协议,有开源实现也有商业实现,git默认使用开源实现的openssh
  3. ssh通信需要一对密钥(公和私一对),私钥留在自己电脑上,公钥给其他的电脑
  4. 使用GitGUI生成密钥,并把公钥放在服务器上

添加、提交、推送、拉取

添加 add (如果使用使用小乌龟 勾选即为add)

提交 commit:提交只提交到本地仓库,需要推送才会到把变化更新到服务器仓库

推送 push:如果服务器版本比我们新则不会推送不成功,需要先拉取

拉取 pull:拉取时应确保工作区整洁(先提交本地再拉取服务器的变化)

冲突

冲突如何产生的:两个分支修改了同一个文件,合并的时候会发生冲突

如何解决冲突:协商修改冲突位置,并重新提交

如何减少冲突:

  1. 先pull再修改
  2. 确保自己正在修改的文件是最新版本的
  3. 各自开发各自的模块,如果要修改公共文件,最好先确认有没有人正在修改
  4. 不要擅自修改他人的代码

忽略文件

忽略文件:.gitignore

作用:带有被忽略的文件后缀的文件不会被提交

按文件名忽略文件夹:文件夹名/ ([Aa]忽略大小写)

按路径忽略文件夹:/文件夹名(路径)/

忽略文件:*.后缀名

反忽略:忽略次级文件夹,反忽略对文件和文件夹都有效,!*.文件名、!A/

版本回退

版本回退的本质就是head指针指向的改变

在版本日志界面选择一个节点,使用重置(Reset)命令

Head 当前分支的引用指针(重置就是移动Head这个指针)

Index 就是缓存区(被Add的,也可以说是将要提交的,文件的快照)

工作区 .git所在的目录以及子目录

一半选择硬重置

子模块

子模块就是一个git仓库包含其他git仓库

当我们需要把其他开源项目作为本项目的一个库,并可可以随时拉取更新的时候

或者我们的项目需要分模块独立开发的时候可以使用子模块

克隆有子模块的仓库,需要选择递归

issue和PullRequest(github、gitee)

issue:讨论

PullRequest:拉取请求,为项目贡献代码,请求项目管理者合并自己的代码

git非常灵活,可以根据自己的需要构思出来不同的工作流(团会开发的方式和流程)

资料下载

资料下载

提取码:5io6

参考资料

Git版本控制轻松入门