GIT

Git 是一个开源的分布式版本控制系统。

控制系统:

目前相对主流的是Git 与 SVN。

Git 与 SVN 区别点:

  • 1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。

  • 2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。

  • 3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。

  • 4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

  • 5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

git记录的是每次变化的内容而不是每个时刻的文件,因此,git的版本控制,只能监控文本文件的变化。

安装配置

在Git - Downloads (git-scm.com)下载相应版本的git安装文件。

CNPM Binaries Mirror

git本地所有的配置项可以使用如下命令查看

git config --list

要在本地设置当前用户

git config --global user.name "XXX"
git config --global user.email "邮箱地址"

user.name和user.email设置,将来连接服务器时,服务器记录我们这里设置的内容。

所以,这里设置的内容仅仅作为服务器记录的内容。

创建git仓库

对于一个不是git仓库的目录,打开图形界面会显示如下内容

使用gui或命令行创建

git init

在目录中会自动产生一个隐藏文件夹 .git。

记录变化

git(所有的版本控制软件都只能详细记录文本文件的变化,对于二进制文件只能记录存在与否)。

git基本节点不是文件,所以,在一次改动中,可以记录多个文件的变化。

要记录改动,首先要添加需要记录的文件:

git add xxx

可以添加多个文件,添加之后,使用commit命令记录改变:

git commit -m '改动说明'

git默认要求每次改动必须有说明,没有说明会禁止记录。

查看库当前状态

git status

可以查看库当前状态。

如果有改变且未提交的文件就会被列出,此时们可以使用diff命令查看变化

git diff xxx

查看提交历史

在实际工作中,我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么。版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看:

git log

版本回退

HEAD`指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

commit_id 可以不写全,git会自动查找。

git reset --hard commit_id

HEAD~1回退一个版本

git reset --hard HEAD~1

我们对版本的每次操作都会被记录,可以使用get reflog查看:

git reflog

远程仓库

远端仓库账号建立好之后,我们需要让远端仓库的账号和我们本地的账号关联起来。

我们使用ssh的方式来进行关联。

要连接远程仓库,需要

ssh key

ssh-keygen -t rsa -C "youremail@example.com"

成功后会生成C:\Users\用户\.ssh这个目录,里面有id_rsaid_rsa.pub两个文件。

id_rsa是私钥,id_rsa.pub是公钥。

在远程仓库的ssh用户安全设置里添加一个公钥。

关联远程库

在服务端创建一个仓库,得到仓库的地址,使用如下命令与本地的仓库结合:

在本地仓库的bash界面:

git remote add <远端连接的名称> git@gitee.com:lordleech/demo.git

origin是当前远程连接的名称。一个本地仓库可以同时关联多个远程仓库(名字不能一样)。

如果关联的远端地址出错了,可以查看和移除后重新添加

git remote -v
origin  git@gitee.com:lordleech/demo.git (fetch)
origin  git@gitee.com:lordleech/demo.git (push)
​
git remote rm origin

SSH警告

因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

本地推送

git push origin master

本地推送到远程 origin 的master分支。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

拉取

git pull origin master

克隆

对于别人的远程仓库,想要下载,可以使用git来下载:

git clone git@gitee.com:harris992/JQuery-TreeTable-Plugin.git

表示在当前目录下,创建JQuery-TreeTable-Plugin目录,下载所有文件。

分支

可以使用如下命令,创建并切换到dev分支:

git checkout -b dev
Switched to a new branch 'dev'

git checkout(切糕)命令加上-b参数表示创建并切换,相当于以下两条命令:

git branch dev    //创建dev分支
git checkout dev   // 切换到dev分支

然后,用git branch命令查看当前分支:

git branch
* devmaster

git branch命令会列出所有分支,当前分支前面会标一个*号。

合并分支

表示将dev分支合并到当前分支中。

git merge dev

合并后可以删除dev分支

git branch -d dev

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>或者git switch <name>

创建+切换分支:git checkout -b <name>或者git switch -c <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

协作开发

本地服务器或者gitee服务器但要求多人在一个项目组中:

在这种场景下,各个小组成员要求每个成员都建立自己的分支,项目完成后。每个人按顺序将服务器主分支拉去到本地,本地的私有分支合并到本地的主分支,本地主分支推送到服务器。这种情况适用于小组成员之间的工作没有交叉。

gitee服务器且人员不确定,工作也有可能有交叉:

参与项目的成员:

1、将主仓库 fork(在自己的账号中建立了一个别人的仓库副本) 一份到自己的仓库。

2、将本地仓库与fork出来的远程仓库关联,有的改动后推送到远程fork仓库。

3、在fork仓库中新建一个拉取请求发送到主仓库。

4、主仓库的管理员会看到别人的拉取请求,及详细内容,可以拒绝与同意,一旦同意,就会合并。

克隆到本地:

git clone git@gitee.com:lordleech/zTree_v3.git

再次确认克隆后的仓库是否有远端的连接:

git remote -v
​
origin  git@gitee.com:lordleech/zTree_v3.git (fetch)
origin  git@gitee.com:lordleech/zTree_v3.git (push)

如果打印内容为空,则需要我们手动添加远端链接

git remote add origin git@gitee.com:lordleech/zTree_v3.git

完成后再次执行git remote -v 查看,确认远端链接已添加。

2、修改文件。

修改文件后查看库状态:

git status
On branch master
Your branch is up to date with 'origin/master'.
​
Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)modified:   README.md
​
no changes added to commit (use "git add" and/or "git commit -a")

记录并提交这个改变:

git add README.md
git commit -m '提交时的注释'

将这个改变提交到远端库

git push origin master

成功后,在网页中的当前库(自己的)就可以看到变化。

3、发起拉取请求

点击图片右下角的 +Pull Request。

确认源分支和目标分支是否正确。

填写请求的标题和内容,然后创建 Pull Request。

Git安装及操作指令相关推荐

  1. linux下git的相关操作指令

    linux下git的相关操作指令 git版本管理工具 1.克隆仓库git clone "url" 2.上传2.1标记:告诉git工具需要管理那些文件了git add [filena ...

  2. git的简单操作指令

    个人总结的git简单操作 $ git config --global user.name "name" $ git config --global user.email " ...

  3. Git学习(了解版本控制、Git安装配置、Git基本理论、Git搭建、Git文件操作、使用码云或Github、IDEA集成Git,Git分支开发)

    学习git之前,我们需要先明白一个概念,版本控制! 版本控制 什么是版本控制 版本迭代,新的版本!版本管理器. 版本控制(Revision Control)是一种在开发的过程中用于管理我们对文件.目录 ...

  4. 版本控制介绍、Git的安装、TortoiseGit的安装、Git的文件操作、IDEA + 同步到GitHub远程仓库 | 克隆 | 分支 | 忽略文件

    文章目录 版本控制 什么是版本控制 常见的版本控制工具 版本控制分类 Git与SVN的主要区别 Git的历史 Git安装与配置 TortoiseGit的安装 Git基本理论 Git项目搭建 Git文件 ...

  5. Is it going on-------------Docker容器的安装以及基本的操作指令

    什么是Docker docker是在linux容器中运行的开源工具,是一种轻量级的虚拟机.docker设计的宗旨是,通过应用组件的封装.发布.部署.运行等生命周期的管理,达到组件级别的"一次 ...

  6. 常用的git操作指令

    一.项目中常用的git操作指令 git stash //将修改 的代码存到暂存区 git pull --rebase origin master //当前分支名称 git stash pop //将你 ...

  7. macos安装git命令行_MAC OS git客户端安装及操作

    1. 下载安装mac os 版本的git客户端及相关可视化软件 1.1 从git官网上下载匹配的git客户端.pkg格式的包,然后在系统偏好设置-> 安全性与隐私中打开系统默认禁止安装的这个程序 ...

  8. 前端学习(2631):git安装

    git 提交 全部文件 1.git add . git add xx 命令可以将xx文件添加到暂存区,如果有很多改动可以通过get add -A .来一次添加所有改变的文件.注意 -A 选项后面还有一 ...

  9. adb 操作指令详解

    ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具. 注:有部分命令的支持情况可能与 Android ...

最新文章

  1. 八十二、归并排序求取复杂的逆序数
  2. Python程序员晒追女神聊天截图,坦言第一次没经验,网友直呼凭实力单身
  3. 详解ROS中的TF使用
  4. 【备忘录】word利用mathtype进行公式分章节编号和引用
  5. spring3 运行起来(即做个demo)所需要的jar包
  6. oppo a57刷机成功教程
  7. bc547可以用8050代换吗_代换S8550 S8050三极管要特别注意放大倍数
  8. html中用于排版标题标签是,web端测试也需要懂-HTML排版标签
  9. 北汽极狐ARCFOX与华为合作
  10. 微信小程序四种json配置文件详解
  11. 英语--副词描述变化量大小
  12. 运维 ---linux基础
  13. 中国土地利用现状遥感监测数据(1985-2020年)
  14. 设计一个形状类(接口)Shape
  15. 关闭小米路由器防火墙 放行端口
  16. 基于jsp的洋酒销售系统
  17. Bridge in Linux Kernel——STP
  18. Ipad手写笔什么牌子好用?高性价比ipad手写笔排行
  19. 版本中的GA的缩写和意思
  20. 个人PC连接服务器同时上网

热门文章

  1. ESP8266 连接 MQTT
  2. 自定义HTML内容批量打印标签或者单据方案
  3. 今天一整天,腰酸腿疼。
  4. CSS 实用笔记(代码详解)
  5. Mac自带的强大的快速搜索功能是怎么帮助我们工作的
  6. 可能是一份没什么用的爬虫代理IP指南
  7. 手把手教你用.NET Core写爬虫 1
  8. 快速禁止Chrome浏览器缓存
  9. 中国联通勃勃雄心再建47万基站,可是钱从何来?
  10. 【系统集成项目管理】学习笔记(一)信息化- 第一讲