sourceTree安装集成git并配置密钥至码云
GIT学习使用随笔
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
什么是版本控制
版本控制(Version Control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
- 实现跨区域多人协同开发
- 追踪和记载一个或者多个文件的历史记录
- 组织和保护你的源代码和文档
- 统计工作量
- 并行开发、提高开发效率
- 跟踪记录整个软件的开发过程
- 减轻开发人员的负担,节省时间,同时降低人为错误
简单说就是用于管理多人协同开发项目的技术。
没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。
无论是工作还是学习,或者是自己做笔记,都经历过这样一个阶段!我们就迫切需要一个版本控制工具!
Git 与 SVN 区别
Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。
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官网] https://git-scm.com/,下载git对应操作系统的版本。
所有东西下载慢的话就可以去找镜像!
官网下载太慢,我们可以使用淘宝镜像下载:http://npm.taobao.org/mirrors/git-for-windows/
注意
如果要用sourceTree等第三方工具操作git,安装时需要勾选此项,其他均next即可。
Git配置
注意:所有的配置文件,其实都保存在本地!
查看配置 git config -l
查看不同级别的配置文件:
#查看系统configgit config --system --list #查看当前用户(global)配置git config --global --list
配置个人的用户名称和电子邮件地址:
$ git config --global user.name "xxx"
$ git config --global user.email test@xxx.com
注意:当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中。只需要做一次这个设置,如果你传递了–global 选项,因为Git将总是会使用该信息来处理你在系统中所做的一切操作。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要–global选项。总之–global为全局配置,不加为某个项目的特定配置。
Git流程
一般工作流程如下:
克隆 Git 资源作为工作目录。
在克隆的资源上添加或修改文件。
如果其他人修改了,你可以更新资源。
在提交前查看修改。
提交修改。
在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
Git 工作区、暂存区和版本库
基本概念
我们先来理解下 Git 工作区、暂存区和版本库概念:
**工作区:**就是你在电脑里能看到的目录。
**暂存区:**英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
**版本库:**工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
- 图中左侧为工作区,右侧为版本库。在版本库中标记为 “index” 的区域是暂存区(stage/index),标记为 “master” 的是 master 分支所代表的目录树。
- 图中我们可以看出此时 “HEAD” 实际是指向 master 分支的一个"游标"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。
- 图中的 objects 标识的区域为 Git 的对象库,实际位于 “.git/objects” 目录下,里面包含了创建的各种对象及内容。
- 当对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。
- 当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
- 当执行 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
- 当执行 git rm --cached 命令时,会直接从暂存区删除文件,工作区则不做出改变。
- 当执行 git checkout . 或者 git checkout – 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区中的改动。
- 当执行 git checkout HEAD . 或者 git checkout HEAD 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
Git 创建仓库
使用当前目录作为Git仓库,我们只需使它初始化。
git init
该命令执行完后会在当前目录生成一个 .git 目录。
使用我们指定目录作为Git仓库。
git init newrepo
初始化后,会在 newrepo 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。
如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:
$ git add *.c
$ git add README
$ git commit -m '初始化项目版本'
git clone
我们使用 git clone 从现有 Git 仓库中拷贝项目(类似 svn checkout)。
克隆仓库的命令格式为:
git clone <repo>
如果我们需要克隆到指定的目录,可以使用以下命令格式:
git clone <repo> <directory>
参数说明:
- **repo:**Git 仓库。
- **directory:**本地目录。
比如,要克隆 Ruby 语言的 Git 代码仓库 Grit,可以用下面的命令:
$ git clone git://github.com/schacon/grit.git
执行该命令后,会在当前目录下创建一个名为grit的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录。
如果要自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:
$ git clone git://github.com/schacon/grit.git mygrit
Git 操作
建议使用sourceTree或者idea集成的git插件
企业环境总体流程
1:配置用户名、邮箱
$ git config --global user.name “xxx”
$ git config --global user.email test@xxx.com
2:生成密钥
ssh-keygen -t rsa -C test@xxx.com
3:查看密钥
cat ~/.ssh/id_rsa.pub
4:复制密钥到码云或者其他代码托管平台。配置好后可以使用ssh连接就不用每次提交代码都输入密码了
5:sourceTree安装
遇到注册直接跳过即可(较新版本)
提前安装git会检测出来
如果没有提前安装或者安装git时没有允许第三方软件提交git(此时可以下载一个或者自己安装 点击重新检查)
项目没down下来选择clone,如果已经下载选择add
工具=》选项=》SSH客户端直接选择openssh可以自动识别git配置的信息
sourceTree安装包
链接:https://pan.baidu.com/s/1r4KVzw52odjnSF-wfETIgw
提取码:v61f
sourceTree安装集成git并配置密钥至码云相关推荐
- git推送项目到码云(gitee)
git推送项目到码云(gitee) git推送项目到码云(gitee) 创建账号 创建一个Gitee账号,我使用的是Gitee因为国内速度快~ 本地安装Git 前往 Git 根据操作系统下载Git到本 ...
- 如何使用git上传本地代码到码云上(超详细的呦)
如何使用git上传本地代码到码云上(超详细的呦) 文章目录 如何使用git上传本地代码到码云上(超详细的呦) 一.准备工作 二.通过git把项目代码提交到本地仓库 三.把本地仓库代码提交到码云 一. ...
- Git学习(了解版本控制、Git安装配置、Git基本理论、Git搭建、Git文件操作、使用码云或Github、IDEA集成Git,Git分支开发)
学习git之前,我们需要先明白一个概念,版本控制! 版本控制 什么是版本控制 版本迭代,新的版本!版本管理器. 版本控制(Revision Control)是一种在开发的过程中用于管理我们对文件.目录 ...
- Jenkins 流水线 获取git 分支列表_jenkins的安装和配置 自动化部署 码云 gitee
目前项目使用的jenkins 自动化部署的还是比较多的 ,所以趁着脑瓜子还清醒,来写一下如何使用 jenkins 使用码云更新代码后,重新构建就是最新的代码,费话不多少了 直接上货, 首先要做一下准备 ...
- github 公钥 私钥_ubuntu git生成ssh key (公钥私钥)配置github或者码云
Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置. github的SSH配置如下: 设置Git的user name和email: git confi ...
- 通过git将本地代码上传码云
什么是码云? 码云是开源中国社区2013年推出的基于 Git 的完全免费的代码托管服务,这个服务是基于 Gitlab 开源软件所开发的,在 Gitlab 的基础上做了大量的改进和定制开发,目前已经成为 ...
- 【Git版本控制管理】Gitee(码云)和GitHub的使用
远程仓库的使用 文章目录 远程仓库的使用 使用码云(Gitee) 使用GitHub 远程仓库是指托管在因特网或其他网络中的你的项目的版本库. 你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读 ...
- Git的简单使用——连接码云
安装Git 到Git官网https://www.git-scm.com/ 下载Git客户端 网盘下载 安装时选择默认即可. 安装完成后在桌面的快捷菜单中选择Git Bash Here 或者在开始菜单中 ...
- 使用Git上传项目到码云
为了更方便的开发和管理代码,代码托管工具尤为重要:这里列出几个代码托管平台: GitHub https://github.com/ 开源中国(码云) http://git.oschina.net/ C ...
最新文章
- AllUsers And SiteUsers
- java file pathname_int compareTo(File pathname)
- 关于SimpleDateFormat时间转换总是显示1970年的问题
- 前端学习(1381):多人管理项目1项目管理搭建
- Spring学习总结(27)——Spring常用注解再总结
- C++标准转换运算符:const_cast
- mysql数据没有同步更新_MySQL数据库主从没有同步的两种解决方案
- 在framework和hal添加log
- C语言进制转换相关函数
- 【微信小程序】【云开发】【从零开发】【零成本】翻译小程序 —《阿怼翻译》0.0.1版本(有教程视频和源码)
- unity学习之可编程渲染管线 SRP Batcher
- EyouCms1.0前台GetShell漏洞复现
- c语言程序设计第07章在线测,《C语言程序设计》第07章在线测试.doc
- Element-Ui组件 单选框(Radio) 修改点击激活时的文本颜色,填充色和边框色
- 计算机键盘重复,电脑怎么设置键盘重复延迟和重复速度?
- vue—维持登录状态
- 计算机视觉算法岗 面试经验 (转载)
- 我的架构梦:(九十八)消息中间件之RocketMQ的高可用机制——消息发送高可用
- 矩阵笔记4:矩阵分析(第三版)-史荣昌-第四章:矩阵分解
- 【老孟Flutter】Flutter 2的新功能
热门文章
- 计算机房动画图片英语,国产动画片大全
- linux查询网卡bdf信息,Linux获取pci设备的厂商号、设备号、class号
- 【转】Android-Accessibility(辅助功能/无障碍,自动安装APP)
- Python基础算法:排序、查找、二叉树
- java sslcontext_Java手动添加SSL证书
- 用户体验——尼尔森十大交互原则
- 用栈和队列实现魔王语言
- 如何将wps转换成html单元格内的图案还保留,如何利用WPS将网络数据转为表格 Excel批量转为Html,Html转换成Excel...
- 原来技术管理可以更美的
- qq群文件无法打开显示内容?