版本控制系统

Git入门——(一)基本概念及原理

柔情痞子 提交于 2020-01-13 07:53:46
目录 基本概念及原理 关于版本控制 Git入门 常用应用场景整理 常见问题 附录及参考 基本概念及原理 关于版本控制 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 工作中我们对项目代码进行版本控制,但实际上,我们可以对任何类型的文件进行版本控制。 本地版本管理系统 RCS是本地版本管理系统中最流行的一种,解决人们采用复制项目或文件的古老方式来管理文件的问题。 它的工作原理是在硬盘上保存补丁集(补丁是指文件修订前后的变化);通过应用所有的补丁,可以重新计算出各个版本的文件内容。 集中式版本管理系统 集中式版本管理系统最常用的如 Subversion ,解决开发者协同工作的问题; 这类系统,诸如 CVS、Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。 优点: 可以了解项目中其他人做了什么 管理员可以掌控每个开发者的权限 轻松管理一个CVCS。 缺点:中央服务器单点故障时,就无法协同工作。如果磁盘损坏,那将是毁灭性的灾难。 分布式版本管理系统 分布式版本管理系统(DVCS)面世,就是为了解决上述问题。这类系统如 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把

GIT \\ SVN 版本管理 git + gitHub

落爺英雄遲暮 提交于 2020-01-13 03:05:20
场景1 想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件, 这样一直改下去,最后你的Word文档变成了这样: 场景2 有些部分需要你的财务同事帮助填写,于是你把文件Copy到 U盘 里给她(也可能通过Email发送一份给她),然后,你继续修改Word文件。一天后,同事再把Word文件传给你, 此时,你必须想想,发给她之后到你收到她的文件期间,你作了哪些改动,得把你的改动和她的部分合并,真困难 理想状态( 版本控制 ) 版本 文件名 用户 说明 日期 1 index.txt 张三 删除了'我爱你' 7/12 10:38 2 index.txt 张三 增加了"请嫁给我" 7/12 18:09 3 index.txt 李四 删除了“请嫁给我” 7/13 9:51 4 index.txt 张三 增加了:“拜拜” 7/14 15:17 SVN(了解) 版本控制工具:、 集中式得版本控制工具 (不安全) 网络共享 工作流程: 项目负责人创建好项目服务后 参与项目人员检出项目(拉取) 参与项目人员编辑完之后,添加add 将文件提交到服务器 commit git Git是目前世界上最先进的分布式版本控制系统(没有之一)。 Git有什么特点?简单来说就是:高端大气上档次! git诞生 集中式 vs

版本控制 | Git

喜欢而已 提交于 2020-01-12 11:07:07
一、Git 下载与配置 1.1 下载地址: Windows: https://git-scm.com/download/win Mac: https://git-scm.com/download/mac Linux/Unix: https://git-scm.com/download/linux 1.2 配置 /*配置 user.name 和 user.email*/ $ git config --global user.name ‘your_name’ $ git config --global user.email ‘your_email@domain.com’ $ git config --local user.name ‘your_name’ # local 只对某个仓库有效 $ git config --global user.name ‘your_name’ # global 对当前用户所有仓库有效 $ git config --system user.name ‘your_name’ # system 对系统所有登录的用户有效 优先级排序:local > global /*查看配置信息*/ $ git config --list --local $ git config --list --global $ git config --list --system 二、建立

git常用命令图解 & 常见错误

你离开我真会死。 提交于 2020-01-12 08:45:53
Git 常用命令 基本命令 git clone.这是一种较为简单的初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份 git clone git://github.com/someone/some_project.git 查看远程仓库: $ git remote -v 添加远程仓库: $ git remote add [name] [url] 删除远程仓库: $ git remote rm [name] 拉取远程仓库: $git pull [remoteName] [localBranchName] 推送远程仓库: $ git push [remoteName] [localBranchName] 分支(branch)操作相关命令 查看本地分支: $ git branch 查看远程分支: $ git branch -r 创建本地分支: $ git branch [name] 注意:创建本地分支后不会自动切换到该分支 删除分支 $ git branch -d [name] 强制删除分支 $ git branch -D [name] 注意:-d选项只能删除已经参与合并的分支,对于未有合并的分支是无法删除的,可以使用-D选项; 切换分支 $ git checkout -b feature-web-1.0.7 origin/feature-web-1.0.7 查看本地分支:

git 用法

∥☆過路亽.° 提交于 2020-01-12 02:31:28
git 用法 Git 配置 创建一个 SSH key 添加你的 SSH key 到 github上面去 查看配置信息 指定clone 的深度,或者时间, 来减少拉取无用的log 撤销操作 从暂存区恢复文件 从仓库恢复某个文件 版本退回 版本前进 分支操作 删除未跟踪的文件 连 untracked 的目录也一起删掉 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的) 在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删 git blame .gitconfig git 补丁的应用 创建patch 和diff 应用patch git push git 用法 Git 配置 创建一个 SSH key 添加你的 SSH key 到 github上面去 查看配置信息 指定clone 的深度,或者时间, 来减少拉取无用的log 撤销操作 从暂存区恢复文件 从仓库恢复某个文件 版本退回 版本前进 分支操作 删除未跟踪的文件 连 untracked 的目录也一起删掉 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的) 在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件

Git 常用命令详解(二)

核能气质少年 提交于 2020-01-12 01:12:18
一、 Git 命令初识 在正式介绍Git命令之前,先介绍一下Git 的基本命令和操作,对Git命令有一个总体的认识 示例:从Git 版本库的初始化,通常有两种方式: 1)git clone:这是一种较为简单的初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份 例如:git clone git://github.com/someone/some_project.git some_project 上面的命令就是将'git://github.com/someone/some_project.git'这个URL地址的远程版本库,完全克隆到本地some_project目录下 2)git init 和 git remote:这种方式稍微复杂一些,当你本地创建了一个工作目录,你可以进入这个目录,使用'git init'命令进行初始化;Git以后就会对该目录下的文件进行版本控制,这时候如果你需要将它放到远程服务器上,可以在远程服务器上创建一个目录,并把可访问的URL记录下来,此时你就可以利用'git remote add'命令来增加一个远程服务器端, 例如:git remote add origin git://github.com/someone/another_project.git 上面的命令就会增加URL地址为'git: //github.com/someone

Git入门基本操作

蹲街弑〆低调 提交于 2020-01-11 06:53:12
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。为了有效管理代码,同时方便同一个项目存在多人开发的情况,使用git分布式控制和管理代码的方式,同一个Git仓库可以分布到不同的机器上,通过这种分布式的管理方式,保证了代码的安全性也让代码的管理变得十分简便。 创建github并进行本地关联 在使用时git之前使用邮箱再github注册账户,由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要设置SSH密钥。 创建SSH Key。在用户主目录下,查看是否讯在.ssh目录,如果有,再查看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key: $ ssh-keygen -t rsa -C “youremail@example.com” 如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。 接下来需要把本地的SSH

Git本地仓库的使用

限于喜欢 提交于 2020-01-10 22:09:18
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 完整命令手册地址: http://git-scm.com/docs PDF 版命令手册: github-git-cheat-sheet.pdf 一、前往官网下载安装Git    https://git-scm.com/ 二、配置Git   初次运行Git前需要进行配置,配置工作只需一次,以后会沿用现在的配置,如果需要修改用相同的命令修改已有配置即可。   Git是分布式版本控制系统,所以每个设备需要自报家门

GitHub当作私密的版本控制系统远端版本库私有化

邮差的信 提交于 2020-01-10 10:07:19
目的 我打算把所有服务器的配置文件用git管理起来,这样可以记录配置变更状况。 但是有一个问题是,如何多人协作?服务器配置信息非常敏感,如果这个版本库泄漏,整个公司的服务器架构就彻底泄漏了。 这个版本库只能在开发者本地电脑里面解密,远程托管版本库的服务器不应该知道文件里面的内容。 那么解决办法就是:本地git版本库是解密的,在上传过程中内容全部加密,密钥保存在本地,同时密钥可以分享给其他开发者。 考虑了几个解决方案: git-crypt :可以加密部分文件,原理是加上了加密的fiter和diff, 但是官方说只适合加密部分文件,而不适合全版本库加密。部分文件加密很容易造成信息泄漏,一定要全版本库加密才适合。 串联 sshfs 和远程服务器加密文件系统 encfs :首先用 sshfs 加载远端文件系统,然后用 encfs 创建加密文件系统。 我估计无法解决多人同时 push 情况下的竞争条件,并且encfs有安全漏洞,使用 上push/pull 之前需要加载两层文件系统,不是很方便。 git-remote-gcryp t用 gpg 进行远端加密。 比较符合我预期的模式,但是用 gpg 不是特别方便协作。但是别的方法走不通,只有这个方法可用。 使用方法 安装git-remote-gcrypt和gnupg sudo apt-get install git-remote-gcrypt

整理Git的命令使用

我怕爱的太早我们不能终老 提交于 2020-01-10 04:48:22
Git是一个开源的分布式版本号控制系统,用以有效、快速的处理从非常小到非常大的项目版本号管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源代码的版本号控制软件。能初始化一个新的代码仓库,做一些适当配置。開始或停止跟踪某些文件。暂存或提交某些更新;从远程仓库拉数据下来或者推数据上去。 用于 Linux内核开发的版本号控制工具。与经常使用的版本号控制工具 CVS, Subversion 等不同,它採用了分布式版本号库的方式,不必server端软件支持(注:这得分是用什么样的服务端。使用http协议或者git协议等不太一样。而且在push和pull的时候和server端还是有交互的。 ),使源码的公布和交流极其方便。 Git 的速度非常快,这对于诸如 Linux kernel 这种大项目来说自然非常重要。 Git 最为出色的是它的合并跟踪能力。 git status 看状态 git add 增加一个文件到git index [file name] 是将当前更改或者新增的文件增加到Git的索引中,增加到Git的索引中就表示记入了版本号历史中,这也是提交之前所须要运行的一步,比如'git add app/model/user.rb'就会增加app/model/user.rb文件到Git的索引中 git log 看你commit的日志 git