1.登录GitHub账号,将HBase tm-5的版本做一份fork
Fork后,就相当于从原来的版本中copy一份,之后,就可以在上面做任何的改动而不影响他人了。
2. 配置GitHub
这里,需要将本地机器的ssh public key设置到GitHub的用户中。详细请看
http://help.github.com/msysgit-key-setup/
3. 我们可以参考之前讨论过的集成管理工作流的方式,由一个人统一将代码提交到“blessed”仓库中。其他多个开发人员拷贝代码库,将改动推送到他们各自独立的代码库中,并通知集成人员去获取他们的改动。
Blessed repository就是远端的代码库,有一台机器A专门负责做集成,B 和C会将自己的代码改动推送到public repository中,通知A来更新。
需要搞清楚的问题
1. 如何从GitHub上获取代码
mkdir hbase-tm5
git clone git@github.com:honeydownloader/hbase-private.git
为GitHub上远端的代码库取名为hbase-tm5.
git remote add hbase-tm5 git@github.com:honeydownloader/hbase-private.git
git fetch hbase-tm5
2. 如何对代码进行更改
假定其中有一个文件名为main.c,我们对其修改。
之后,按照这样的步骤。
1) git add main.c
2) git diff 并git status 查看确认修改
3) 输入开发日志。
你也可以用
git commit –a 直接提交所有修改。但是不能将新增的文件和文件夹加入进来。
3. 如何管理分支
git branch experimental —创建实验分支experimental
git branch ——列出所有分支
git checkout experimental ——切换到expreimental分支
之后你就可以在该分支上工作了。
4. 如何处理冲突
如果在两个分支上都进行了修改,现在在主干道上,要合并分支到主干道(master分支)。
git merge experimental
然而,如果两个修改有冲突(对同一个文件进行了不同的修改,git会提示冲突),如:
Auto-merged main.c
CONFLICT (content): Merge conflict in main.c
Automatic merge failed; fix conflicts and then commit the result.
这里,你需要人工修改出现冲突的文件。修改好了,再提交。
在你解决了冲突之后,你可以使用如下步骤来提交:
第一步:git add filename.txt
第二步:git commit
你可以通过gitk,看到修改的整体情况。
删除分支也很简单。
git branch -d experimental
-d 表示“在分支已经合并到主干后删除分支”
-D表示“不论如何都删除分支”
5. 如何将代码推送到GitHub
git push hbase-tm5
6. 局域网内的用户之间如何协同工作。
首先,搞懂Git的代码库在局域网内是如何定位的。
这和我们scp 拷贝的方法类似。比如harry想从john的机器中拷贝代码,只需要:
git remote add johnGit john@{$JOHN_IP}:{$src_dir}
注意,需要开启ssh服务,在ubuntu下可以通过sudo apt-get install openssh-server 启动
git clone johnGit
这样,harry就获得了john 的源代码。
John做了些改动,口头通知harry,harry可以用两种方法获得改动的代码。
Harry信任John 的改动,将john的工作的tm-5分支合并到我的当前的分支上
git pull johnGit tm-5
如果Harry 不能完全信任john 的改动,可以用fetch命令先将john tm-5分支的改动提取到a分支中
git fetch johnGit tm-5:a
之后,查看当前分支和john 改动的区别
git diff a
如果确认改动正确,再做merge
git merge a
最后,删除掉a分支
所以,pull命令相当于fetch + merge
这样,harry就可以和john进行代码的获取,更新等工作了。
如何push自己的代码
harry想把代码push 到john的机器的代码仓库中(这里把john的机器作为中心代码服务器),那么首先在john的机器上要修改配置。
在john 的代码仓库中,修改: git/config
[receive]
denyCurrentBranch = ignore
这样,harry可以 git push ,将代码push 到john的机器中。
在john的机器上,不会马上看到push的结果,如果要立即看到,需要
git reset --hard
7. 协同工作之二 ,分支管理
git clone会获得远端服务器代码的所有分支。如果你仅仅想要一个分支,可以用git pull获得。
比如,harry目前没有任何john的代码。他可以这样操作。
mkdir $project_dir
cd $project_dir
git init
git remote add johnGit john@{$JOHN_IP}:{$src_dir}
git pull johnGit johnbranch:harrybranch. 这里,harry可以将john的一个分支“johnbranch”pull到本地的“harrybranch”.
由于是初始环境,git还是会在本地生成一个master分支,用git branch你会看到
harrybranch
*master
看来git 还是将master作为默认分支,你可以
git checkout harrybranch
git branch -d master
这样子,你就仅仅有一个harryBranch 分支了。
harry如果想删除远端的分支怎么办?
git push johnGit :johnBranch
相关推荐
Git实战(初级篇)详细讲述什么是git、git基本命令等
本文档讲述了Git的概述、工作流程、软件安装、常用命令、分支操作、远程操作、IDEA使用Git、GitLab自建代码托管平台等内容,通俗易懂,简明扼要,零基础入门Git实战。声明:本文档所涉及到的图片均引用官方文档或...
用于Git实战操作,一些简单的命令和Idea中的分支操作等
Git实战学习视频教程 Git多场景应用学习 Git服务器和远程分支 Git多人协作开发项目
1.版本控制系统(vcs)发展。2.git工作原理。3.git shell应用。4.git eclipse应用
路飞学城Alex7小时快速学会GIT协作开发实战(完整版)课堂笔记PDF 路飞git实战课堂笔记pdf
新手git快速入门-----整理廖雪峰git基础的git实战学习,包含楼主学习过程中碰到的问题。
本人学习git总结, 文档带颜色高亮、命令注释及命令执行结果. 一目了然.
git实战-多分支开发-2022新项目.doc
新手快速入门,git笔记
git的实战操作,在上面使用git。详细教程使用!
零基础学习git,值得收藏的一份文档
git实战笔记
哈工大 软件工程 Git实战 实验报告,内含个人开发,团队协作,Eclipse 使用Git等方式
Git作为实战型比较强的一门技术,光看书学习效果一般不是佳。Git视频培训课程通过深入浅出的内部机制解析、实际操作、动画演示、使用场景模拟等教学方式,让你提升Git技能,知其然知其所以然,大大缩短您的Git学习...
git入门资料,有例子讲解,没有书上写得那么正式,初学者可以看看。
33结课,mp4 32 github做任务管理(仅录屏)mp4 31 gitignore忽略文件.mp4 30gt免密登录.mp4 29配置文件存放置mp4 28给开源项目贡献代码mp口い 2多人协同开发之测试上线、m 26多人协同开发之代码 review.mp4
详细描述了git在idea中的使用,详细描述了git在idea中的使用详细描述了git在idea中的使用
毫无疑问,Git已经成为当下分布式版本控制系统的翘楚。借助于Git强大的分支、合并、日志、历史追溯、rebase、submodule、subtree等一系列特性,开发者之间的协作变得越来越容易。 Git是由Linus Torvalds开发的;同时...
git的使用和创建 Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的...其中穿插介绍Git的基本概念和原理,第二篇重点介绍Git的使用技巧,最后会在Git Hub上创建一个开源项目 开启你的Git实战之旅