Git分布式环境_基本操作.docx_第1页
Git分布式环境_基本操作.docx_第2页
Git分布式环境_基本操作.docx_第3页
Git分布式环境_基本操作.docx_第4页
Git分布式环境_基本操作.docx_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Git分布式环境目录Git安装2Git多人协作3分支策略3从远程库克隆4多团队小组开发4Git的常用操作4Git文件工作区和暂存区5Git文件添加6Git文件修改管理8Git文件修改回退10集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊Git安装这里可以参考一下内容。/wiki/0013739516305929606d67b8067c8c017b000/00137396287703354d8c6c01c904c7d9ff056ae23da865a000主要需要配置相关内容:1,首先配置host文件6 6 6 6 lantianpinche用户名和邮箱,你登陆gitlab后。可以在2,git config -global 王永焱 git config -global user.email 3, 设置sshssh-keygen -t rsa -C$your_emailcat /.ssh/id_rsa.pub4,增加ssh到gitlab中。/profile/keys5,下载代码。git clonegitlantianpinche:ltpc/ltpc.git注:如果不设置 -global 和-global user.email有的git版本,不会让你提交代码(git commit -m xxx)Git多人协作分支策略在实际开发中,我们应该按照几个基本原则进行分支管理:1,首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;2,那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;3,你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。所以,团队合作的分支看起来就像这样:从远程库克隆从lantianpinche的gitlab库上克隆数据。git clonegitlantianpinche:ltpc/ltpc.git多团队小组开发每个git都有自己的master,dev。假设,我们有三个团队,ios团队,android团队,后端团队。现在有一个拼车项目。我们应该如何设计多个git?1,构建统一的文档git。项目名称_Doc。里面文件夹使用数字_文件夹描述。2,根据代码相关性,构建不同的git。根据服务分工,我们可以构建多个业务。 IOS的app,所有IOS相关代码的git:项目名称_ios。(master,dev) Andorid的app,所有Android相关代码的git:项目名称_andorid。(master,dev) RestfulAPI代码,所有RestfulAPI相关代码的git:项目名称_restfulapi。(master,dev) Framework代码,底层通用代码,也可以被称作基础代码库。保存消息处理,缓存处理,等其他底层基础服务的git代码:项目名称_framework。(master,dev) Daemon层,后台守护进场服务,主要保存消息处理,定时任务。git:项目名称_daemon。(master,dev) MPS层,消息推送服务。git:项目名称_mps。(master,dev) 等其他基础服务。Git的常用操作首先介绍Git比较重要的几个概念。工作目录、暂存目录(Index或者Strage)、最终目录(HEAD)工作目录:你当前编写代码的目录。暂存目录:你编写代码后,使用git add添加的文件(瞬时状态,因为你可能会接着编写代码,新编写的代码不会进入到暂存目录中)。他们就进入了暂存目录。最终目录:你确定你编写代码完成了,那么你可以提交了,使用git commit,提交相关数据到最终目录中。Git文件工作区和暂存区工作目录,代码编写目录版本库,主要包含两个目录:一个是暂存目录,一个是最终目录。而这个版本库,就是.git文件夹。Git文件添加以下使用用例简单说明以下工作区和暂存区的区别。1,我们继续编写新的内容。我新建了几个文件,LICENSE和README。使用 git status$git statusInitial commitUntracked files: (use git add . to include in what will be committed)LICENSEREADME我使用git add,将文件加入到stage中。$git add . #表示添加当前目录下所有文件。Initial commitChanges to be committed: (use git rm -cached . to unstage)new file: LICENSEnew file: README暂存区变成这个样子了接下来,我们将代码提交到分支上去(master分支).使用 git commit$git commit -m new file commitmaster (root-commit) 62725a7 new file commit 2 files changed, 4 insertions(+) create mode 100644 LICENSE create mode 100644 README仔细看,版本库发生了变化了。Git文件修改管理Git文件修改,我们使用stage,要注意这里使用git add问题。举个例子:我们先对变更文件README(版本1),使用 git add功能,然后又继续编辑README文件(版本2)。最后我们使用git commit文件。那么我们的HEAD的中的README对应那个版本?现在我们来做个实验。1,编辑README,增加 version 1hello worldversion 12, 使用git add,将文件README放到stage中。$git add .On branch masterChanges to be committed: (use git reset HEAD . to unstage)modified: README3,继续编辑,添加version 2,然后使用git status查看状态Changes to be committed: (use git reset HEAD . to unstage)modified: READMEChanges not staged for commit: (use git add . to update what will be committed) (use git checkout - . to discard changes in working directory)modified: README4,提交代码到master分支,使用git commit$git commit -m add version 1 1 file changed, 1 insertion(+)$ git statusChanges not staged for commit: (use git add . to update what will be committed) (use git checkout - . to discard changes in working directory)modified: README我们发现README还是有修改的。5,我们使用git diff来查看不同。$ git diff HEAD - READMEindex 1e32167.5994596 100644- a/README+ b/README -1,4 +1,5 hello world+version 2 version 1注:我们可以每次提交使用git commit -a -m xxxx 提交所有变更。IDEA通常提交行为也是git commit -a -m xxxGit文件修改回退刚才已经跟大家进行了详细说明其实git工作目录是分为三个区域。因此我们的问及那修改回退也要对应这两种形势。1,工作目录中的文件回退。(工作目录文件回退)。2,Stage中的文件回退。(工作目录文件回退)。3,分支中的文件回退。(版本文件回退)。工作目录中的文件回退非常简单,使用git checkout - filename举例说明:我们在文件README中,添加一句话。()geewuubuntu:/cswp/git$ git statusOn branch masterChanges not staged for commit: (use git add . to update what will be committed) (use git checkout - . to discard changes in working directory)modified: README文件内容是hello worldversion 2version 1()现在我们使用git checkout - filename进行回退$git checkout - READMEOn branch masterUntracked files: (use git add . to include in what will be committed)testhello worldversion 2version 1分支中的文件回退我们使用 git add,git commit ,git checkout对文件操作,现在我们使用git log查看日志。$git logcommit 8567016839a95f667824a63b33d7ea6055aba8e9Author: wuge Date: Sat May 9 20:37:35 2015 -0700 add version 2commit 59df52baee8ff3277b18c9849d9f33b316c4f915Author: wuge Date: Sat May 9 20:31:05 2015 -0700 add version1commit 62725a76182f86a3e41a095fd2419c001253a494Author: wuge Date: Sat May 9 19:41:26 2015 -0700 new file commit上边是详细的信息,我们可以采用git log -pretty=oneline。显示一个短的一行数据。8567016839a95f667824a63b33d7ea6055aba8e9 add version 259df52baee8ff3277b18c9849d9f33b316c4f915 add version162725a76182f86a3e41a095fd2419c001253a494 new file commit对比svn,我们可以看到git的版本号,特别长。例如version1为“59df52baee8ff3277b18c9849d9f33b316c4f915”这里说明一下分支master中HEAD指着最新的log版本号。对应“add version2为8567016839a95f667824a63b33d7ea6055aba8e9我们使用git reset -hard 59df52baee。这里-hard是指reset方式,hard说明当前HEAD指针和工作目录都回到log 日志。后边是git的版本号,可以用前5个数字表示这个版本。$git reset -hard 59df52baee #这里有一种快捷方式,在最近几个版本之前切换。可以使用git reset -hard HEAD (倒数第二个),HEAD(倒数第三个),HEAD10(倒数第10个)。$git log -pretty=oneline59df52baee8ff3277b18c9849d9f33b316c4f915 add version162725a76182f86a3e41a095fd2419c001253a494 new file commit$git statushello worldversion 1我们也可以使用git reflog,查看之前的日志,并回滚到之前的日志。$git reflog59df52b HEAD0: reset: moving to 59df52b8567016 HEAD1: commit: add version 259df52b HEAD2: commit: add version162725a7 HEAD3: commit (initial): new file commit我们也可以使用这个命令回到8567016这个add vers

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论