GIT分布式版本控制系统

来源:互联网 发布:免费天庭淘宝城txt下载 编辑:程序博客网 时间:2024/04/28 00:44

GIT (分布式版本控制系统)简介

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。[1] Git的读音为/gɪt/。
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。[2] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 很多 Freedesktop 的项目迁移到了 Git 上。

特点

分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。下图是经典的git开发过程。Git的功能特性:从一般开发者的角度来看,git有以下功能:1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。2、在自己的机器上根据不同的开发目的,创建分支,修改代码。3、在单机上自己创建的分支上提交代码。4、在单机上合并分支。5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。6、生成补丁(patch),把补丁发送给主开发者。7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:1、查看邮件或者通过其它方式查看一般开发者的提交状态。2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。3、向公共服务器提交结果,然后通知所有开发人员。优点:适合分布式开发,强调个体。公共服务器压力和数据量都不会太大。速度快、灵活。任意两个开发者之间可以很容易的解决冲突。离线工作。缺点:资料少(起码中文资料很少)。学习周期相对而言比较长。不符合常规思维。代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

官网下载地址https://git-scm.com/


廖雪峰gti教程 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

git是以命令行的方式生成的代码仓库,需要用linux的命令端,如果你是在windows上面你可以使用git自带的bash.exe工具该模拟linux的命令行窗口,当然bash.exe工具对linux的命令支持的很少,并且对中文不是特别支持,
你可是使用Cygwin,Cygwin是一个在windows平台上运行的类UNIX模拟环境(Cygwin下载地址: http://www.cygwin.com/)


创建git仓库的命令如下:

龙布天下@DESKTOP-HBAB84P MINGW64 /bin//创建一个 box_git文件夹$ mkdir box_git龙布天下@DESKTOP-HBAB84P MINGW64 /bin//进入此文件夹$ cd box_git龙布天下@DESKTOP-HBAB84P MINGW64 /bin/box_git//列出此文件夹的全路径$ pwd/bin/box_git龙布天下@DESKTOP-HBAB84P MINGW64 /bin/box_git//把此文件夹 使用 git init命令初始化为 git版本仓库$ git initInitialized empty Git repository in C:/Program Files/Git/usr/bin/box_git/.git/龙布天下@DESKTOP-HBAB84P MINGW64 /bin/box_git (master)//使用 ls -a 命令你会发现列出了一个 .git的隐藏文件,这个就是git版本仓库的配置文件$ ls -a.  ..  .git龙布天下@DESKTOP-HB//使用touch命令 可以创建一个文件$ touch redme.txt龙布天下@DESKTOP-HB//使用 git add 命令这个这个文件添加到版本仓库当中$ git add redme.txt龙布天下@DESKTOP-HBAB84P MINGW64 /bin///使用git commit 命令提交这个文件,或者一个版本文件//使用git commit (要提交的文件) -m 可以注释这个文件的作用$  git commit -m "this is my new file"龙布天下@DESKTOP-HBAB84P MINGW64 /bin/box_git (master)//你可以使用 git config --global user.name配置一个全局的用户名$ git config --global user.name longlong龙布天下@DESKTOP-HBAB84P MINGW64 /bin/box_git (master)//你可以使用 git config --global user.emal配置一个全局的邮箱$ git config --global user.emal www.@long.com龙布天下@DESKTOP-HBAB84P MINGW64 /bin/box_git (master)使用 git staus查看当前版本库的分支$  git status

Git与Github

首先要检查key是不是已经存在,打开一个终端,并输入以下命令:$ ls -al ~/.ssh如果结果列表中包含以下文件, 则不需要在生成新的KEY, 可以直接使用。id_dsa.pubid_ecdsa.pubid_ed25519.pubid_rsa.pub如果不存在, 则需要创建新的Key来使用。输入下面的命令来生成key, 注意替换你自己的邮箱地址,并且是真实有效的邮箱。$ ssh-keygen -t rsa -C "18567738489@163.com"# Creates a new ssh key using the provided emailGenerating public/private rsa key pair.Enter file in which to save the key (/your_home_path/.ssh/id_rsa):这里在提示你保存key的位置, 默认直接回车就可以。Enter passphrase (empty for no passphrase):当你看到这个的时候, 输入你的密码。Enter same passphrase again:再次输入, 以确认密码。当以上步骤成功完成后, 你将看到类似与这样的结果:Your identification has been saved in /your_home_path/.ssh/id_rsa.Your public key has been saved in /your_home_path/.ssh/id_rsa.pub.The key fingerprint is:01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com执行以下命令将KEY加入到ssh-agent:$ eval "$(ssh-agent -s)"# Agent pid 59566$ ssh-add ~/.ssh/id_rsa打开 ~/.ssh/id_rsa.pub文件, 复制其中所有的内容。然后把它粘贴到github的ssh key添加的表单中。执行以下命令来测试key。$ ssh -T git@github.com如果你看到:The authenticity of host 'github.com (207.97.227.239)' can't be established.RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.Are you sure you want to continue connecting (yes/no)?输入“yes”并回车。当你看到以下内容时, 你就添加成功了。Hi username! You've successfully authenticated, but GitHub does notprovide shell access.

Git配置和第一次推送项目 :
http://blog.csdn.net/chengtt_love/article/details/46238189