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。 #### 起步 1. **添加远程仓库**:使用`git remote add`命令将本地仓库与远程仓库关联,例如: ```bash git remote add origin git@...
Git 实战笔记旨在帮助新手快速掌握这一分布式版本控制系统的核心概念和常用操作。Git 是由 Linux 发明者 Linus Torvalds 创建的,旨在解决传统版本控制系统(如 SVN)的某些问题,提供更快、更可靠、更灵活的代码...
#### 四、Git实战 - **项目管理** - 如何利用Git管理和跟踪自己的工作。 - 团队协作的最佳实践。 - **学习环境** - 支持的操作系统:Ubuntu 14.04、Ubuntu 10.04、Fedora、Windows 7等。 - 远程仓库托管服务:...
Git实战IDEA操作详解 Git是一款分布式版本控制系统,它在软件开发中扮演着至关重要的角色,帮助团队协作和代码管理。IntelliJ IDEA(简称IDEA)是广受欢迎的Java集成开发环境,同样也提供了强大的Git集成功能。本文...
【Git实战】是关于版本控制工具Git的一系列实践教程,主要涵盖了从基础操作到高级协作的多个方面。Git是开发者日常工作中不可或缺的工具,它帮助团队有效地管理代码版本,实现协同开发。 首先,课程提到了`...
超详细的 Git 实战教程一篇即通 Git是目前世界上最先进的分布式版本控制系统。 我们要进行开发,提交代码和中心服务器进行交互,首先我们要有自己的一个开发基地,也就是我们自己的git仓库。拥有自己的git仓库的...
本文档主要介绍了在IDEA(IntelliJ IDEA)中进行Git实战操作时的一些基本命令。 - **mkdir 文件夹名**:在当前目录下创建一个新的文件夹。 - **cd 文件夹名**:进入指定的文件夹。 - **cd ..**:返回当前目录的父级...
本文档“git实战-多分支开发-2022新项目.doc”详细介绍了在实际开发环境中如何利用Git进行多分支开发。 在多分支开发模式下,每个开发人员通常都有自己的独立开发分支,以便于进行独立的工作,同时保持主线分支的...
Git是当今最流行的分布式版本控制系统,它被广泛应用于软件开发领域,帮助开发者追踪和管理代码变更。Git的主要优点包括其高效、灵活性以及强大的分支管理功能。本文档详细介绍了Git的基础知识,适合没有版本控制...
1.版本控制系统(vcs)发展。2.git工作原理。3.git shell应用。4.git eclipse应用
新手git快速入门-----整理廖雪峰git基础的git实战学习,包含楼主学习过程中碰到的问题。
这份"git实战笔记"涵盖了Git的基本概念、核心工作流程以及高级特性,旨在帮助开发者更好地理解和运用Git。 首先,Git的基本概念是理解其运作机制的关键。Git是一个分布式的系统,每个开发者的本地机器上都有一个...
哈工大 软件工程 Git实战 实验报告,内含个人开发,团队协作,Eclipse 使用Git等方式
本视频教程将深入讲解Git的实战应用,帮助你掌握Git的核心概念、命令以及在不同场景下的使用技巧。我们将探讨以下几个关键知识点: 1. **Git基础操作**:首先,我们会介绍如何安装Git,并学习基本的命令,如初始化...
Git是分布式版本控制系统,它允许开发者在多个计算机之间同步代码并进行协作开发。Git的核心概念包括仓库、提交、分支和远程存储。以下是基于标题和描述中的内容,对Git相关知识点的详细说明: 1. **Git简介** Git...
本实战教程旨在帮助你深入理解和熟练运用Git,无论你是初学者还是希望提升Git技能的开发者。 1. **Git介绍** (0.git介绍.md) Git的基本概念包括仓库、工作区、暂存区和提交历史。仓库是存储所有版本信息的地方,...
Git作为实战型比较强的一门技术,光看书学习效果一般不是佳。Git视频培训课程通过深入浅出的内部机制解析、实际操作、动画演示、使用场景模拟等教学方式,让你提升Git技能,知其然知其所以然,大大缩短您的Git学习...
以下是一个详细的Git实战教学指南: 一、Git基础 1. Git简介 定义:Git是目前世界上最先进的分布式版本控制系统,用于敏捷高效地处理任何大小项目的版本管理。 核心功能:项目的版本管理、团队协同开发。 2. Git...