Git基本使用

简介: Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。(命令行和Linux很像)

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

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。(命令行和Linux很像)

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

特点:

速度
简单的设计
对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
完全分布式
有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
1.2 Git和SVN的区别?
SVN:是集中式版本控制系统,版本库集中放在中央服务器,而开发人员在开发过程中,首先要从中央服务器下载最新版本,开发完成后,再将自己开发的的代码提交到中央服务器。

集中式版本控制工具缺点:服务器单点故障、容错性差

Git:是分布式版本控制系统,分为两类仓库:本地仓库、远程仓库

本地仓库:是在开发人员自己的电脑上的仓库

远程仓库:是在远程服务器上的Git仓库

代码托管中心:维护远程库

局域网下:GitLab
互联网下:GitHub(国外)、Gitee(码云国内)

Clone:克隆,将远程库复制到本地

Push:推送,将本地仓库代码上传到远程库

Pull:拉取,将远程仓库代码下载到本地仓库

1.3 Git工作流程
从远程仓库中克隆项目至本地仓库

从本地仓库checkout代码进行代码修改

在提交前将代码add至暂存区

commit至本地仓库,保存修改的各个历史版本

修改完成后,需要和团队成员共享代码时,将代码push到远程仓库

二、Git至码云(国内),GitHub(国外)
简介,可以将自己的笔记或是项目放上去。

2.1 打开Git Bash生成SSH公钥
命令行:ssh -keygen -t rsa -C “您的邮箱地址”,回车三次

通过路径找到公钥位置,以记事本或文本编辑器打开id_rsa.pub文件,复制

或使用命令行:cat ~/.ssh/id_rsa.pub 将文件打印至终端,复制

2.2 注册码云进入设置找到ssh公钥

点击确定,输入码云密码,添加成功

打开Git Bash测试,命令行:clear(清除窗口)

命令行:ssh -T git@gitee.com

连接成功!

2.3 在码云上新建一个仓库获取仓库地址
在码云首页找到仓库旁边有个+号,点击,新建测试仓库

进入仓库,如图,复制仓库地址

在团队开发中,会有多名成员,在仓库管理中可以通过仓库成员管理添加成员

2.4 本地文件上传到码云
打开需要上传的文件夹,右击打开Git Bash窗口

初始化一个本地仓库

命令行:git init

添加至暂存区

命令行:git add 文件全称(可以是文件夹,也可以是多个文件,空格隔开)

提交全部:git add .

commit提交至本地仓库

命令行:git commit -m “first commit”

添加远程仓库,码云上的测试仓库的地址

命令行:git remote add origin “远程仓库地址”

命令行(查看远程仓库):git remote -v

将本地仓库push至远程仓库

命令行:git push origin master

发生冲突,远程仓库也有readme文件,处理冲突,在第8点

选择舍弃线上文件,强制推送,git push origin master -f

远程仓库查看,成功上传

同步冲突

本文在码云平台创建仓库上已经存在readme文件,在提交时可能会存在冲突,这时您需要选择的是保留线上的文件或者舍弃线上的文件;

如果您舍弃线上的文件,则在推送时选择强制推送(加上-f)

git push origin master -f

如果您选择保留线上的readme文件,则需要先执行

git pull origin master

然后才可以推送

2.5 Git常用指令
将远程仓库克隆到本地

命令行:git clone 远程仓库地址

远程仓库

从远程仓库获取最新版本到本地仓库,不会自动merge,先初始化本地仓库,再添加远程仓库

命令行:git fetch origin master

从远程仓库获取最新版本并merge到本地仓库,先初始化本地仓库,再添加远程仓库

命令行:git pull origin master

本地仓库,查看仓库状态,修改了测试.txt里的内容由test1改为test2,(提示要提交至本地仓库,先add至暂存区,commit至本地仓库)

命令行:git status

简洁:git status -s

查看版本号

命令行:git log

简化信息命令行:git log --pretty=oneline

版本回退
在 Git 中,用 HEAD 表示当前版本,也就是最新的提交 commit id,上一个版本就是 HEAD^,上上一个版本就是 HEAD^^,当然往上 100 个版本写 100 个 ^ 比较容易数不过来,所以写成 HEAD~100。

命令行:git reset --hard HEAD^ (回退上一个版本)

测试.txt文件内容回退为test1

删除文件

命令行:git rm 文件全称

目录
相关文章
|
4月前
|
存储 开发工具 git
Git的简介以及基本使用
Git的简介以及基本使用
|
5月前
|
NoSQL Linux 开发工具
【Linux】第十站:git和gdb的基本使用(下)
【Linux】第十站:git和gdb的基本使用
63 0
|
5月前
|
NoSQL Linux 开发工具
【Linux】第十站:git和gdb的基本使用(上)
【Linux】第十站:git和gdb的基本使用
22 0
|
10月前
|
数据可视化 网络安全 开发工具
git可视化版本控制工具SourceTree的基本使用
git可视化版本控制工具SourceTree的基本使用
194 0
|
10月前
|
Linux 开发工具 数据安全/隐私保护
【Git】Git 的基本使用
【Git】Git 的基本使用
71 0
|
11月前
|
缓存 开发工具 数据安全/隐私保护
git基本使用和github使用仓库拉取和提交
git基本使用和github使用仓库拉取和提交
|
11月前
|
网络安全 开发工具 git
Git的基本使用
Git的基本使用
56 0
|
11月前
|
开发工具 git Perl
Git基本使用
Git基本使用
86 0
|
开发工具 git Docker
git:github的tag标签基本使用和自动发布软件包
git:github的tag标签基本使用和自动发布软件包
225 0
git:github的tag标签基本使用和自动发布软件包
|
关系型数据库 MySQL Shell
团队开发中git的基本使用和多人协作合并管理
最近忙于公司内部流程审批系统,团队在我未入职公司前,一直未使用版本控制,导致多数人不会使Git,开发人员对Git不熟练,项目版本控制受阻(开发人员普遍觉得sftp方便); 由我编写开发文档规范: 开发规范文档(包括:Php、Git、Mysql);
108 0