IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git快速入门 -> 正文阅读

[开发工具]git快速入门

学习来源:B站狂神

https://www.bilibili.com/video/BV1FE411P7B3?p=11&spm_id_from=pageDriver

?

1.版本控制

1.1简介

定义:版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。用于管理多人协同开发项目的技术

  • 实现跨区域多人协同开发,跟踪记录整个软件的开发过程

  • 统计工作量

  • 并行开发、提高开发效率,降低人为错误

  • 组织和保护你的源代码和文档

常见的版本控制工具:

  • Git

  • SVN(Subversion)

  • CVS(Concurrent Versions System)

  • VSS(Micorosoft Visual SourceSafe)

  • TFS(Team Foundation Server)

  • Visual Studio Online

?

1.2版本控制分类

  1. 本地版本控制:记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS。

  2. 集中版本控制:所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改,如SVN、CVS、VSS。

    集中式版本控制系统必须联网才能工作,所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。

    在这里插入图片描述

  3. 分布式版本控制

    每个人都拥有全部的代码,所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。

    只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。

    在这里插入图片描述

?

1.3Git与SVN区别

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。

Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。Git可以直接看到更新了哪些代码和文件!

Git是目前世界上最先进的分布式版本控制系统。

?

1.4git历史

Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

Linux社区中存在很多的大佬!破解研究 BitKeeper !到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束。

Linux 开源社区基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。(2周左右!)

Git是免费、开源的,最初Git是为辅助 Linux 内核开发的,来替代 BitKeeper!

Linux和Git之父李纳斯·托沃兹(Linus Benedic Torvalds)1969、芬兰

?
?

2.Git安装与配置

一切东西下载太慢就去找镜像!

git官网: https://git-scm.com/

淘宝镜像下载:http://npm.taobao.org/mirrors/git-for-windows/

卸载:清除环境变量,控制面板-程序一键卸载

安装:无脑安装

  • Git Bash:Unix与Linux风格的命令行,使用最多

  • Git CMD:Windows风格的命令行

  • Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

常用的Linux命令:

cd     #改变目录
cd ..  #回退到上一个目录
pwd    #显示当前所在的目录路径
ls(ll) #都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细
touch  #新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件
rm     #删除一个文件, rm index.js 就会把index.js文件删除
mkdir  #新建一个文件夹
rm -r  #删除一个文件夹, rm -r src 删除src目录
rm -rf /  #切勿在Linux中尝试!删除电脑中全部文件!
mv     #移动文件, mv index.html src ,这样写必须保证文件和目标文件夹在同一目录下
reset  #重新初始化终端/清屏
clear  #清屏
history#查看命令历史。
help   #帮助
exit   #退出

?

环境配置:

git config -l                 #查看配置
git config --system --list    #查看系统config
git config --global  --list   #查看当前用户(global)配置

文件位置:

  • Git\etc\gitconfig文件:–system 系统级

  • C:\Users\moli\ .gitconfig:只适用于当前登录用户的配置 --global 全局

设置用户名与邮箱(用户标识,必要):

git config --global user.name "kuangshen"        #名称
git config --global user.email 24736743@qq.com   #邮箱

?
?

3.Git基本理论

Git本地有三个工作区域:

  • 工作目录(Working Directory)
  • 暂存区(Stage/Index)
  • 资源库(Repository或Git Directory)
  • 加上远程的git仓库(Remote Directory)可以分为四个工作区域

在这里插入图片描述

  • Workspace:工作区,就是你平时存放项目代码的地方

  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

?

4.git搭建仓库

本地仓库搭建

  • 创建全新的仓库,会出现一个.git文件夹(隐藏文件夹)

    # 在当前目录新建一个Git代码库
    git init 
    
  • 克隆远程仓库:去 gitee 或者 github 上克隆url

    # 克隆一个项目和它的整个代码历史(版本信息)
    git clone [url]
    

?

5.git文件操作

文件的四种状态:

要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。

  • Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制;通过git add变为Staged。

  • Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致。这种类型的文件有两种去处, 如果它被修改, 而变为Modified;如果使用git rm移出版本库, 则成为Untracked文件。

  • Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作。这个文件也有两个去处, 通过git add可进入暂存staged状态; 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !

  • Staged: 暂存状态,执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态;执行git reset HEAD filename取消暂存, 文件状态为Modified。

查看文件状态:

git status [filename]   #查看指定文件状态
git status              #查看所有文件状态
git add .               #添加所有文件到暂存区
git commit -m "消息内容"  #提交暂存区中的内容到本地仓库 -m 提交信息

?
忽略文件:

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等。可以在主目录下建立 .gitignore 文件,此文件有如下规则:

  • 注释为#

  • 可以使用Linux通配符,例如:星号 * 代表任意多个字符,问号 ?代表一个字符,方括号 [abc] 代表可选字符范围,大括号 {string1,string2,…} 代表可选的字符串等。

  • 感叹号 ! ,将不被忽略

    *.txt        #忽略所有 .txt结尾的文件,这样的话上传就不会被选中
    !lib.txt     #但lib.txt除外,不会被忽略
    /temp        #仅忽略项目根目录下的Temp文件,不包括其它目录temp
    build/       #忽略build/目录下的所有文件
    doc/*.txt    #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
    

?
?

6.使用gitee

github 是有墙的,比较慢,在国内的话,我们一般使用 gitee ,公司中有时候会搭建自己的gitlab服务器。

gitee设置本机绑定SSH公钥,实现免密码登录!(码云是远程仓库,我们是平时工作在本地仓库,就可以不用输入密码直接push)

# 进入 C:\Users\moli目录下打开git bash,生成公钥
ssh-keygen -t rsa

在这里插入图片描述

将公钥信息id_rsa.pub中的内容添加到码云ssh中。

使用码云创建一个自己的仓库,并克隆到本地。

解决用ssh-key后仍须输入密码的问题:

  • 使用ssh方式克隆

  • 如果你已经用https方式克隆了仓库,不必删除仓库重新克隆,只需将当前项目中的 .git/config文件中的

    url = https://gitee.com/Name/project.git修改为url = git@gitee.com:Name/project.git

?
?

7.idea中集成git

新建项目,绑定git

在这里插入图片描述

我们只需要把远程的git项目拷贝到我们的项目中,注意观察idea的变化。

文件为提交前是红色,提交后是绿色。

修改文件,使用IDEA操作git:

  • 添加到暂存区
  • commit
  • 提交push到远程仓库

?
?

8.GIT分支

在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发。

在初始化本地Git仓库的时候,Git默认已经帮我们创建了一个名字叫做master的分支(主分支)。

master主分支的作用是:

  • 用来保存和记录整个项目已完成的功能代码
  • 不允许程序员直接在master分支上修改代码,我们需要在自己负责开发的分支上进行开发

?
常用分支命令:(idea文件右键也可以修改分支)

# 列出所有本地分支
git branch  
# 列出所有远程分支
git branch -r
# 新建一个分支,但依然停留在当前分支
git branch [branch-name]  
# 新建一个分支,并切换到该分支
git checkout -b [branch]
# 合并指定分支到当前分支
$ git merge [branch] 
# 删除分支
$ git branch -d [branch-name] 
# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

可以去官网进行学习:在这里插入图片描述

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-07 11:21:14  更:2022-05-07 11:22:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:55:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码