欢迎您访问 南京某某电缆桥架有限公司官方网站

公司简介 联系我们

欢迎来电咨询

0405-20698175

客户案例

全国服务热线

0405-20698175

技术过硬,据实报价

案例分类2

当前位置:主页 > 客户案例 > 案例分类2 >

版本控制Git基础及使用详解

2021-06-02 00:55 已有人浏览
本文摘要:1、Git简介1.1、简介Git是一款免费、开源的漫衍式版本控制系统,用于敏捷高效地处置惩罚任何或小或大的项目。Git的读音为/gɪt/。Git是一个开源的漫衍式版本控制系统,用以有效、高速的处置惩罚从很小到很是大的项目版本治理。 Git 是 Linus Torvalds 为了资助治理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 是用于 Linux内核开发的版本控制工具。

欧洲杯app下载

1、Git简介1.1、简介Git是一款免费、开源的漫衍式版本控制系统,用于敏捷高效地处置惩罚任何或小或大的项目。Git的读音为/gɪt/。Git是一个开源的漫衍式版本控制系统,用以有效、高速的处置惩罚从很小到很是大的项目版本治理。

Git 是 Linus Torvalds 为了资助治理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等差别,它接纳了漫衍式版本库的方式,不必服务器端软件支持(wingeddevil注:这得分是用什么样的服务端,使用http协议或者git协议等不太一样。而且在push和pull的时候和服务器端还是有交互的。

),使源代码的公布和交流极其利便。Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。Git 最为精彩的是它的合并跟踪(merge tracing)能力。

1.2、git的开发历程(图释)2、Git的安装、部署2.1、Ubuntu搭建Git服务器2.1.1、安装git#sudo rpm –qa|grep –i git#sudo apt-get install git ó #apt-get install git-core#apt-get install openssh-server openssh-clinet //都是安装好了的,可能版本有点低。#sudo apt-get update //更新一下安装git-core是git版本控制焦点软件。安装openssh-server和openssh-client是由于git需要通过ssh协议来在服务器与客户端之间传输文件。2.1.2、安装Python-setuptools、gitosis –用于权限治理#sudo apt-get install Python-setuptools初始化服务器git用户 可以用cat ~/.gitconfig检察#git config –global user.name “liyulin”#git config –global user.email “liyulinbill@q q.com”初始化服务器用户信息后,就可以安装gitosis了,gitosis主要是用于给用户授权,设置权限也算是很利便的。

在root目录下(也可以是其他目录)::/root/#mkdir git_osis#cd git_osis#git clone git://eagain.net/gitosis.git<=>#git clone https://github.com/res0nat0r/gitosis.git#cd gitosis #sudo python setup.py install2.1.3、建立git治理员账户、设置git#sudo adduser gitadmin设置项目堆栈存储点,给予gitadmin小我私家权限#cd /home #mkdir gitrepository #chown gitadmin:gitadmin /home/gitrepository/#chmod 700 /home/gitrepository/gitosis默认状态下会将堆栈放在用户的repositories目录下,所以要在存储点建设各个用户的repository的软毗连。#sudo ln –s /home/gitrepository /home/gitadmin/repositories成为治理员:无论是不是本机都可以通过生成ssh公钥的方法成为治理员#ssh-keygen –t rsa然后用刚生成公钥id_rsa.pub来对gitosis举行初始化。gitosis主要是通过gitosis-admin.git堆栈来治理一些设置文件的,如用户权限的治理。

这里需要对其中的一个post-update文件添加可执行的权限。# sudo chmod 755 /home/gitadmin/repositories/gitosis-admin.git/hooks/post-update2.2、建仓、授权先建一个空仓区分一下git init 和 git init –bare:参考:http://tanglei528.blog.163.com/blog/static/433533992013023112825487/一般小我私家使用,用git init,这时候你的事情区也在这里。你要是想建设一个牢固的地址让大家一起用,就在服务器上用--bare。

其实你可以看到,init建设的.git目录内容和--bare建设的目录内容是差不多的。用"git init"初始化的版本库用户也可以在该目录下执行所有git方面的操作。但此外用户在将更新push上来的时候容易泛起冲突。好比有用户在该目录(就称为远端堆栈)下执行git操作,且有两个分支(master 和 b1),当前在master分支下。

另一个用户想把自己在当地堆栈(就称为当地堆栈)的master分支的更新提交到远端堆栈的master分支,他就想固然的敲了git push origin master:master于是乎泛起:因为远端堆栈的用户正在master的分支上操作,而你又要把更新提交到这个master分支上,固然就堕落了。但如果是往远端堆栈中空闲的分支上提交还是可以的,好比:git push origin master:b1 还是可以乐成的。解决措施就是使用”git init –bare”方法建立一个所谓的裸堆栈,之所以叫裸堆栈是因为这个堆栈只生存git历史提交的版本信息,而不允许用户在上面举行种种git操作,如果你硬要操作的话,只会获得下面的错误(”This operation must be run in a work tree”)。

这个就是最好把远端堆栈初始化成bare堆栈的原因。2.3、治理相关权限在之前/home/gitadmin/目录下:克隆了gitosis-admin.git堆栈。这个是在客户端机械上clone下来,然后使用gitosis权限治理。

在gitosis-admin.git堆栈内里有gitosis.conf的设置文件和一个keydir的目录。gitosis.conf用于设置用户的权限信息,keydir主要用户存放ssh公钥文件(一般以“用户名.pub”命名,gitosis.conf设置文件中需使用相同用户名),用于认证请求的客户端机械。现在让需要授权的用户使用前面的方式各自在其自己的机械上生成相应的ssh公钥文件,治理员把他们划分按用户名命名好,复制到keydir目录下。

然后vim gitosis-config文件:2.4、Git客户端安装设置从网上下载,点击安装选择安装组件也可以默认选择;– 图标组件(Addition icons) : 选择是否建立快速启动栏图标 或者 是否建立桌面快捷方式;– 桌面浏览(Windows Explorer integration) : 浏览源码的方法, 单独的上下文浏览 只使用bash 或者 只用Git GUI工具; 高级的上下文浏览方法 使用git-cheetah plugin插件;– 关联设置文件 : 是否关联git设置文件, 该设置文件主要显示文本编辑器的样式;– 关联shell剧本文件 : 是否关联Bash下令行执行的剧本文件;– 使用TrueType编码 : 在下令行中是否使用TruthType编码, 该编码是微软和苹果公司制定的通用编码;设置情况变量选择使用什么样的下令行工具, 一般情况下我们默认使用Git Bash即可, 默认选择;– Git自带 : 使用Git自带的Git Bash下令行工具;– 系统自带CMD : 使用Windows系统的下令行工具;– 二者都有 : 上面二者同时设置, 可是注意, 这样会将windows中的find.exe 和 sort.exe工具笼罩, 如果不懂这些只管不要选择;选择换行花样– 检查出windows花样转换为unix花样 : 将windows花样的换行转为unix花样的换行在举行提交;– 检查出原来花样转为unix花样 : 不管什么花样的, 一律转为unix花样的换行在举行提交;– 不举行花样转换 : 不举行转换, 检查出什么, 就提交什么;其实就是下载后一直点击next按钮就安装得差不多了。然后我们就可以使用git的自带下令行工具了。然后通过bash生成私钥和公钥,将公钥.pub文件上传给服务器(或者网站),通过rsa认证。

之后就可以通过openssh下令行,在bash上举行操作了。详细的下令行操作见三、1、服务器。2.5、TortoiseGit安装设置和Git客户端安装差不多,下载一个安装包,然后一直点next就ok了。其实我们从网上下载安装的TortoiseGit,默认的都是Putty了。

可是选择第一个后续会有许多事,而选择第二个,则后续设置简朴些。设置putty私钥(选择的是putty时候)TortoiseGit 使用扩展名为ppk的密钥,而不是ssh-keygen生成的rsa密钥。

使用下令ssh-keygen -C "邮箱地址" -t rsa发生的密钥在TortoiseGit中不能用。而基于git的开发必须要用到rsa密钥,因此需要用到TortoiseGit的putty key generator工具来生成既适用于git的rsa密钥也适用于TortoiseGit的ppk密钥,详细设置步骤如下:在TortoiseGit的安装目录下C:Program FilesTortoiseGitbin找到puttygen.exe,就是转换工具,双击如下: 然后点击Generate鼠标在上图的空缺地方往返移动直到进度条完毕,就会自动生一个随机的key如有需要,可以为密钥设置对应的会见密码,就是修改上图中“Key passphrase”和“Confirm passphrase”的值。

3)将上图中多行文本框的内容全选、复制,并粘贴到git账户的 SSH public key中,这就是适用于git的公钥。4)点击上图中的“Save private key”按钮,将生成的key生存为适用于TortoiseGit的私钥(扩展名为.ppk)。5)运行TortoiseGit开始菜单中的Pageant法式,法式启动后将自动停靠在任务栏中,图标显示为,双击该图标,弹出key治理列表6)“Add Key”按钮,将第4步生存的ppk私钥添加进来,关闭对话框即可3、Git的使用方法3.1、服务器(下令行)3.1.1、版本库的建立$mkdir git_src$cd git_src$git init3.1.2、增加内容$Git add /usr/git/….$Git add liyulin添加所有未跟踪文件用 git add -A, 添加所有未跟踪文件而且提交用 git commit -a。(注意巨细写)3.1.3、提交内容$Git commit$git status$git diff$git commit –a –m “newfile” =>$git add file +$git commit –m “newfile”3.1.4、治理分支$git branch请注意:master 是默认的分支,这也是为什么 .git/HEAD 建立的时候就指向 master 的原因,只管现在它其实并不存在。

git 将假设你会在 master 上开始并展开你以后的事情,除非你自己建立你自己的分支。3.1.5、建立分支$git branch liyulin$git checkout liyulin更简朴和常用的方法是直接通过 checkout 下令来一次性建立并转移到新建分支上,下令如下:$ git checkout -b robin [start_point]其中 start_point 是一个可选参数,指定新建分支 robin 是基于哪个节点,默认为当前所在分支的节点3.1.6、删除分支$git branch –d branch-name注意如果删除的分支还没有被 merge 到其他分支,删除这样的分支会导致这个分支上所做的改动丢失,因此 git branch -d 下令会失败,提示你这样做会丢失信息。如果你简直想删除这样的分支,不怕信息丢失,那么可以使用 git branch -D 下令,这个下令不会去判断分支的merge状态。

3.1.7、检察项目的生长变化和比力差异$git show-branch$git diff$git whatchangedEx.$git diff master liyulin 检察master和liyulin版本的差异情况。3.1.8、合并分支$git merge将liyulin分支上的事情merge到master上$git checkout master$git merge “Message :merge from liyulin” liyulin<=>$git checkout master$git pull liyulin注意:git pull 的本意是用来 merge 远端版本库中的某个分支。

合并时若有冲突,会泛起冲突提示,这时需要人手动协商、解决冲突。3.1.9、逆转(Undo)恢复(Redo)$git reset [--mixed | --soft | --hard] [<commit-ish>]--mixed仅是重置索引的位置,而不改变你的事情树中的任何工具(即,文件中的所有变化都市被保留,也不标志他们为待提交状态),而且提示什么内容还没有被更新了。

这个是默认的选项。--soft既不触动索引的位置,也不改变事情树中的任何内容,我们只是要求这些内容成为一份好的内容(之后才成为真正的提交内容)。这个选项使你可以将已经提交的工具重新逆转至“已更新但未提交(Updated but not Check in)”的状态。就像已经执行过 git update-index 下令,可是还没有执行 git commit 下令一样。

--hard将事情树中的内容和头索引都切换至指定的版本位置中,也就是说自 <commit-ish> 之后的所有的跟踪内容和事情树中的内容都市全部丢失。因此,这个选项要慎用,除非你已经很是确定你简直不想再看到那些工具了。

提取数据$git checkout –f liyulin.doc这是个很有用的小技巧,如果你对你现在的事情目录下的工具已经不耐心了,随时可以取出你提交过的工具笼罩掉当前的文件。类型标签—轻标签、署名标签3.1.10、合并事情$git fetch <remote-repository>事实上,远程合并的无非就是“抓取(fetch)一个远程的版本库中的事情到一个暂时的标签中”,然后再使用 git-merge 下令。

凭据差别的远程版本库所使用的通讯协议的路径来替代上面的 remoted-repository 就可以了。Rsync rsync://remote.machine/patch/to/repo.git/SSH remote.machine:/path/to/repo.git <=>ssh://remote.machine/patch/to/repo.git/Git Native git://remote.machine/path/to/repo.git/Ex. $ git-fetch liyulin@192.168.1.112:/path/to/gittutorcn.git (1) 其中liyulin为登录的用户名,192.168.1.112为服务器的IP地址3.1.11、协同事情$git clone /home/liyulin/project myrepo这样就建立了一个生存着 liyulin 的版本库的镜像的新目录 "myrepo"。这个镜像生存着原始项目的起点和它的生长历程。$cd /home/liyulin/myrepo$git pull /home/liyuande/LYDrepo这样就将liyuande版本库中的 "master" 分支的变化引入了。

liyulin 也可以通过在 pull 下令的后面加入参数的方式来引入其他的分支Liyulin可以先将liyuande的事情导入到新的暂时分支中:$git fetch /home/liyuande/LYDrepo master:lyd-incoming这个下令将 liyuande 的 master 分支的导入到名为 lyd-incoming 的分支中(差别于 git-pull 下令,git-fetch 下令只是取得 liyuande 的开发事情的拷贝,而不是合并进来)若要完全导入则git pull:$ git-checkout master$git pull . lyd-incoming3.1.12、公布事情如何准备一个自己的版本库来供其他人下载呢?你在自己的事情目录下举行事情,这样你的版本库就被作为.git的一个子目录放在你的事情树下。你可以让其他人来远程的会见你的版本库,可是实际上这不是通常的做法。

推荐的做法是建立一个公共的版本库,让它可供其他人会见,而且,当你在你的事情目录下做了很好的改动时,你可以更新到公共的版本库中。这通常称为pushing。首先,你需要在远程机械上建立一个空的版本库来存放你的公共版本库。

这个空版本库以后将通过pushing来保持更新。显然,这个版本库之需要在开始的时候建立一次。git push使用一对下令,git-send-pack在当地机上运行,git-receive-pack在远程机上运行。这两个下令通过SSH毗连来举行通讯。

你当地的版本库的git目录通常是.git,可是你的公共版本库通常还要加上你的项目名,即.git。让我们来为my-git建立这样一个版本库。

首先,登入远程的机械,建立一个空目录(如果你选择HTTP作为公布方法,这个空目录需要建在web server的根目录下面):$ mkdir my-git.git然后运行git init-db下令将这个目录加入git版本库中,这里,因为这个版本库的名字不是通常的.git,我们需要稍微改动一下下令:$ GIT_DIR=my-git.git git-init-db有许多种传输方式可以公布公共版本库。这里,要确认这个目录可以通过你选择的传输方式来被其他人会见。你也需要确认你有git-receive-pack这个法式在$PATH这个路径下。

当你直接运行法式的时候,许多sshd的安装版并没有将你的shell作为登陆的shell;这就是说,如果你登陆的shell是bash 的话,被读到的是.bashrc而不是.bash_profile。确认.bashrc设置好了$PATH路径,这样你才可以运行git-receive-pack下令。如果你计划通过HTTP来公布这个版本库,这是你就应该运行下令chmod +x my-git.git/hooks/post-update。

这确认了每次你导入数据到这个版本库中,git-update-server-info能够被执行。然后,你的“公共的版本库”可以接受你的任何改动了。回到你的当地机上,运行下令:$ git push :/path/to/my-git.git master该下令将你的公共版本库和你当前的版本库中指命名称的分支头部同步(这里是master)。

3.2、*TortoiseGit客户端使用建立堆栈新建一个文件夹,然后右击,选择以此文件夹建立堆栈。弹出下面提示:这个“制作纯版本库”的意思就和 git init –bare 是一样的。就是建设一个裸堆栈。

一般是多个开发者公用的堆栈。说是裸堆栈,其实它内里是有一些设置文件的。不清楚自己想要什么的话,就别删除或者修改内里的文件。身份确认TortoiseGit => Setting =>打开对话框,选择左侧Git选项,右侧有用户名和邮箱。

Clone远程堆栈记得url不能写错了:gitadmin@192.168.1.112:/home/gitadmin/repositories/~提交自己机械的公钥文件:用户名.pub,自己或者让治理员修改gitosis.config文件,添加权限。参考文献1.百度百科2.Ubuntu搭建Git服务器:http://blog.csdn.net/tommy_wxie/article/details/38779667http://www.open-open.com/lib/view/open1391477731082.html2.Git 客户端安装与设置: http://www.jb51.net/article/55438.htm2.TortoiseGit安装设置: http://blog.csdn.net/xiaobin_hlj80/article/details/10953701密钥解决方案:http://www.showerlee.com/archives/1300http://blog.163.com/wangyg_hf/blog/static/181640374201210753740961/http://git-scm.com/book/zh/ch4-4.html。


本文关键词:版本,控制,Git,基础,及,使用,欧洲杯,详解,、,Git,简介

本文来源:欧洲杯app下载-www.xzbkfw.com

与版本控制Git基础及使用详解相关的其他内容